本文將向您介紹基本的Linux服務(wù)器安全保護(hù)措施,側(cè)重于Debian/Ubuntu,但是您可以將本文介紹的所有內(nèi)容應(yīng)用于其他Linux發(fā)行版。
1. 更新你的服務(wù)器
要保護(hù)服務(wù)器,您應(yīng)該做的第一件事是更新本地存儲(chǔ)庫(kù),并通過(guò)應(yīng)用新的補(bǔ)丁來(lái)升級(jí)操作系統(tǒng)和已安裝的應(yīng)用程序。
關(guān)于Ubuntu和Debian:
$ sudo apt update && sudo apt upgrade -y
在Fedora,CentOS或RHEL上:
$ sudo dnf upgrade
2. 創(chuàng)建一個(gè)新的特權(quán)用戶帳戶
接下來(lái),創(chuàng)建一個(gè)新的用戶帳戶。永遠(yuǎn)不要以root用戶身份登錄服務(wù)器。相反,創(chuàng)建您自己的帳戶(
首先創(chuàng)建一個(gè)新用戶:
$ adduser <用戶名>
通過(guò)將(-a)sudo組(-G)附加到用戶的組成員身份,授予新用戶帳戶sudo權(quán)限:
$ usermod -a -G sudo <用戶名>
3.上傳您的SSH密鑰
使用SSH密鑰登錄到新服務(wù)器。您可以使用ssh-copy-id命令將預(yù)先生成的SSH密鑰上傳到新服務(wù)器:
$ ssh-copy-id
@ip_address
現(xiàn)在,您無(wú)需輸入密碼即可登錄新服務(wù)器。
4. 安全的SSH
接下來(lái),進(jìn)行以下三個(gè)更改:
禁用SSH密碼認(rèn)證
限制root遠(yuǎn)程登錄
限制對(duì)IPv4或IPv6的訪問(wèn)
使用您選擇的文本編輯器打開(kāi)/ etc / ssh / sshd_config并確保以下行:
PasswordAuthentication yes
PermitRootLogin yes
像這樣:
PasswordAuthentication no
PermitRootLogin no
接下來(lái),通過(guò)修改AddressFamily選項(xiàng)將SSH服務(wù)限制為IPv4或IPv6 。要將其更改為僅使用IPv4(對(duì)大多數(shù)人來(lái)說(shuō)應(yīng)該沒(méi)問(wèn)題),請(qǐng)進(jìn)行以下更改:
AddressFamily inet
重新啟動(dòng)SSH服務(wù)以啟用您的更改。請(qǐng)注意,在重新啟動(dòng)SSH服務(wù)器之前,與服務(wù)器建立兩個(gè)活動(dòng)連接。有了額外的連接,您可以在重新啟動(dòng)出錯(cuò)的情況下修復(fù)所有問(wèn)題。
在Ubuntu上:
$ sudo service sshd restart
在Fedora或CentOS或任何使用Systemd的系統(tǒng)上:
$ sudo systemctl restart sshd
5. 啟用防火墻
安裝防火墻,啟用防火墻并對(duì)其進(jìn)行配置,以僅允許您指定的網(wǎng)絡(luò)流量。簡(jiǎn)易防火墻(UFW)是iptables的易于使用的界面,可大大簡(jiǎn)化防火墻的配置過(guò)程。
您可以通過(guò)以下方式安裝UFW:
$ sudo apt install ufw
默認(rèn)情況下,UFW拒絕所有傳入連接,并允許所有傳出連接。這意味著服務(wù)器上的任何應(yīng)用程序都可以訪問(wèn)互聯(lián)網(wǎng),但是任何嘗試訪問(wèn)服務(wù)器的內(nèi)容都無(wú)法連接。
首先,確保您可以通過(guò)啟用對(duì)SSH、HTTP和HTTPS的訪問(wèn)來(lái)登錄:
$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https
然后啟用UFW:
$ sudo ufw enable
您可以通過(guò)以下方式查看允許和拒絕哪些服務(wù):
$ sudo ufw status
如果您想禁用UFW,可以通過(guò)鍵入以下內(nèi)容來(lái)禁用:
$ sudo ufw disable
您也可以使用firewall-cmd,它已經(jīng)安裝并集成到某些發(fā)行版中。
6. 安裝Fail2ban
Fail2ban是一個(gè)用于檢查服務(wù)器日志以查找重復(fù)或自動(dòng)攻擊的應(yīng)用程序。如果找到任何內(nèi)容,它將更改防火墻以永久地或在指定的時(shí)間內(nèi)阻止攻擊者的IP地址。
您可以通過(guò)鍵入以下內(nèi)容來(lái)安裝Fail2ban:
$ sudo apt install fail2ban -y
然后復(fù)制隨附的配置文件:
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
并重新啟動(dòng)Fail2ban:
$ sudo service fail2ban restart
該軟件將不斷檢查日志文件以查找攻擊。一段時(shí)間后,該應(yīng)用程序?qū)⒔⒑芏嗟慕笽P地址列表。您可以通過(guò)以下方法請(qǐng)求SSH服務(wù)的當(dāng)前狀態(tài)來(lái)查看此列表:
$ sudo fail2ban-client status ssh
7.刪除未使用的面向網(wǎng)絡(luò)的服務(wù)
幾乎所有Linux服務(wù)器操作系統(tǒng)都啟用了一些面向網(wǎng)絡(luò)的服務(wù)??赡苣MA羝渲写蠖鄶?shù),但是,需要?jiǎng)h除一些內(nèi)容。您可以使用ss命令查看所有正在運(yùn)行的網(wǎng)絡(luò)服務(wù):
$ sudo ss -atpu
ss的輸出將取決于您的操作系統(tǒng)。這是您可能看到的示例。它顯示SSH(sshd)和Ngnix(nginx)服務(wù)正在偵聽(tīng)并準(zhǔn)備連接:
tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))
刪除未使用的服務(wù)("
要?jiǎng)h除Debian / Ubuntu上未使用的服務(wù):
$ sudo apt purge
要在Red Hat / CentOS上刪除未使用的服務(wù):
$ sudo yum remove
再次運(yùn)行ss -atup以確認(rèn)不再安裝和運(yùn)行未使用的服務(wù)。
本文介紹了保護(hù)Linux服務(wù)器的一些基本步驟。您還可以根據(jù)使用服務(wù)器的方式,啟用其他安全方法,包括單個(gè)應(yīng)用程序配置、入侵檢測(cè)軟件以及啟用訪問(wèn)控制(例如,雙重身份驗(yàn)證)等功能。
【責(zé)任編輯:華軒 TEL:(010)68476606】