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