連網的 Linux 系統時刻面臨掃描、暴力破解、漏洞利用。以下五項措施構成最小可行性安全基線 (Minimum Viable Security Baseline),適用於所有發布版。
ssh-agent + keychain 管理 SSH Agent 轉發
# 查詢密碼狀態
chage -l username
# 設定策略:最長 90 天、最短 7 天、過期前 14 天警告、非活動 30 天鎖定
chage -M 90 -m 7 -W 14 -I 30 -E $(date -d "+1 year" +%Y-%m-%d) username
# 批次套用 (謹慎)
# for u in $(awk -F: '$3>=1000 && $3<65534 {print $1}' /etc/passwd); do chage -M 90 -m 7 -W 14 $u; done
配合 /etc/login.defs 設定 PASS_MAX_DAYS、PASS_MIN_DAYS、PASS_WARN_AGE 為新用戶預設值。
setenforce 0 或 selinux=0),這會移除強制存取控制 (MAC) 整層防護getenforce → 應為 Enforcinggetsebool -a | grep httpd → setsebool -P httpd_can_network_connect 1audit2allow -w -a 分析拒絕日誌 → audit2allow -M mymodule 產生 .pp → semodule -i mymodule.ppsealert -b (setroubleshoot)、system-config-selinux (policycoreutils-gui)
# SSH 設定 /etc/ssh/sshd_config
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
# 重載
systemctl reload sshd
sudo (配置 /etc/sudoers 最小命令集)/var/log/secure、journalctl -u sshd 追蹤特權提升| 發布版 | 工具 | 配置要點 |
|---|---|---|
| RHEL/CentOS/Fedora | dnf-automatic / yum-cron | apply_updates = yes, upgrade_type = security, emit_via = email |
| Debian/Ubuntu | unattended-upgrades | Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}-security"; } |
| openSUSE | yast2-online-update / transactional-update | 設定自動安裝安全補丁 |
| Arch/Manjaro | pacman -Syu 排程 | 需人工確認,滾動發布版不建議全自動 |
centos-announce, debian-security-announce, ubuntu-security-announce, redhat-watch-listOpenVAS, Lynis, Vuls 定期掃描trivy, grype, syft 掃描映像漏洞iptables -P INPUT DROP / firewall-cmd --set-default-zone=dropsystemctl disable --now cups bluetooth avahi-daemonauditd 監控關鍵系統呼叫AIDE / Tripwire 建立基線pam_exec.so 發送 Telegram/Email 警報kernel.yama.ptrace_scope=1, kernel.kptr_restrict=2, vm.mmap_rnd_bits=32安全非產品、非一次性配置,而是持續的流程。這五大措施 (金鑰環、強制換密、SELinux、禁 Root、自動更新) 涵蓋了「憑證保護、身份認證、強制存取控制、最小權限、漏洞生命週期管理」五大核心面向。建議將其納入 Ansible/Playbook 基線角色,新機器上線即合規,並每季度複核審計。