6 個(gè)提升 Linux 服務(wù)器安全的開源工具和技巧
使用開源工具來保護(hù)你的 Linux 環(huán)境不被入侵。
如今我們的許多個(gè)人和專業(yè)數(shù)據(jù)都可以在網(wǎng)上獲得,因此無論是專業(yè)人士還是普通互聯(lián)網(wǎng)用戶,學(xué)習(xí)安全和隱私的基本知識是非常重要的。作為一名學(xué)生,我通過學(xué)校的 CyberPatriot 活動(dòng)獲得了這方面的經(jīng)驗(yàn),在那里我有機(jī)會(huì)與行業(yè)專家交流,了解網(wǎng)絡(luò)漏洞和建立系統(tǒng)安全的基本步驟。
本文基于我作為初學(xué)者迄今所學(xué)的知識,詳細(xì)介紹了六個(gè)簡單的步驟,以提高個(gè)人使用的 Linux 環(huán)境的安全性。在我的整個(gè)旅程中,我利用開源工具來加速我的學(xué)習(xí)過程,并熟悉了與提升 Linux 服務(wù)器安全有關(guān)的更高層次的概念。
我使用我最熟悉的 Ubuntu 18.04 版本測試了這些步驟,但這些步驟也適用于其他 Linux 發(fā)行版。
1、運(yùn)行更新
開發(fā)者們不斷地尋找方法,通過修補(bǔ)已知的漏洞,使服務(wù)器更加穩(wěn)定、快速、安全。定期運(yùn)行更新是一個(gè)好習(xí)慣,可以最大限度地提高安全性。運(yùn)行它們:
sudo apt-get update && apt-get upgrade
2、啟用防火墻保護(hù)
啟用防火墻 可以更容易地控制服務(wù)器上的進(jìn)站和出站流量。在 Linux 上有許多防火墻應(yīng)用程序可以使用,包括 firewall-cmd 和 簡單防火墻(UFW)。我使用 UFW,所以我的例子是專門針對它的,但這些原則適用于你選擇的任何防火墻。
安裝 UFW:
sudo apt-get install ufw
如果你想進(jìn)一步保護(hù)你的服務(wù)器,你可以拒絕傳入和傳出的連接。請注意,這將切斷你的服務(wù)器與世界的聯(lián)系,所以一旦你封鎖了所有的流量,你必須指定哪些出站連接是允許從你的系統(tǒng)中發(fā)出的:
sudo ufw default deny incoming
sudo ufw default allow outgoing
你也可以編寫規(guī)則來允許你個(gè)人使用所需要的傳入連接:
ufw allow <service>
例如,允許 SSH 連接:
ufw allow ssh
最后,啟用你的防火墻:
sudo ufw enable
3、加強(qiáng)密碼保護(hù)
實(shí)施強(qiáng)有力的密碼政策是保持服務(wù)器安全、防止網(wǎng)絡(luò)攻擊和數(shù)據(jù)泄露的一個(gè)重要方面。密碼策略的一些最佳實(shí)踐包括強(qiáng)制要求最小長度和指定密碼年齡。我使用 libpam-cracklib 軟件包來完成這些任務(wù)。
安裝 libpam-cracklib 軟件包:
sudo apt-get install libpam-cracklib
強(qiáng)制要求密碼的長度:
- 打開
/etc/pam.d/common-password
文件。 - 將
minlen=12
行改為你需要的任意字符數(shù),從而改變所有密碼的最小字符長度要求。
為防止密碼重復(fù)使用:
- 在同一個(gè)文件(
/etc/pam.d/common-password
)中,添加remember=x
行。 - 例如,如果你想防止用戶重復(fù)使用他們最后 5 個(gè)密碼中的一個(gè),使用
remember=5
。
要強(qiáng)制要求密碼年齡:
- 在
/etc/login.defs
文件中找到以下幾行,并用你喜歡的時(shí)間(天數(shù))替換。例如:
PASS_MIN_AGE: 3
PASS_MAX_AGE: 90
PASS_WARN_AGE: 14
強(qiáng)制要求字符規(guī)格:
- 在密碼中強(qiáng)制要求字符規(guī)格的四個(gè)參數(shù)是
lcredit
(小寫)、ucredit
(大寫)、dcredit
(數(shù)字)和ocredit
(其他字符)。 - 在同一個(gè)文件(
/etc/pam.d/common-password
)中,找到包含pam_cracklib.so
的行。- 在該行末尾添加以下內(nèi)容:
lcredit=-a ucredit=-b dcredit=-c ocredit=-d
。 - 例如,下面這行要求密碼必須至少包含一個(gè)每種字符。你可以根據(jù)你喜歡的密碼安全級別來改變數(shù)字。
lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
。
- 在該行末尾添加以下內(nèi)容:
4、停用容易被利用的非必要服務(wù)。
停用不必要的服務(wù)是一種最好的做法。這樣可以減少開放的端口,以便被利用。
安裝 systemd 軟件包:
sudo apt-get install systemd
查看哪些服務(wù)正在運(yùn)行:
systemctl list-units
識別 哪些服務(wù)可能會(huì)導(dǎo)致你的系統(tǒng)出現(xiàn)潛在的漏洞。對于每個(gè)服務(wù)可以:
- 停止當(dāng)前正在運(yùn)行的服務(wù):
systemctl stop <service>
。 - 禁止服務(wù)在系統(tǒng)啟動(dòng)時(shí)啟動(dòng):
systemctl disable <service>
。 - 運(yùn)行這些命令后,檢查服務(wù)的狀態(tài):
systemctl status <service>
。
5、檢查監(jiān)聽端口
開放的端口可能會(huì)帶來安全風(fēng)險(xiǎn),所以檢查服務(wù)器上的監(jiān)聽端口很重要。我使用 netstat 命令來顯示所有的網(wǎng)絡(luò)連接:
netstat -tulpn
查看 “address” 列,確定 端口號。一旦你找到了開放的端口,檢查它們是否都是必要的。如果不是,調(diào)整你正在運(yùn)行的服務(wù),或者調(diào)整你的防火墻設(shè)置。
6、掃描惡意軟件
殺毒掃描軟件可以有用的防止病毒進(jìn)入你的系統(tǒng)。使用它們是一種簡單的方法,可以讓你的服務(wù)器免受惡意軟件的侵害。我首選的工具是開源軟件 ClamAV。
安裝 ClamAV:
sudo apt-get install clamav
更新病毒簽名:
sudo freshclam
掃描所有文件,并打印出被感染的文件,發(fā)現(xiàn)一個(gè)就會(huì)響鈴:
sudo clamscan -r --bell -i /
你可以而且應(yīng)該設(shè)置為自動(dòng)掃描,這樣你就不必記住或花時(shí)間手動(dòng)進(jìn)行掃描。對于這樣簡單的自動(dòng)化,你可以使用 systemd 定時(shí)器 或者你的 喜歡的 cron 來做到。
保證你的服務(wù)器安全
我們不能把保護(hù)服務(wù)器安全的責(zé)任只交給一個(gè)人或一個(gè)組織。隨著威脅環(huán)境的不斷迅速擴(kuò)大,我們每個(gè)人都應(yīng)該意識到服務(wù)器安全的重要性,并采用一些簡單、有效的安全最佳實(shí)踐。
這些只是你提升 Linux 服務(wù)器的安全可以采取的眾多步驟中的一部分。當(dāng)然,預(yù)防只是解決方案的一部分。這些策略應(yīng)該與嚴(yán)格監(jiān)控拒絕服務(wù)攻擊、用 Lynis 做系統(tǒng)分析以及創(chuàng)建頻繁的備份相結(jié)合。