记录firewall-cmd 拦截到日志

在CentOS 7或更高版本的Linux系统中,firewalld默认不会记录被拦截的数据包。要查看firewalld的拦截日志,你需要按照以下步骤进行配置:

1.开启firewalld的日志记录功能:
使用firewall-cmd命令设置logdenied选项为all,表示记录所有被拒绝的。

firewall-cmd --set-log-denied=all

2.重新加载firewalld配置,使更改生效。

firewall-cmd --reload

3.查看系统日志:
你可以通过查看系统日志来找到被firewalld拦截的数据包。常用的日志文件是/var/log/messages,但具体位置可能因系统配置而异。

tail -f /var/log/messages

4.使用rsyslog已经配置特定的日志捕获规则,你可以查看指定的日志文件,例如/var/log/firewalld.log。

配置rsyslog捕获日志(可选):
如果希望将firewalld的拦截日志重定向到特定的文件中,可以编辑rsyslog的配置文件。

例如,创建一个新的配置文件/etc/rsyslog.d/firewalld.conf,并添加以下内容:

:msg,contains,"_DROP" /var/log/firewalld.log 
& stop 
:msg,contains,"_REJECT" /var/log/firewalld.log 
& stop

5.然后重启rsyslog服务:

systemctl restart rsyslog

6.过滤和审计日志(可选):
如果日志条目太多,你可以编写脚本来过滤和提取有效信息。

例如,创建一个脚本/usr/local/bin/firewall-log来统计被拒绝的IP地址及其次数:

#!/bin/bash
PH=/tmp/.deny_analyze
echo '===> firewalld拦截信息日志 <==='
echo
echo  "拒绝次数 IP地址/端口"
cat /var/log/firewalld.log | awk '{print $10"="$17":"$19}' | grep -vE "SRC=0000*|SRC=fe80*" | grep DPT >$PH
cat /var/log/firewalld.log | awk '{print $10"="$18":"$20}' | grep -vE "SRC=0000*|SRC=fe80*" | grep DPT >>$PH
cat $PH | awk -F= '{gsub("PROTO","协议",$3);gsub("DPT","",$4);print $2"->"$3"/"$4$5}' | sort -nr | uniq -c | sort -nr | head -10

7.给脚本添加可执行权限:

chmod +x /usr/local/bin/firewall-log

然后运行脚本查看日志:

firewall-log

通过以上步骤,你就可以查看firewalld的拦截日志了。记得在不需要记录日志时,将logdenied选项设置回off以节省系统资源。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值