Linux Minimal如何提高安全性
小樊
58
2026-01-12 09:43:04
Linux Minimal 安全加固清单
一 基础基线
- 保持系统为最小化安装,仅启用必需软件包与服务;上线前与运行中定期执行补丁更新(优先安全更新)。
- 清理无用账户与高危服务:检查是否存在空口令账户(如:
awk -F: '($2 == ""){print $1}' /etc/shadow)、是否存在UID=0的额外账户(如:awk -F: '($3 == 0){print $1}' /etc/passwd),并清理或锁定不必要的系统账户;默认禁用或移除telnet、rsh、ftp、rpcbind、xinetd等老旧/明文协议服务。
- 启动并持久化防火墙:CentOS/RHEL 使用 firewalld,Ubuntu/Debian 使用 UFW;默认拒绝入站、仅放行必要端口(如 SSH)。
- 强化SSH:禁止 root 远程登录、改用密钥登录、可变更默认端口、限制来源网段;为运维创建普通用户并加入 wheel/sudo 组,通过 sudo 精细授权。
- 部署fail2ban 保护 SSH 等暴露面,配置失败重试阈值与封禁时长,降低暴力破解风险。
二 身份鉴别与访问控制
- 口令策略:在 /etc/login.defs 设置密码生命周期(如:PASS_MAX_DAYS 90、PASS_MIN_LEN 8、PASS_WARN_AGE 14);在 /etc/pam.d/system-auth 使用 pam_pwquality.so 强制复杂度(如:
minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=5 enforce_for_root)。
- 登录失败锁定:在 /etc/pam.d/sshd 与 /etc/pam.d/login 配置 pam_tally2.so(如:
deny=5 lock_time=30 unlock_time=600 even_deny_root root_unlock_time=600);解锁用 pam_tally2 -u <user> -r。
- 限制 su:在 /etc/pam.d/su 加入
auth required pam_wheel.so use_uid,仅允许 wheel 组成员切换到 root。
- 会话与历史:设置 TMOUT=600(10 分钟无操作自动退出)、
HISTSIZE=5、HISTFILESIZE=5,减少信息泄露与会话劫持面。
- 权限最小化:为服务创建专用系统用户(如:
useradd -r -s /sbin/nologin nginx),以最小权限运行;通过 sudoers 白名单授权(如:deployer ALL=(www-data) NOPASSWD: /usr/local/bin/deploy.sh),避免授予不必要的高危命令。
三 服务与网络加固
- 服务最小化:列出并禁用非必需开机服务(如:
systemctl list-unit-files --type=service | grep enabled;systemctl disable <svc> && systemctl stop <svc>),减少攻击面。
- 防火墙精细化:
- firewalld(CentOS/RHEL):启用并持久化规则,按需仅放行 SSH/HTTP/HTTPS 等;可配置源地址白名单与富规则(如:
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="80" protocol="tcp" accept')。
- UFW(Ubuntu/Debian):默认拒绝入站、允许出站;按需放行端口与来源(如:
ufw allow from 192.168.1.100 to any port 3306/tcp)。
- 登录防护:启用 fail2ban,为 SSH 设置“短时间多次失败即封禁”的策略(如:5 分钟内失败 3 次封禁 1 小时),并启用日志以便审计。
- 端口与服务暴露:变更 SSH 端口仅作为“安全通过 obscurity”的辅助手段,必须配合密钥登录与防火墙白名单;对外最小化暴露,数据库、管理端口不对公网开放。
四 日志审计与完整性
- 集中与保护日志:确保 rsyslog/journald 正常运行,关键日志(如 /var/log/secure、/var/log/auth.log)定期归档;建议配置远程日志(如 rsyslog over TLS)以防本地篡改或删除。
- 审计关键文件:使用 auditd 监控敏感文件变更(如:
auditctl -w /etc/passwd -p wa -k passwd_changes),便于事后追溯。
- 完整性校验:部署 AIDE 建立基线并定期校验(如:
aideinit 初始化;aide --check 检查),发现未授权变更及时处置。
- 合规提示:如按等保 2.0 要求,需覆盖“身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、剩余信息保护”等控制点,上述措施可作为通用实现路径。
五 维护与验证
- 持续更新与核查:启用自动安全更新(如 Ubuntu 的 unattended-upgrades、RHEL/CentOS 的 yum-cron 仅安全更新);每月至少一次手动核查可升级包与策略有效性。
- 例行巡检:定期执行基线核查与攻防演练验证,包括:监听端口与服务(
ss -tuln、systemctl list-unit-files --type=service)、防火墙状态与规则(firewall-cmd --list-all 或 ufw status)、SSH 配置与密钥登录、fail2ban 状态、账户与 sudo 授权、日志与审计告警。