我使用iptables记录了很多并将我的日志放在一个单独的文件中我在/etc/rsyslog.d/iptables.conf中添加了一些规则
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables: " -/var/log/iptables.log
& ~
这会删除/var/log/{kern.log,daemon.log,messages}中的日志,但是当我发出journalctl -xe时,所有iptables日志都显示在那里 - 所以journalctl从哪个文件读取,我该怎么办?从中删除iptables日志?
答案 0 :(得分:0)
问题是当在iptables中使用LOG作为目标时,即使rsyslog从kern.log等删除,dmesg仍然会被填满.journall -xe显示了这个dmesg文本。似乎使用ulog是唯一的方法:
apt-get install ulogd2
在debian上测试这个自动创建的systemd单元文件和配置文件。
然后我使用了iptables规则:
iptables -N LOG_DROP
iptables -A LOG_DROP -m limit --limit 5/m --limit-burst 10 -j NFLOG --nflog-group 0 --nflog-prefix "DROP "
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set -m comment --comment "Limit SSH IN" # add ip to recent list with --set.
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j LOG_DROP -m comment --comment "Limit SSH IN"
瞧,所有日志都在/var/log/ulog/syslogemu.log的日志文件中