多數 Linux 安全事件源於配置疏忽而非內核漏洞。本文提煉六大高收益加固項目,涵蓋網絡訪問控制、SSH 強化、賬號精簡、關鍵文件免疫、服務權限收斂、FTP 匿名禁用,每項附帶具體命令與驗證方法,開箱即用。
# 方法一:內核參數禁用 ICMP 回應(即時生效,重啟失效)
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# 方法二:iptables 丟棄 ICMP 報文(持久化需配合 iptables-save)
iptables -A INPUT -p icmp -j DROP
# 方法三:針對性允許信任網段,其餘拒絕
iptables -A INPUT -s 192.168.1.0/24 -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j DROP
驗證:外部 ping 無回應,traceroute 顯示 * * *。
# 修改端口(建議 10000+,避開自動掃描)
sed -i 's/^#Port 22/Port 22222/' /etc/ssh/sshd_config
# 禁用 Root 直接登入
sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# 僅允許公鑰認證
sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
# 建立普通運維賬號
useradd opsuser
passwd opsuser
# 將 opsuser 公鑰寫入 ~/.ssh/authorized_keys
# 重載生效
systemctl reload sshd
# 刪除用戶
for u in adm lp sync shutdown halt news uucp operator games gopher ftp; do
id "$u" && userdel -r "$u"
done
# 刪除組
for g in adm lp news uucp games dip pppusers; do
getent group "$g" && groupdel "$g"
done
原則:業務不需要的系統賬號全刪,減少攻擊面。
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
效果:連 root 也無法修改/刪除,需 chattr -i 解除後方可變更。防止入侵者植入後門賬號或篡改密碼。
chmod 600 /etc/xinetd.conf
# 同理保護其他敏感配置
chmod 600 /etc/ssh/sshd_config
chmod 600 /etc/vsftpd.conf
# vsftpd 配置
echo 'anonymous_enable=NO' >> /etc/vsftpd.conf
echo 'local_enable=YES' >> /etc/vsftpd.conf
systemctl restart vsftpd
| 檢查項 | 命令 | 預期結果 |
|---|---|---|
| ICMP 封禁 | ping 本機 IP | 無回應 |
| SSH 端口 | ss -ntlp | grep sshd | 監聽 22222 |
| Root 禁登 | ssh root@localhost | Permission denied |
| 無用賬號 | getent passwd adm lp sync ... | 無輸出 |
| 文件免疫 | lsattr /etc/passwd | 顯示 ----i--------- |
| 配置權限 | stat -c '%a %n' /etc/ssh/sshd_config | 600 |
| FTP 匿名 | ftp localhost → user anonymous | 530 Login incorrect |
持續合規建議:將上述配置納入 Ansible/SaltStack 基線劇本,接入 CI/CD 流水線自動掃描偏差,實現「配置即代碼、合規即服務」。