Ubuntu防火墙安全审计的核心流程与实践
安全审计的第一步是验证防火墙是否启用及基础策略是否符合安全规范。使用sudo ufw status查看防火墙状态(若显示“Status: inactive”则未启用);通过sudo ufw default检查默认策略,必须确保默认拒绝所有入站连接(deny incoming)、允许所有出站连接(allow outgoing),这是最小权限原则的核心体现。
日志是安全审计的关键依据,ufw的日志默认存储在/var/log/ufw.log(也可通过/var/log/syslog或/var/log/kern.log查看iptables层的日志)。
sudo ufw logs查看所有防火墙活动记录(包括允许/拒绝的连接);sudo ufw logs -v可显示更详细的源IP、目的IP、端口、协议等信息。sudo tail -f /var/log/ufw.log实时跟踪最新日志,快速发现异常连接尝试(如频繁的端口扫描、暴力破解)。grep命令筛选特定信息,例如grep "DENY" /var/log/ufw.log查看所有被拒绝的连接,grep "SSH" /var/log/ufw.log聚焦SSH服务的访问记录。检查现有规则是否符合业务需求,避免过度开放端口或遗留无用规则:
sudo ufw status numbered(带编号,便于后续删除/修改);sudo ufw list(简洁列表)。确保ufw的日志记录功能已开启且级别合适:
sudo ufw logging on(默认级别为“low”,记录大部分事件);如需更详细日志,可编辑/etc/ufw/ufw.conf文件,将LOGLEVEL设置为“medium”或“high”(注意:高级别日志会增加系统负载)。/etc/rsyslog.conf或/etc/rsyslog.d/ufw.conf中未修改ufw日志的默认存储路径,避免日志被重定向至其他位置。使用auditd(Linux审计守护进程)监控防火墙相关系统调用,例如:
auditd规则:sudo auditctl -a always,exit -F arch=b64 -S setsockopt -F a0=1 -F a1=2 -k firewall_rules(监控防火墙规则变更);ausearch -k firewall_rules,记录谁、何时修改了防火墙规则,提升配置变更的可追溯性。