Linux 伺服器上線前必須進行基礎安全加固,以降低被入侵風險。本文整理 13 項核心加固項目,涵蓋帳號管理、密碼策略、SSH 強化、核心參數、登入控制與稽核追蹤,每項均提供檢查指令、備份建議、加固操作與風險提示,可直接作為作業手冊使用。
檢查:cat /etc/passwd; cat /etc/shadow
備份:cp -p /etc/passwd /etc/passwd_bak; cp -p /etc/shadow /etc/shadow_bak
加固:passwd -l <username> 鎖定;passwd -u <username> 解鎖。
風險:需與業務主管確認不影響應用程式登入。
檢查:grep PASS /etc/login.defs
備份:cp -p /etc/login.defs /etc/login.defs_bak
建議值:
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
PASS_MIN_LEN 8
特例:特定帳號永不過期 passwd -x 99999 <user> 或 passwd -x -1 <user>。檢查:awk -F: '$3==0 {print $1}' /etc/passwd
加固:鎖定非必要的 UID 0 帳號。
風險:確認該帳號用途後再操作。
檢查:awk -F: '($2=="") {print $1}' /etc/shadow
加固:鎖定 passwd -l <user> 或強制設定密碼。
風險:確認是否為應用程式服務帳號,設密碼可能導致服務中斷。
檢查:grep umask /etc/profile
加固:在 /etc/profile 設定 umask 022(新檔 644、新目錄 755)。
風險:Web 應用伺服器謹慎修改,可能影響應用寫入權限。
加固:新增 AllowUsers *@10.138.*.*(僅允許 10.138.0.0/16 網段)。
生效:systemctl restart sshd。
風險:務必確認管理者 IP 段,避免將自己鎖在外面。
檢查:grep PermitRootLogin /etc/ssh/sshd_config
加固:設定 PermitRootLogin no,重啟 sshd。
風險:需先建立可 sudo 的一般帳號,否則將無法遠端管理。
檢查:cat /etc/hosts.equiv; cat ~/.rhosts
加固:刪除不必要的主機條目。
風險:高可用性叢集環境需保留互信主機。
加固:/etc/ssh/sshd_config 設定 Banner none;清空 /etc/motd。
風險:無。
檢查:grep ctrlaltdel /etc/inittab
加固:在該行行首加 # 註解。
風險:無。
臨時生效:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
永久生效:在 /etc/sysctl.conf 加入 net.ipv4.icmp_echo_ignore_all=1 並 sysctl -p。
替代方案:iptables 丟棄 -A INPUT -p icmp --icmp-type echo-request -j DROP。
加固:在 /etc/profile 加入 export TMOUT=600(600 秒無操作自動登出)。
風險:長時間編輯作業可能被中斷,建議搭配 screen/tmux 使用。
檢查:grep HISTSIZE /etc/profile; grep HISTFILESIZE /etc/profile
加固:設定 HISTSIZE=20 HISTFILESIZE=20。
風險:無,但會限制事後稽核追蹤深度。