我想创建一个文件iptables.log
来记录所有 DROP 和入侵尝试。下面是我一步步做的:
1)在我的 iptables 规则文件中,我输入了以下内容:
-A INPUT -j LOG --log-level 4 --log-ip-options --log-prefix "iptables: "
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
# and then the other rules to open up SSH
然后我用来iptables-restore
应用更改。
2)iptables.conf
我在内创建了一个文件/etc/rsyslog.d/
,其中包含以下规则:
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
3)在 中/etc/rsyslog.d/50-default.conf
,我放入了以下内容:
#iptables
kern.warning /var/log/iptables.log
4)我重新启动了rsyslog
守护进程。
但这似乎不足以实现我的目标。还需要做什么?
另外,我也应该制定一条规则吗-A OUTPUT -j LOG
?或者它没用?
答案1
这不是一个需要立即处理的事情,而是一个“清理”过程,这只是一个好习惯。
我建议配置日志轮换,这样就不会用新日志文件填满日志分区。大多数服务都会在 /etc/logrotate.d/ 中放置一个配置文件。而且数据包日志记录可能非常繁琐。
由于这是一个新的日志文件,您必须将其添加到现有日志文件,例如 /etc/logrotate.d/rsyslog.conf。
答案2
对于我们(Debian 6)来说,它只是在 /etc/rsyslog.d/ 中包含了附加规则,并且没有改变 rsyslog.conf 文件。
我们确认目录规则在核心 rsyslog.conf“之前”执行,并且“&~”使得匹配的条目停止搜索以下规则。
这是 /etc/rsyslog.d/ 中的一个文件,其中包含
:msg, startswith, "Firewall: " -/var/log/firewall.log
& ~
完成的工作就像有一个 kern.warning 的条目一样,我理解这会重复规则。
在我们的例子中,iptables 规则是由 CSF 防火墙创建的,所以问题可能就在这里。防火墙规则如下
19 2140 113K LOG tcp -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 30/min burst 5 LOG flags 0 level 4 prefix `Firewall: *TCP_IN Blocked* '