iptables和firewalld开启策略日志
我的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/
使用awk和uniq进行去重:
cat /var/log/iptables_my.log | awk '{print $11}'| tr -d "DST=" | sort |uniq
uniq -c //进行重复次数统计
因为uniq命令,必须排序后才能进行去重,所以需要先进行排序
参考连接:https://blog.csdn.net/qq_43382735/article/details/121007185
tr删除特定字符串
https://blog.csdn.net/weixin_30945039/article/details/95820088
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?