服務(wù)器SSH密鑰如何增強安全性?服務(wù)器服務(wù)審計如何增強安全性?

2024-04-25    分類: 網(wǎng)站建設(shè)

大多數(shù)時候,您的主要關(guān)注點是啟動和運行您的云應(yīng)用程序。作為您的設(shè)置和部署過程的一部分,在您的系統(tǒng)和應(yīng)用程序公開可用之前,為您的系統(tǒng)和應(yīng)用程序構(gòu)建強大而全面的安全措施非常重要。在部署應(yīng)用程序之前實施本教程中的安全措施將確保您在基礎(chǔ)架構(gòu)上運行的任何軟件都具有安全的基本配置,而不是可能在部署后實施的臨時措施。

本指南重點介紹了您在配置和設(shè)置服務(wù)器基礎(chǔ)架構(gòu)時可以采取的一些實用安全措施。此列表并非詳盡無遺地列出了您可以采取的所有措施來保護您的服務(wù)器,但它為您提供了一個可以構(gòu)建的起點。隨著時間的推移,您可以開發(fā)出更加量身定制的安全方法,以滿足您的環(huán)境和應(yīng)用程序的特定需求。

SSH 密鑰

SSH,或安全外殼,是一種用于管理服務(wù)器和與服務(wù)器通信的加密協(xié)議。使用服務(wù)器時,您可能會將大部分時間花在通過 SSH 連接到服務(wù)器的終端會話中。作為基于密碼登錄的替代方案,SSH 密鑰使用加密來提供一種安全的登錄服務(wù)器的方式,建議所有用戶使用。

使用 SSH 密鑰,會創(chuàng)建一對私鑰和公鑰以用于身份驗證。私鑰由用戶保密和安全,而公鑰可以共享。這通常稱為非對稱加密,您可能會在其他地方看到這種模式。

要配置 SSH 密鑰身份驗證,您需要將您的公共 SSH 密鑰放在服務(wù)器上的預(yù)期位置(通常是~/.ssh/authorized_keys)。要了解有關(guān)基于 SSH 密鑰的身份驗證如何工作的更多信息,請閱讀了解 SSH 加密和連接過程。

SSH 密鑰如何增強安全性?

使用 SSH,任何類型的身份驗證——包括密碼身份驗證——都是完全加密的。但是,當允許基于密碼的登錄時,惡意用戶可以反復(fù)自動嘗試訪問服務(wù)器,尤其是當它具有面向公眾的 IP 地址時。盡管在從同一 IP 多次嘗試失敗后有多種方法可以鎖定訪問權(quán)限,并且惡意用戶在實踐中會受到他們嘗試登錄您的服務(wù)器的速度的限制,但用戶可以合理地嘗試獲得訪問權(quán)限的任何情況通過反復(fù)的暴力攻擊對您的堆棧造成安全風(fēng)險。

設(shè)置 SSH 密鑰身份驗證允許您禁用基于密碼的身份驗證。SSH 密鑰的數(shù)據(jù)位通常比密碼多得多——您可以從 12 個字符的密碼創(chuàng)建一個 128 個字符的 SSH 密鑰散列——這使得它們更難被暴力破解。盡管如此,一些加密算法仍被認為是可破解的,因為它試圖在足夠強大的計算機上對密碼哈希進行足夠多次的逆向工程。其他密鑰,包括由現(xiàn)代 SSH 客戶端生成的默認 RSA 密鑰,尚無法破解。

如何實現(xiàn) SSH 密鑰

SSH 密鑰是遠程登錄任何 Linux 服務(wù)器環(huán)境的推薦方式??梢允褂迷撁钤谀谋镜赜嬎銠C上生成一對 SSH 密鑰ssh,然后您可以將公鑰傳輸?shù)竭h程服務(wù)器。

要在您的服務(wù)器上設(shè)置 SSH 密鑰,您可以按照如何為 Ubuntu、Debian 或 CentOS設(shè)置 SSH 密鑰進行操作。

對于堆棧中需要密碼訪問或容易受到暴力攻擊的任何部分,您可以在服務(wù)器上實施類似fail2ban的解決方案來限制密碼猜測。

最佳做法是不允許root用戶直接通過 SSH 登錄。相反,以非特權(quán)用戶身份登錄,然后根據(jù)需要使用sudo.?這種限制權(quán)限的方法被稱為最小權(quán)限原則。一旦你連接到你的服務(wù)器并創(chuàng)建了一個你已經(jīng)驗證可以使用 SSH 的非特權(quán)帳戶,你可以通過在你的服務(wù)器上設(shè)置指令來禁用root登錄,然后使用類似命令重新啟動服務(wù)器的 SSH 進程。PermitRootLogin no/etc/ssh/sshd_configsudo systemctl restart sshd

防火墻

防火墻是一種軟件或硬件設(shè)備,用于控制服務(wù)如何暴露于網(wǎng)絡(luò),以及允許哪些類型的流量進出給定服務(wù)器。正確配置的防火墻將確保只有應(yīng)該公開可用的服務(wù)才能從您的服務(wù)器或網(wǎng)絡(luò)外部訪問。

在典型的服務(wù)器上,許多服務(wù)可能默認運行。這些可以分為以下幾組:

互聯(lián)網(wǎng)上任何人都可以訪問的公共服務(wù),通常是匿名訪問。這方面的一個例子是為您的實際網(wǎng)站提供服務(wù)的網(wǎng)絡(luò)服務(wù)器。 只能由一組選定的授權(quán)帳戶或從特定位置訪問的私人服務(wù)。例如,像 phpMyAdmin 這樣的數(shù)據(jù)庫控制面板。 內(nèi)部服務(wù)應(yīng)該只能從服務(wù)器本身訪問,而不會將服務(wù)暴露給公共互聯(lián)網(wǎng)。例如,一個應(yīng)該只接受本地連接的數(shù)據(jù)庫。

防火墻可以確保根據(jù)上述類別以不同程度的粒度限制對軟件的訪問。公共服務(wù)可以保持開放并可供互聯(lián)網(wǎng)使用,而私人服務(wù)可以根據(jù)不同的標準(例如連接類型)進行限制??梢允箖?nèi)部服務(wù)完全無法訪問 Internet。對于未使用的端口,在大多數(shù)配置中訪問都被完全阻止。

防火墻如何增強安全性?

即使您的服務(wù)實現(xiàn)了安全功能或僅限于您希望它們在其上運行的接口,防火墻也可以作為基礎(chǔ)保護層,在應(yīng)用程序處理流量之前限制進出您的服務(wù)的連接。

正確配置的防火墻將限制對除您需要保持打開的特定服務(wù)之外的所有內(nèi)容的訪問,通常只打開與這些服務(wù)關(guān)聯(lián)的端口。例如,SSH 一般運行在 22 端口,而通過 Web 瀏覽器進行的 HTTP/HTTPS 訪問通常分別運行在 80 和 443 端口。僅公開少量軟件可減少服務(wù)器的攻擊面,從而限制易受攻擊的組件。

如何實施防火墻

有許多適用于 Linux 系統(tǒng)的防火墻,有些比其他的更復(fù)雜。通常,當您更改服務(wù)器上運行的服務(wù)時,您只需要更改防火墻配置。以下是啟動和運行的一些選項:

UFW 或 Uncomplicated Firewall 在某些 Linux 發(fā)行版(如 Ubuntu)上默認安裝。您可以在如何在 Ubuntu 20.04 上使用 UFW 設(shè)置防火墻中了解更多信息 如果您使用的是 Red Hat、Rocky 或 Fedora Linux,您可以閱讀如何使用 firewalld 設(shè)置防火墻以使用它們的默認工具。 許多軟件防火墻,如 UFW 和 firewalld 會將它們配置的規(guī)則直接寫入一個名為iptables.?要了解如何直接使用iptables配置,您可以查看Iptables Essentials:通用防火墻規(guī)則和命令?。請注意,其他一些自行實現(xiàn)端口規(guī)則的軟件(例如 Docker)也會直接寫入,并且可能與您使用 UFW 創(chuàng)建的規(guī)則沖突,因此在這種情況下iptables了解如何讀取配置會很有幫助。iptables

注意:許多托管服務(wù)提供商,包括 DigitalOcean,將允許您將防火墻配置為一項服務(wù),該服務(wù)作為云服務(wù)器上的外部層運行,而不需要直接實施防火墻。這些配置使用托管工具在網(wǎng)絡(luò)邊緣實施,在實踐中通常不那么復(fù)雜,但編寫和復(fù)制腳本可能更具挑戰(zhàn)性。可以參考DigitalOcean的?云防火墻的文檔。

確保您的防火墻配置默認為阻止未知流量。這樣,您部署的任何新服務(wù)都不會無意中暴露在 Internet 上。相反,您將必須明確允許訪問,這將迫使您評估服務(wù)的運行方式、訪問方式以及誰應(yīng)該能夠使用它。

專有網(wǎng)絡(luò)

虛擬私有云 (VPC) 網(wǎng)絡(luò)是基礎(chǔ)設(shè)施資源的私有網(wǎng)絡(luò)。VPC 網(wǎng)絡(luò)在資源之間提供更安全的連接,因為網(wǎng)絡(luò)的接口無法從公共互聯(lián)網(wǎng)訪問。

VPC 網(wǎng)絡(luò)如何增強安全性?

一些主機商會默認為你的云服務(wù)器分配一個公網(wǎng)接口和一個私網(wǎng)接口。在部分基礎(chǔ)設(shè)施上禁用公共網(wǎng)絡(luò)接口將只允許這些實例通過內(nèi)部網(wǎng)絡(luò)使用它們的專用網(wǎng)絡(luò)接口相互連接,這意味著您的系統(tǒng)之間的流量將不會通過公共互聯(lián)網(wǎng)路由,而它可能是暴露或攔截。

通過有條件地僅公開幾個專用互聯(lián)網(wǎng)網(wǎng)關(guān)(也稱為入口網(wǎng)關(guān))作為 VPC 網(wǎng)絡(luò)資源和公共互聯(lián)網(wǎng)之間的唯一訪問點,您將對連接到您的資源的公共流量有更多的控制和可見性。像 Kubernetes 這樣的現(xiàn)代容器編排系統(tǒng)有一個定義非常明確的入口網(wǎng)關(guān)概念,因為它們默認創(chuàng)建了許多私有網(wǎng)絡(luò)接口,需要有選擇地公開這些接口。

如何實施 VPC 網(wǎng)絡(luò)

許多云基礎(chǔ)架構(gòu)提供商使您能夠在其數(shù)據(jù)中心內(nèi)創(chuàng)建資源并將其添加到 VPC 網(wǎng)絡(luò)。

注意:如果您正在使用 DigitalOcean 并希望設(shè)置自己的 VPC 網(wǎng)關(guān),您可以按照如何將 Droplet 配置為 VPC 網(wǎng)關(guān)指南來了解如何在基于 Debian、Ubuntu 和 CentOS 的服務(wù)器上進行操作。

手動配置您自己的專用網(wǎng)絡(luò)可能需要高級服務(wù)器配置和網(wǎng)絡(luò)知識。設(shè)置 VPC 網(wǎng)絡(luò)的另一種方法是在服務(wù)器之間使用 VPN 連接。

VPN 和專用網(wǎng)絡(luò)

VPN 或虛擬專用網(wǎng)絡(luò)是一種在遠程計算機之間創(chuàng)建安全連接并將連接呈現(xiàn)為本地專用網(wǎng)絡(luò)的方法。這提供了一種方法來配置您的服務(wù),就好像它們在專用網(wǎng)絡(luò)上一樣,并通過安全連接連接遠程服務(wù)器。

例如,DigitalOcean 私有網(wǎng)絡(luò)可以實現(xiàn)同一地區(qū)內(nèi)同一賬戶或團隊的服務(wù)器之間的隔離通信。

VPN 如何增強安全性?

使用 VPN 是一種繪制只有您的服務(wù)器可以看到的專用網(wǎng)絡(luò)的方法。通信將是完全私密和安全的。其他應(yīng)用程序可以配置為通過 VPN 軟件公開的虛擬接口傳遞它們的流量。這樣,只有打算由公共互聯(lián)網(wǎng)上的客戶端使用的服務(wù)才需要在公共網(wǎng)絡(luò)上公開。

如何實施 VPN

使用專用網(wǎng)絡(luò)通常需要您在首次部署服務(wù)器時就網(wǎng)絡(luò)接口做出決定,并配置您的應(yīng)用程序和防火墻以優(yōu)先使用這些接口。相比之下,部署 VPN 需要安裝額外的工具并創(chuàng)建額外的網(wǎng)絡(luò)路由,但通常可以部署在現(xiàn)有架構(gòu)之上。VPN 上的每個服務(wù)器都必須具有建立 VPN 連接所需的共享安全和配置數(shù)據(jù)。VPN 啟動并運行后,應(yīng)用程序必須配置為使用 VPN 隧道。

如果您使用的是 Ubuntu 或 CentOS,則可以按照如何在 Ubuntu 20.04 上設(shè)置和配置 OpenVPN 服務(wù)器?教程進行操作。

Wireguard?是另一種流行的 VPN 部署。通常,VPN 遵循通過在幾個入口點后面實施一系列專用網(wǎng)絡(luò)接口來限制進入云服務(wù)器的相同原則,但是 VPC 配置通常是核心基礎(chǔ)設(shè)施考慮因素,VPN 可以部署在更臨時的基礎(chǔ)上.

服務(wù)審計

良好的安全性包括分析您的系統(tǒng)、了解可用的攻擊面并盡可能鎖定組件。

服務(wù)審計是了解給定系統(tǒng)上正在運行哪些服務(wù)、它們使用哪些端口進行通信以及這些服務(wù)正在使用哪些協(xié)議的一種方式。此信息可幫助您配置哪些服務(wù)應(yīng)可公開訪問、防火墻設(shè)置、監(jiān)控和警報。

服務(wù)審計如何增強安全性?

每個正在運行的服務(wù),無論是內(nèi)部服務(wù)還是公共服務(wù),都代表了惡意用戶的擴展攻擊面。您運行的服務(wù)越多,漏洞影響您的軟件的可能性就越大。

一旦您對計算機上運行的網(wǎng)絡(luò)服務(wù)有了很好的了解,就可以開始分析這些服務(wù)。當您執(zhí)行服務(wù)審核時,請問自己以下有關(guān)每個正在運行的服務(wù)的問題:

該服務(wù)應(yīng)該運行嗎? 服務(wù)是否在不應(yīng)運行的網(wǎng)絡(luò)接口上運行? 該服務(wù)應(yīng)該綁定到公共網(wǎng)絡(luò)接口還是專用網(wǎng)絡(luò)接口? 我的防火墻規(guī)則的結(jié)構(gòu)是否可以將合法流量傳遞到此服務(wù)? 我的防火墻規(guī)則是否阻止了不合法的流量? 我是否有一種方法可以接收有關(guān)這些服務(wù)中每一項服務(wù)漏洞的安全警報?

在您的基礎(chǔ)架構(gòu)中配置任何新服務(wù)器時,這種類型的服務(wù)審核應(yīng)該是標準做法。每隔幾個月執(zhí)行一次服務(wù)審核也將幫助您發(fā)現(xiàn)配置可能已無意更改的任何服務(wù)。

如何實施服務(wù)審計

要審核系統(tǒng)上運行的網(wǎng)絡(luò)服務(wù),請使用命令ss列出服務(wù)器上正在使用的所有 TCP 和 UDP 端口。顯示用于偵聽 TCP 和 UDP 流量的程序名稱、PID 和地址的示例命令是:

sudo ss -plunt

復(fù)制

p、l、u、n和選項的工作方式t如下:

p顯示使用給定套接字的特定進程。 l僅顯示正在主動偵聽連接的套接字。 u包括 UDP 套接字(除了 TCP 套接字)。 n顯示數(shù)字流量值。 t包括 TCP 套接字(除了 UDP 套接字)。

您將收到類似于此的輸出:

Output

Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Processtcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=69226,fd=6),("nginx",pid=69225,fd=6))tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=812,fd=4))tcp LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=69226,fd=7),("nginx",pid=69225,fd=7))

需要注意的主要列是 Netid、Local Address:Port 和 Process name 列。如果 Local Address:Port 是0.0.0.0,則該服務(wù)正在接受所有 IPv4 網(wǎng)絡(luò)接口上的連接。如果地址是,[::]則服務(wù)正在接受所有 IPv6 接口上的連接。在上面的示例輸出中,SSH 和 Nginx 都在 IPv4 和 IPv6 網(wǎng)絡(luò)堆棧上的所有公共接口上進行偵聽。

您可以決定是否要允許 SSH 和 Nginx 在兩個接口上偵聽,或者只在一個或另一個上偵聽。通常,您應(yīng)該禁用在未使用的接口上運行的服務(wù)。

無人值守更新

為確保良好的基本安全級別,必須使用補丁程序使您的服務(wù)器保持最新狀態(tài)。運行過時的服務(wù)器和不安全的軟件版本是大多數(shù)安全事件的罪魁禍首,但定期更新可以緩解漏洞并防止攻擊者在您的服務(wù)器上站穩(wěn)腳跟。無人值守更新允許系統(tǒng)自動更新大部分軟件包。

無人值守更新如何增強安全性?

實施無人值守(即自動)更新可降低保持服務(wù)器安全所需的工作量,并縮短服務(wù)器易受已知錯誤影響的時間。如果出現(xiàn)影響服務(wù)器上軟件的漏洞,無論您運行更新需要多長時間,您的服務(wù)器都將容易受到攻擊。每日無人值守升級將確保您不會遺漏任何軟件包,并且一旦修復(fù)程序可用,任何易受攻擊的軟件都會得到修補。

如何實現(xiàn)無人值守更新

您可以參考如何保持 Ubuntu 服務(wù)器更新,了解在 Ubuntu 上實現(xiàn)無人值守更新的概述。

公鑰基礎(chǔ)設(shè)施和 SSL/TLS 加密

公鑰基礎(chǔ)設(shè)施或 PKI 是指旨在創(chuàng)建、管理和驗證用于識別個人和加密通信的證書的系統(tǒng)。SSL 或 TLS 證書可用于相互驗證不同的實體。經(jīng)過身份驗證后,它們還可以用于建立加密通信。

PKI 如何增強安全性?

為您的服務(wù)器建立證書頒發(fā)機構(gòu) (CA) 和管理證書允許您的基礎(chǔ)設(shè)施中的每個實體驗證其他成員的身份并加密他們的流量。這可以防止攻擊者模仿您的基礎(chǔ)架構(gòu)中的服務(wù)器來攔截流量的中間人攻擊。

每個服務(wù)器都可以配置為信任一個集中的證書頒發(fā)機構(gòu)。之后,可以隱式信任由該機構(gòu)簽署的任何證書。

如何實施 PKI

配置證書頒發(fā)機構(gòu)和設(shè)置其他公鑰基礎(chǔ)結(jié)構(gòu)可能涉及相當多的初始工作。此外,當需要創(chuàng)建、簽署或撤銷新證書時,管理證書會增加額外的管理負擔(dān)。

對于許多用戶來說,實施成熟的公鑰基礎(chǔ)設(shè)施只有在他們的基礎(chǔ)設(shè)施需求增長時才有意義。使用 VPN 保護組件之間的通信可能是一種更好的中間措施,直到您達到 PKI 值得額外管理成本的地步。

如果您想創(chuàng)建自己的證書頒發(fā)機構(gòu),可以參考如何設(shè)置和配置證書頒發(fā)機構(gòu) (CA)指南,具體取決于您使用的 Linux 發(fā)行版。

結(jié)論

本教程中概述的策略是對您可以用來提高系??統(tǒng)安全性的一些步驟的概述。重要的是要認識到,您等待實施安全措施的時間越長,其有效性就會降低。安全不應(yīng)該是事后才想到的,必須在您首次配置基礎(chǔ)設(shè)施時實施。一旦您有了一個安全的基礎(chǔ),您就可以開始部署您的服務(wù)和應(yīng)用程序,并確保它們默認在安全的環(huán)境中運行。

即使有一個安全的起始環(huán)境,請記住安全是一個持續(xù)和迭代的過程。始終務(wù)必問問自己任何更改可能帶來的安全影響是什么,以及您可以采取哪些步驟來確保始終為您的軟件創(chuàng)建安全的默認配置和環(huán)境。

網(wǎng)站題目:服務(wù)器SSH密鑰如何增強安全性?服務(wù)器服務(wù)審計如何增強安全性?
當前地址:http://muchs.cn/news20/325270.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站商城網(wǎng)站、定制網(wǎng)站建站公司、網(wǎng)站設(shè)計公司動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)