iptables和firewalld开通策略日志

发布时间 2023-07-31 23:52:13作者: 叶子在行动

我的iptables中有这个规则:

iptables -AINPUT -s 192.168.11.0/24 -j LOG 

我的问题是:

iptables日志文件在哪里,我该如何更改?

这些日志由内核生成,因此它们将转到接收内核日志的文件: /var/log/kern.log 。

如果要将这些日志重定向到其他文件,则无法通过iptables完成。 它可以在调度日志的程序配置中完成:rsyslog。 在iptables规则中,添加任何其他内核日志未使用的前缀:

 iptables -A INPUT -s 192.168.11.0/24 -j LOG --log-prefix='[netfilter] ' 

按照20-ufw.conf设置的示例,在/etc/rsyslog.d/my_iptables.conf下创建一个包含的文件

 :msg,contains,"[netfilter] " /var/log/iptables.log 

默认日志接收位置:

LOG操作的日志文件位于/var/log/syslog (Ubuntu和类似操作系统)或/var/log/messages (CentOS和类似操作系统)中。

如果您在查找正确的文件时遇到问题,可以尝试这样做:

 find /var/log -mmin 1 

这将找到在/var/log及其下面的最后1分钟内修改的任何文件。 您可能会发现-j LOG可能只更新一个文件。

例如,在Ubuntu 18上, /var/log/syslog /var/log/kern.log/var/log/syslog都受到netfilter日志记录的影响。

 

firewall 开启策略记录日志步骤:

(默认只记录被禁止策略的日志,针对某条策略的日志记录,还需要研究)

编辑firewall的配置文件

vim /etc/firewalld/firewalld.conf

LogDenied=all    //all为存储全部拒绝日志

重启firewalld

systemctl restart firewalld

systemctl status firewalld

配置日志路径:

默认存储日志位置:

tail -f /var/log/messages

默认自定义路径:

vi /etc/rsyslog.conf 

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
kern.* /var/log/iptables.log      //配置将内核策略日志,存储到指定文件/var/log/iptables.log

自定义路径:

vim /etc/rsyslog.d/firewalld.conf      //在自定义位置创建一个自定义日志名称文件

kern.* /var/log/firewalld.log      //配置将内核策略日志,存储到指定文件/var/log/firewalld.log

vim /etc/logrotate.d/syslog      //可以做,也可以不配置,这个还不确定作用,说是滚动日志

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/firewalld.log
/var/log/spooler
{
missingok
sharedscripts
postrotate
/usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true
endscript
}

重启日志服务

打开firewalld.log日志

systemctl restart rsyslog.service

more /var/log/firewalld.log

参考:https://blog.csdn.net/kangweijian/article/details/126347125

firewall-cmd --reload   和  systemctl restart firewalld启动错误等日志位置:

tail -500f /var/log/firewalld

 

iptables开启策略记录日志:

开启策略日志记录:

iptables -AINPUT -s 192.168.11.0/24 -j LOG    //开启iptables的日志记录
类似如下图片,截图非上面命令的执行结果



默认日志位置:
tail -f /var/log/messages
自定义指定日志位置:

这些日志由内核生成,因此它们将转到接收内核日志的文件: /var/log/kern.log 。

如果要将这些日志重定向到其他文件,则无法通过iptables完成。 它可以在调度日志的程序配置中完成:rsyslog。 在iptables规则中,添加任何其他内核日志未使用的前缀:

 iptables -A INPUT -s 192.168.11.0/24 -j LOG --log-prefix='[netfilter] '    //指定日志输出类型名称(唯一标识)

按照20-ufw.conf设置的示例,在/etc/rsyslog.d/my_iptables.conf下创建一个包含的文件

 :msg,contains,"[netfilter] " /var/log/iptables.log   //指定日志输出位置
查看日志:
tail -500f /var/log/iptables.log

LOG操作的日志文件位于/var/log/syslog (Ubuntu和类似操作系统)或/var/log/messages (CentOS和类似操作系统)中。

如果您在查找正确的文件时遇到问题,可以尝试这样做:

 find /var/log -mmin 1 

这将找到在/var/log及其下面的最后1分钟内修改的任何文件。 您可能会发现-j LOG可能只更新一个文件。

例如,在Ubuntu 18上, /var/log/syslog /var/log/kern.log/var/log/syslog都受到netfilter日志记录的影响。

 

参考链接:https://ubuntu.dovov.com/4922/%E6%88%91%E5%9C%A8%E5%93%AA%E9%87%8C%E5%8F%AF%E4%BB%A5%E6%89%BE%E5%88%B0iptables%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E5%85%B6%E4%BD%8D%E7%BD%AE%EF%BC%9F.html

参考链接:https://www.bilibili.com/read/cv20486259/