我在使用Iptables日志时遇到了麻烦,我无法从kern.log,syslog和消息文件中取出它们。
我在rsyslog.conf中添加了两条将我的消息redirect到“iptables.log”文件的规则,但日志也存在于kern日志中。
这是我的rsyslog.conf:
############### ####规则#### ############### #iptables :msg,包含“IPT IN / DP:” - / var / log / iptables.log :msg,包含“IPT6 IN / DP:” - / var / log / iptables.log &〜 # #首先是一些标准的日志文件。 按设施logging。 # auth,authpriv。* /var/log/auth.log *。*; auth,authpriv.none,cron.none - / var / log / syslog cron。* /var/log/cron.log 守护进程。* - / var / log / daemon.log kern。* - / var / log / kern.log lpr。* - / var / log / lpr.log mail。* - / var / log / mail.log user。* - / var / log / user.log #(其他一些规则....) mail,news.none - / var / log / messages
我怎样才能logging只iptables.log iptable丢弃的数据包,而不是在kern.log文件?
我不确定& ~从哪里来,但至less下面应该执行你想要的:
# Iptables :msg,contains,"IPT IN/DP: " -/var/log/iptables.log :msg,contains,"IPT6 IN/DP: " -/var/log/iptables.log :msg,contains,"IPT IN/DP: " ~ :msg,contains,"IPT6 IN/DP: " ~
也许不是最优雅的,但类似的configuration似乎为我工作。
你有一个可以发布的iptables规则的例子吗? 你知道iptables可以设置--log-level或者--log-prefix ,你可以使用它们来过滤消息到特定的日志文件。
默认情况下,iptables的东西将被定向到kern.info 。 如果您没有使用任何选项来设置备用级别,您可以将您的configuration更新到syslog。
*.*;auth,authpriv.none;\ kern.!info -/var/log/syslog
您可以为kern.log做类似的事情,但请记住,这也会redirect其他kern.info消息,而不仅仅是iptables。 所以也许这样的事情会满足你的需求? kern_info.log可能是99.9%的iptables日志。
kern.*;kern.!info -/var/log/kern.log kern.info -/var/log/kern_info.log
我读过rsyslog有一些相当先进的过滤,但。 所以你可以设置一个--log-prefix ,并用它来做一些高级过滤,而不是仅仅使用service / severity进行过滤。