2024-04-25 分類: 網站建設
大多數時候,您的主要關注點是啟動和運行您的云應用程序。作為您的設置和部署過程的一部分,在您的系統(tǒng)和應用程序公開可用之前,為您的系統(tǒng)和應用程序構建強大而全面的安全措施非常重要。在部署應用程序之前實施本教程中的安全措施將確保您在基礎架構上運行的任何軟件都具有安全的基本配置,而不是可能在部署后實施的臨時措施。
本指南重點介紹了您在配置和設置服務器基礎架構時可以采取的一些實用安全措施。此列表并非詳盡無遺地列出了您可以采取的所有措施來保護您的服務器,但它為您提供了一個可以構建的起點。隨著時間的推移,您可以開發(fā)出更加量身定制的安全方法,以滿足您的環(huán)境和應用程序的特定需求。
SSH 密鑰SSH,或安全外殼,是一種用于管理服務器和與服務器通信的加密協(xié)議。使用服務器時,您可能會將大部分時間花在通過 SSH 連接到服務器的終端會話中。作為基于密碼登錄的替代方案,SSH 密鑰使用加密來提供一種安全的登錄服務器的方式,建議所有用戶使用。
使用 SSH 密鑰,會創(chuàng)建一對私鑰和公鑰以用于身份驗證。私鑰由用戶保密和安全,而公鑰可以共享。這通常稱為非對稱加密,您可能會在其他地方看到這種模式。
要配置 SSH 密鑰身份驗證,您需要將您的公共 SSH 密鑰放在服務器上的預期位置(通常是~/.ssh/authorized_keys)。要了解有關基于 SSH 密鑰的身份驗證如何工作的更多信息,請閱讀了解 SSH 加密和連接過程。
SSH 密鑰如何增強安全性?使用 SSH,任何類型的身份驗證——包括密碼身份驗證——都是完全加密的。但是,當允許基于密碼的登錄時,惡意用戶可以反復自動嘗試訪問服務器,尤其是當它具有面向公眾的 IP 地址時。盡管在從同一 IP 多次嘗試失敗后有多種方法可以鎖定訪問權限,并且惡意用戶在實踐中會受到他們嘗試登錄您的服務器的速度的限制,但用戶可以合理地嘗試獲得訪問權限的任何情況通過反復的暴力攻擊對您的堆棧造成安全風險。
設置 SSH 密鑰身份驗證允許您禁用基于密碼的身份驗證。SSH 密鑰的數據位通常比密碼多得多——您可以從 12 個字符的密碼創(chuàng)建一個 128 個字符的 SSH 密鑰散列——這使得它們更難被暴力破解。盡管如此,一些加密算法仍被認為是可破解的,因為它試圖在足夠強大的計算機上對密碼哈希進行足夠多次的逆向工程。其他密鑰,包括由現(xiàn)代 SSH 客戶端生成的默認 RSA 密鑰,尚無法破解。
如何實現(xiàn) SSH 密鑰SSH 密鑰是遠程登錄任何 Linux 服務器環(huán)境的推薦方式??梢允褂迷撁钤谀谋镜赜嬎銠C上生成一對 SSH 密鑰ssh,然后您可以將公鑰傳輸到遠程服務器。
要在您的服務器上設置 SSH 密鑰,您可以按照如何為 Ubuntu、Debian 或 CentOS設置 SSH 密鑰進行操作。
對于堆棧中需要密碼訪問或容易受到暴力攻擊的任何部分,您可以在服務器上實施類似fail2ban的解決方案來限制密碼猜測。
最佳做法是不允許root用戶直接通過 SSH 登錄。相反,以非特權用戶身份登錄,然后根據需要使用sudo.?這種限制權限的方法被稱為最小權限原則。一旦你連接到你的服務器并創(chuàng)建了一個你已經驗證可以使用 SSH 的非特權帳戶,你可以通過在你的服務器上設置指令來禁用root登錄,然后使用類似命令重新啟動服務器的 SSH 進程。PermitRootLogin no/etc/ssh/sshd_configsudo systemctl restart sshd
防火墻防火墻是一種軟件或硬件設備,用于控制服務如何暴露于網絡,以及允許哪些類型的流量進出給定服務器。正確配置的防火墻將確保只有應該公開可用的服務才能從您的服務器或網絡外部訪問。
在典型的服務器上,許多服務可能默認運行。這些可以分為以下幾組:
互聯(lián)網上任何人都可以訪問的公共服務,通常是匿名訪問。這方面的一個例子是為您的實際網站提供服務的網絡服務器。 只能由一組選定的授權帳戶或從特定位置訪問的私人服務。例如,像 phpMyAdmin 這樣的數據庫控制面板。 內部服務應該只能從服務器本身訪問,而不會將服務暴露給公共互聯(lián)網。例如,一個應該只接受本地連接的數據庫。防火墻可以確保根據上述類別以不同程度的粒度限制對軟件的訪問。公共服務可以保持開放并可供互聯(lián)網使用,而私人服務可以根據不同的標準(例如連接類型)進行限制??梢允箖炔糠胀耆珶o法訪問 Internet。對于未使用的端口,在大多數配置中訪問都被完全阻止。
防火墻如何增強安全性?即使您的服務實現(xiàn)了安全功能或僅限于您希望它們在其上運行的接口,防火墻也可以作為基礎保護層,在應用程序處理流量之前限制進出您的服務的連接。
正確配置的防火墻將限制對除您需要保持打開的特定服務之外的所有內容的訪問,通常只打開與這些服務關聯(lián)的端口。例如,SSH 一般運行在 22 端口,而通過 Web 瀏覽器進行的 HTTP/HTTPS 訪問通常分別運行在 80 和 443 端口。僅公開少量軟件可減少服務器的攻擊面,從而限制易受攻擊的組件。
如何實施防火墻有許多適用于 Linux 系統(tǒng)的防火墻,有些比其他的更復雜。通常,當您更改服務器上運行的服務時,您只需要更改防火墻配置。以下是啟動和運行的一些選項:
UFW 或 Uncomplicated Firewall 在某些 Linux 發(fā)行版(如 Ubuntu)上默認安裝。您可以在如何在 Ubuntu 20.04 上使用 UFW 設置防火墻中了解更多信息 如果您使用的是 Red Hat、Rocky 或 Fedora Linux,您可以閱讀如何使用 firewalld 設置防火墻以使用它們的默認工具。 許多軟件防火墻,如 UFW 和 firewalld 會將它們配置的規(guī)則直接寫入一個名為iptables.?要了解如何直接使用iptables配置,您可以查看Iptables Essentials:通用防火墻規(guī)則和命令?。請注意,其他一些自行實現(xiàn)端口規(guī)則的軟件(例如 Docker)也會直接寫入,并且可能與您使用 UFW 創(chuàng)建的規(guī)則沖突,因此在這種情況下iptables了解如何讀取配置會很有幫助。iptables注意:許多托管服務提供商,包括 DigitalOcean,將允許您將防火墻配置為一項服務,該服務作為云服務器上的外部層運行,而不需要直接實施防火墻。這些配置使用托管工具在網絡邊緣實施,在實踐中通常不那么復雜,但編寫和復制腳本可能更具挑戰(zhàn)性??梢詤⒖糄igitalOcean的?云防火墻的文檔。
確保您的防火墻配置默認為阻止未知流量。這樣,您部署的任何新服務都不會無意中暴露在 Internet 上。相反,您將必須明確允許訪問,這將迫使您評估服務的運行方式、訪問方式以及誰應該能夠使用它。
專有網絡虛擬私有云 (VPC) 網絡是基礎設施資源的私有網絡。VPC 網絡在資源之間提供更安全的連接,因為網絡的接口無法從公共互聯(lián)網訪問。
VPC 網絡如何增強安全性?一些主機商會默認為你的云服務器分配一個公網接口和一個私網接口。在部分基礎設施上禁用公共網絡接口將只允許這些實例通過內部網絡使用它們的專用網絡接口相互連接,這意味著您的系統(tǒng)之間的流量將不會通過公共互聯(lián)網路由,而它可能是暴露或攔截。
通過有條件地僅公開幾個專用互聯(lián)網網關(也稱為入口網關)作為 VPC 網絡資源和公共互聯(lián)網之間的唯一訪問點,您將對連接到您的資源的公共流量有更多的控制和可見性。像 Kubernetes 這樣的現(xiàn)代容器編排系統(tǒng)有一個定義非常明確的入口網關概念,因為它們默認創(chuàng)建了許多私有網絡接口,需要有選擇地公開這些接口。
如何實施 VPC 網絡許多云基礎架構提供商使您能夠在其數據中心內創(chuàng)建資源并將其添加到 VPC 網絡。
注意:如果您正在使用 DigitalOcean 并希望設置自己的 VPC 網關,您可以按照如何將 Droplet 配置為 VPC 網關指南來了解如何在基于 Debian、Ubuntu 和 CentOS 的服務器上進行操作。
手動配置您自己的專用網絡可能需要高級服務器配置和網絡知識。設置 VPC 網絡的另一種方法是在服務器之間使用 VPN 連接。
VPN 和專用網絡VPN 或虛擬專用網絡是一種在遠程計算機之間創(chuàng)建安全連接并將連接呈現(xiàn)為本地專用網絡的方法。這提供了一種方法來配置您的服務,就好像它們在專用網絡上一樣,并通過安全連接連接遠程服務器。
例如,DigitalOcean 私有網絡可以實現(xiàn)同一地區(qū)內同一賬戶或團隊的服務器之間的隔離通信。
VPN 如何增強安全性?
使用 VPN 是一種繪制只有您的服務器可以看到的專用網絡的方法。通信將是完全私密和安全的。其他應用程序可以配置為通過 VPN 軟件公開的虛擬接口傳遞它們的流量。這樣,只有打算由公共互聯(lián)網上的客戶端使用的服務才需要在公共網絡上公開。
如何實施 VPN
使用專用網絡通常需要您在首次部署服務器時就網絡接口做出決定,并配置您的應用程序和防火墻以優(yōu)先使用這些接口。相比之下,部署 VPN 需要安裝額外的工具并創(chuàng)建額外的網絡路由,但通??梢圆渴鹪诂F(xiàn)有架構之上。VPN 上的每個服務器都必須具有建立 VPN 連接所需的共享安全和配置數據。VPN 啟動并運行后,應用程序必須配置為使用 VPN 隧道。
如果您使用的是 Ubuntu 或 CentOS,則可以按照如何在 Ubuntu 20.04 上設置和配置 OpenVPN 服務器?教程進行操作。
Wireguard?是另一種流行的 VPN 部署。通常,VPN 遵循通過在幾個入口點后面實施一系列專用網絡接口來限制進入云服務器的相同原則,但是 VPC 配置通常是核心基礎設施考慮因素,VPN 可以部署在更臨時的基礎上.
服務審計良好的安全性包括分析您的系統(tǒng)、了解可用的攻擊面并盡可能鎖定組件。
服務審計是了解給定系統(tǒng)上正在運行哪些服務、它們使用哪些端口進行通信以及這些服務正在使用哪些協(xié)議的一種方式。此信息可幫助您配置哪些服務應可公開訪問、防火墻設置、監(jiān)控和警報。
服務審計如何增強安全性?
每個正在運行的服務,無論是內部服務還是公共服務,都代表了惡意用戶的擴展攻擊面。您運行的服務越多,漏洞影響您的軟件的可能性就越大。
一旦您對計算機上運行的網絡服務有了很好的了解,就可以開始分析這些服務。當您執(zhí)行服務審核時,請問自己以下有關每個正在運行的服務的問題:
該服務應該運行嗎? 服務是否在不應運行的網絡接口上運行? 該服務應該綁定到公共網絡接口還是專用網絡接口? 我的防火墻規(guī)則的結構是否可以將合法流量傳遞到此服務? 我的防火墻規(guī)則是否阻止了不合法的流量? 我是否有一種方法可以接收有關這些服務中每一項服務漏洞的安全警報?在您的基礎架構中配置任何新服務器時,這種類型的服務審核應該是標準做法。每隔幾個月執(zhí)行一次服務審核也將幫助您發(fā)現(xiàn)配置可能已無意更改的任何服務。
如何實施服務審計
要審核系統(tǒng)上運行的網絡服務,請使用命令ss列出服務器上正在使用的所有 TCP 和 UDP 端口。顯示用于偵聽 TCP 和 UDP 流量的程序名稱、PID 和地址的示例命令是:
sudo ss -plunt
復制
p、l、u、n和選項的工作方式t如下:
p顯示使用給定套接字的特定進程。 l僅顯示正在主動偵聽連接的套接字。 u包括 UDP 套接字(除了 TCP 套接字)。 n顯示數字流量值。 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,則該服務正在接受所有 IPv4 網絡接口上的連接。如果地址是,[::]則服務正在接受所有 IPv6 接口上的連接。在上面的示例輸出中,SSH 和 Nginx 都在 IPv4 和 IPv6 網絡堆棧上的所有公共接口上進行偵聽。
您可以決定是否要允許 SSH 和 Nginx 在兩個接口上偵聽,或者只在一個或另一個上偵聽。通常,您應該禁用在未使用的接口上運行的服務。
無人值守更新
為確保良好的基本安全級別,必須使用補丁程序使您的服務器保持最新狀態(tài)。運行過時的服務器和不安全的軟件版本是大多數安全事件的罪魁禍首,但定期更新可以緩解漏洞并防止攻擊者在您的服務器上站穩(wěn)腳跟。無人值守更新允許系統(tǒng)自動更新大部分軟件包。
無人值守更新如何增強安全性?
實施無人值守(即自動)更新可降低保持服務器安全所需的工作量,并縮短服務器易受已知錯誤影響的時間。如果出現(xiàn)影響服務器上軟件的漏洞,無論您運行更新需要多長時間,您的服務器都將容易受到攻擊。每日無人值守升級將確保您不會遺漏任何軟件包,并且一旦修復程序可用,任何易受攻擊的軟件都會得到修補。
如何實現(xiàn)無人值守更新
您可以參考如何保持 Ubuntu 服務器更新,了解在 Ubuntu 上實現(xiàn)無人值守更新的概述。
公鑰基礎設施和 SSL/TLS 加密
公鑰基礎設施或 PKI 是指旨在創(chuàng)建、管理和驗證用于識別個人和加密通信的證書的系統(tǒng)。SSL 或 TLS 證書可用于相互驗證不同的實體。經過身份驗證后,它們還可以用于建立加密通信。
PKI 如何增強安全性?
為您的服務器建立證書頒發(fā)機構 (CA) 和管理證書允許您的基礎設施中的每個實體驗證其他成員的身份并加密他們的流量。這可以防止攻擊者模仿您的基礎架構中的服務器來攔截流量的中間人攻擊。
每個服務器都可以配置為信任一個集中的證書頒發(fā)機構。之后,可以隱式信任由該機構簽署的任何證書。
如何實施 PKI
配置證書頒發(fā)機構和設置其他公鑰基礎結構可能涉及相當多的初始工作。此外,當需要創(chuàng)建、簽署或撤銷新證書時,管理證書會增加額外的管理負擔。
對于許多用戶來說,實施成熟的公鑰基礎設施只有在他們的基礎設施需求增長時才有意義。使用 VPN 保護組件之間的通信可能是一種更好的中間措施,直到您達到 PKI 值得額外管理成本的地步。
如果您想創(chuàng)建自己的證書頒發(fā)機構,可以參考如何設置和配置證書頒發(fā)機構 (CA)指南,具體取決于您使用的 Linux 發(fā)行版。
結論
本教程中概述的策略是對您可以用來提高系??統(tǒng)安全性的一些步驟的概述。重要的是要認識到,您等待實施安全措施的時間越長,其有效性就會降低。安全不應該是事后才想到的,必須在您首次配置基礎設施時實施。一旦您有了一個安全的基礎,您就可以開始部署您的服務和應用程序,并確保它們默認在安全的環(huán)境中運行。
即使有一個安全的起始環(huán)境,請記住安全是一個持續(xù)和迭代的過程。始終務必問問自己任何更改可能帶來的安全影響是什么,以及您可以采取哪些步驟來確保始終為您的軟件創(chuàng)建安全的默認配置和環(huán)境。
網站題目:服務器SSH密鑰如何增強安全性?服務器服務審計如何增強安全性?
當前地址:http://www.rwnh.cn/news20/325270.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站、商城網站、定制網站、建站公司、網站設計公司、動態(tài)網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容