1. 持續更新系統與軟件
定期執行sudo apt update && sudo apt upgrade -y
命令,確保操作系統及所有軟件包均為最新版本,及時修補已知漏洞。建議開啟自動安全更新功能(安裝unattended-upgrades
并配置),自動安裝安全補丁,減少因延遲更新導致的暴露風險。
2. 強化用戶權限管理
遵循“最小權限原則”,日常操作使用普通用戶賬戶,通過sudo
命令獲取臨時管理員權限;禁止root用戶通過SSH遠程登錄(修改/etc/ssh/sshd_config
文件,設置PermitRootLogin no
),降低賬戶被暴力破解或提權攻擊的風險;制定強密碼策略(使用大小寫字母、數字、特殊字符組合,長度不少于8位),并定期更換密碼。
3. 配置防火墻限制訪問
使用ufw
(Uncomplicated Firewall)或iptables
配置防火墻,僅開放系統必需的服務端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口),屏蔽其他不必要的端口;通過ufw default deny incoming
設置默認拒絕外來連接,ufw default allow outgoing
允許內部發起的出站連接,減少外部非法訪問的可能。
4. 部署入侵檢測與防御工具
安裝入侵檢測系統(IDS)如Snort,監控網絡流量和系統活動,識別惡意行為(如端口掃描、SQL注入)并及時報警;使用入侵防御系統(IPS)如Suricata,主動攔截可疑流量,阻止攻擊擴散;此外,可部署fail2ban
工具,自動封禁多次嘗試登錄失敗的IP地址,防范暴力破解攻擊。
5. 使用強制訪問控制(MAC)機制
啟用SELinux(Security-Enhanced Linux)或AppArmor(Application Armor),通過強制訪問控制限制進程的權限。例如,AppArmor可為每個應用程序創建配置文件,定義其可訪問的文件、目錄和網絡資源,即使進程被攻破,也能限制其破壞范圍;SELinux則提供更細粒度的權限控制(如強制訪問控制策略),進一步提升系統安全性。
6. 精簡系統與服務
遵循“最少安裝原則”,僅安裝系統運行必需的軟件包和服務(如使用sudo apt install --no-install-recommends
命令安裝軟件,避免不必要的依賴);停用未使用的服務(如FTP、Telnet等明文傳輸服務),減少系統的攻擊面;定期核查系統服務狀態(使用systemctl list-unit-files --state=enabled
),關閉無用服務。
7. 加強SSH安全配置
修改SSH默認端口(編輯/etc/ssh/sshd_config
文件,將Port 22
改為其他端口,如2222),減少自動化掃描工具的攻擊;啟用SSH密鑰認證(使用ssh-keygen -t rsa -b 4096
生成密鑰對,將公鑰添加至~/.ssh/authorized_keys
文件),替代密碼認證,避免密碼泄露導致的風險;限制SSH登錄IP地址(在/etc/ssh/sshd_config
中添加AllowUsers user@ip地址
),僅允許特定IP地址訪問SSH服務。
8. 定期備份與恢復演練
制定自動備份策略,使用rsync
、tar
或duplicity
等工具定期備份重要數據(如系統配置文件、數據庫、用戶文檔),備份數據存儲在離線介質(如外部硬盤)或異地服務器,防止數據丟失;定期進行恢復演練(如模擬系統崩潰后恢復數據),確保備份數據的可用性和完整性。
9. 監控與日志審計
使用auditd
(Linux審計框架)記錄系統活動(如文件訪問、用戶登錄、進程啟動),通過ausearch
命令查詢審計日志,追蹤異常行為;集中管理日志(使用ELK Stack:Elasticsearch、Logstash、Kibana或Graylog),實時分析日志數據,識別潛在的安全威脅(如頻繁的登錄失敗、異常的文件修改);定期審查系統日志(如/var/log/auth.log
記錄SSH登錄信息,/var/log/syslog
記錄系統運行日志),及時發現并處理安全事件。
10. 定期安全掃描與評估
使用漏洞掃描工具(如OpenVAS
、Nessus
)定期掃描系統,識別未修補的漏洞、弱密碼、過期的證書等問題,生成安全報告并根據報告修復漏洞;對自定義應用程序進行代碼審計(使用SonarQube
、Bandit
等工具),檢查是否存在SQL注入、跨站腳本(XSS)等安全漏洞,確保應用程序的安全性。