Linux运维安全底座的核心是让系统行为可追溯、网络边界可控制,需通过auditd监控关键事件、日志防篡改与远程加密转发、UFW/iptables默认拒绝精准放行、sysctl内核加固及fail2ban与防火墙联动验证,形成闭环防护。

Linux 运维安全底座的核心,是让系统行为可追溯、网络边界可控制。审计日志不是“记下来就行”,防火墙也不是“开了就完事”——关键在配置是否生效、规则是否合理、日志是否防篡改、流量是否真受限。
审计日志必须防删改、可验证
本地日志容易被入侵者清空或覆盖,仅靠/var/log/auth.log这类文件远远不够。
- 启用 auditd 并配置关键事件监控:比如 execve 系统调用(记录命令执行)、file_open(敏感文件访问),规则写入 /etc/audit/rules.d/ 中,用 auditctl -l 验证加载
- 设置日志权限与属性:chown root:adm /var/log/audit/;chmod 640 /var/log/audit/audit.log;再用 chattr +a 设置仅追加(+a)而非不可变(+i),避免服务写不进日志
- 启用远程日志转发:rsyslog 或 journal-remote 将日志实时发往独立日志服务器,路径中禁用明文传输,强制 TLS 加密,且日志服务器本身禁止 shell 登录
- 定期用 AIDE 校验日志目录完整性:初始化数据库后,每周 cron 执行 aide --check,异常结果自动邮件告警
防火墙策略要默认拒绝、精准放行
UFW 或 iptables 不是“允许几个端口”就够了,而是从默认拒绝开始,逐条叠加可信流量。
- UFW 启用前先设策略:sudo ufw default deny incoming;sudo ufw default allow outgoing;再开放必要端口(如自定义 SSH 端口 22022/tcp)
- 限制 SSH 访问来源:只允许可信 IP 段,例如 sudo ufw allow from 203.0.113.0/24 to any port 22022;公网服务器慎用单 IP 白名单,可用 geoip 模块按国家过滤
- iptables 规则顺序决定成败:先 DROP 再 ACCEPT,用 -I 插入顶部规则,避免中间空窗;重启后需持久化(Ubuntu 用 iptables-persistent,RHEL/CentOS 用 nftables 或 service iptables save)
- 结合 sysctl 强化内核层防护:启用 net.ipv4.tcp_syncookies=1 防 SYN 洪泛;net.ipv4.conf.all.rp_filter=1 防 IP 欺骗;net.ipv4.icmp_echo_ignore_all=1 减少主机暴露面(调试时临时关闭)
日志与防火墙联动才真正有效
孤立的日志和孤立的防火墙,都只是半截防线。它们需要互相支撑,形成闭环。
- Fail2ban 必须对接真实日志路径:/etc/fail2ban/jail.local 中 logpath 要与 sshd_config 的 SyslogFacility 和 rsyslog 配置一致(通常是 /var/log/auth.log)
- 封禁动作必须落地到防火墙:fail2ban 默认调用 iptables,若用 UFW,需在 action.d/ 中指定 ufw[actionban],确保封禁 IP 真正进入 UFW deny 规则链
- 封禁状态要可查可控:用 fail2ban-client status sshd 查当前封禁列表;用 ufw status verbose 对应验证;解封必须双确认(fail2ban-client set sshd unbanip 和 ufw status 检查是否已移除)
- 所有配置变更后必须验证:新开终端 ssh -p 22022 user@host 测试连通性;用 nmap -sS -p 22,22022 your_ip 验证非授权端口是否真关闭;用 logger "test" && tail -n1 /var/log/syslog 确认日志写入正常


















