Linux服務器作爲互聯網的基石,安全是至關重要的。但對於新手來說,如何下手加固服務器、避免常見的安全漏洞,可能會感到困惑。本文就來聊聊Linux服務器安全加固中新手常遇到的問題,並給出簡單易懂的解決方法。
問題1:密碼設置太簡單,不常更換¶
新手常見操作:直接用123456或生日作爲root密碼,或長期不換密碼。
風險:簡單密碼極易被暴力破解工具(如Hydra)掃描嘗試,幾分鐘內就能被破解,導致服務器被入侵。
解決方法:
- 強密碼要求:長度至少8位,包含大小寫字母、數字和特殊符號(例如:P@ssw0rd!)。
- 定期更換密碼:使用passwd命令修改,例如passwd root(root用戶)。建議每3個月更換一次,避免“密碼長期不變”。
- 禁用密碼登錄,改用SSH密鑰:更安全!生成密鑰對後,將公鑰放在服務器,用私鑰登錄。
- 本地生成密鑰:ssh-keygen -t rsa(一路回車,無需設置密碼)。
- 上傳公鑰到服務器:ssh-copy-id root@服務器IP,輸入密碼驗證後完成。
- 服務器端關閉密碼登錄:編輯/etc/ssh/sshd_config,設置PasswordAuthentication no,PubkeyAuthentication yes,重啓SSH服務:systemctl restart sshd。
問題2:防火牆“圖省事”直接關閉¶
新手常見操作:覺得防火牆太麻煩,直接systemctl stop firewalld或iptables -F清空規則。
風險:防火牆是服務器的“守門人”,關閉後所有端口暴露在外,黑客可掃描、攻擊漏洞服務(如Apache未打補丁的Web漏洞)。
解決方法:
- 開放必要端口:只開業務需要的端口(如Web用80/443,SSH用22),關閉其他端口。
- CentOS/RHEL(firewalld):
開放80端口:firewall-cmd --add-port=80/tcp --permanent(永久開放),然後firewall-cmd --reload生效。
查看開放端口:firewall-cmd --list-ports。
- Ubuntu/Debian(ufw):
開放22端口:ufw allow 22/tcp,啓用防火牆:ufw enable。
- 關閉不必要服務:如Telnet(不安全,用SSH替代)、FTP(若未用),用systemctl disable vsftpd(禁用FTP服務)。
問題3:SSH端口暴露公網,不限制IP訪問¶
新手常見操作:直接開放SSH的22端口到公網,不做任何限制。
風險:SSH是遠程登錄的核心入口,開放公網且無IP限制,會被黑客工具暴力破解(如每秒10次嘗試密碼)。
解決方法:
- 限制IP訪問:僅允許公司內網或指定IP登錄。
- 編輯/etc/hosts.allow,添加允許的IP段:
sshd: 192.168.1.0/24: allow(允許192.168.1.x網段訪問)。
- 編輯/etc/hosts.deny,禁止其他IP:sshd: ALL。
- 使用fail2ban防暴力破解:自動封禁多次失敗登錄的IP,新手可簡單設置:
安裝:yum install fail2ban(CentOS),啓用後自動監控/var/log/auth.log,3次失敗後封禁IP。
問題4:系統和軟件長期不更新,漏洞堆積¶
新手常見操作:安裝系統後從不更新,依賴舊版本軟件。
風險:系統和軟件(如Apache、Nginx)存在已知漏洞(如Heartbleed、Log4j),不更新就會被黑客利用。
解決方法:
- 定期更新系統:
- CentOS/RHEL:yum update -y(更新所有系統包)。
- Ubuntu/Debian:apt update && apt upgrade -y。
- 開啓自動更新(可選):
CentOS用yum-cron自動更新安全補丁;Ubuntu用unattended-upgrades配置自動重啓。
問題5:權限管理混亂,文件/目錄設爲777¶
新手常見操作:爲了“方便”,把網站目錄或日誌文件權限設爲chmod 777。
風險:777權限意味着“任何人可讀寫執行”,若服務器被入侵,攻擊者可直接篡改文件(如刪除網站、植入木馬)。
解決方法:遵循“最小權限原則”:
- 目錄權限:設爲755(所有者讀寫執行,組和其他僅讀執行),例如chmod 755 /var/www/html。
- 文件權限:設爲644(所有者讀寫,組和其他僅讀),例如chmod 644 /var/www/html/index.html。
- 避免root權限濫用:使用sudo代替su -,僅在必要時用root操作。
問題6:忽略日誌,出問題後“無頭蒼蠅”¶
新手常見操作:不配置日誌,服務器被入侵後無法追溯攻擊痕跡。
風險:日誌是排查問題的關鍵(如/var/log/auth.log記錄登錄失敗),若被黑客清空日誌,無法定位入侵來源。
解決方法:
- 配置日誌輪轉:防止日誌文件過大(如/var/log/messages)。
CentOS默認用logrotate自動輪轉日誌,可編輯/etc/logrotate.d/syslog自定義規則(如壓縮舊日誌)。
- 定期檢查關鍵日誌:
查看登錄記錄:grep "Failed password" /var/log/auth.log(篩選失敗登錄)。
查看系統異常:tail -f /var/log/messages(即時監控系統消息)。
問題7:安裝多餘服務,暴露不必要的端口¶
新手常見操作:爲了“快速建站”,安裝了FTP、Telnet、MySQL等未使用的服務。
風險:多餘服務默認開放端口(如FTP的21端口),即使不使用也會被黑客掃描攻擊。
解決方法:
- 卸載無用服務:
若不用FTP,卸載:yum remove vsftpd(CentOS);Ubuntu:apt remove vsftpd。
- 關閉未使用服務:
禁用Telnet服務:systemctl disable telnet.socket(Telnet不安全,僅用於演示)。
- 檢查端口:用netstat -tuln查看所有監聽端口,關閉未知服務對應的端口。
安全加固總結¶
新手加固Linux服務器,核心原則可總結爲:
1. 最小權限:權限越小越安全,拒絕777、root隨意操作。
2. 關閉入口:防火牆只開必要端口,限制SSH、數據庫等服務的訪問來源。
3. 及時更新:系統和軟件補丁必須打,漏洞早補早安心。
4. 日誌審計:記錄攻擊痕跡,定期查看關鍵日誌,排查異常。
安全加固是長期過程,建議新手先從關閉不必要服務、限制SSH訪問、設置強密碼開始,再逐步學習更復雜的工具(如iptables、fail2ban)。定期檢查服務器狀態(如用last查看登錄記錄),才能讓服務器“固若金湯”。