在 CentOS 中,“防火墙”通常指的是 firewalld(CentOS 7 及以后默认),也可能是 iptables。下面分别说明怎么查看它们的日志。
firewalld 默认不会记录被拒绝的连接日志,需要手动开启。
sudo journalctl -u firewalld
查看实时日志:
sudo journalctl -u firewalld -f
使用 rich rule 记录被拒绝的包:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="0.0.0.0/0" reject log prefix="FIREWALL-REJECT: " level="info"'
sudo firewall-cmd --reload
日志位置:
sudo journalctl | grep FIREWALL-REJECT
或在 /var/log/messages(CentOS 7):
grep FIREWALL-REJECT /var/log/messages
systemctl status iptables
iptables -I INPUT -j LOG --log-prefix "IPTABLES-DROP: " --log-level 4
CentOS 7:
tail -f /var/log/messages
CentOS 8+(使用 rsyslog/journald):
journalctl -k | grep IPTABLES-DROP
nft list ruleset
journalctl -k | grep nft
# 查看防火墙状态
firewall-cmd --state
# 查看规则
firewall-cmd --list-all
# 查看是否有 dropped 包
iptables -L -v -n
如果你能告诉我:
我可以给你更精确的命令。