linux – 使用iptables记录系统上连接的每个IP

前端之家收集整理的这篇文章主要介绍了linux – 使用iptables记录系统上连接的每个IP前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
标题说明了一切.

我如何使用Linux下的iptables记录连接到服务器的所有IP?
作为一个小细节,我想在日志PER每日IP中只有一个条目.

谢谢 :)

编辑:

我把它缩小到每个新会话记录的5个包,这很奇怪,因为我使用–hashlimit 1 –haslimit-burst 1,我怀疑–m limit默认为5在那里起作用.麻烦的是,如果我将-m limit设置为1,则只记录1个条目用于所有IP,而不是每个EACH IP一个条目.

我想这样做的原因还在于尽可能避免日志增长太快,因为这将是一个相当无管理的盒子.

EDIT2:
这是我目前的尝试,以iptables-restore格式:
(为了便于阅读,在几行上)

-A FORWARD -d 10.x.x.x -p tcp --dport 443 -m state --state NEW 
-m hashlimit --hashlimit-upto 1/min --hashlimit-burst 1 
--hashlimit-mode srcip --hashlimit-name denied-client 
-j LOG --log-prefix "iptables (denied client): "

解决方法

我会试试这个:
# IP address entry older than one day
iptables -A ... -m recent --name mydaily ! --rcheck ! --seconds 86400 -j logandset
# IP address never seen before
iptables -A ... -m recent --name mydaily ! --rcheck -j logandset

# Custom chain for logging and refreshing
iptables -N logandset
iptables -A logandset -j LOG
iptables -A logandset -m recent --name mydaily --set

因此,您的列表mydaily将跟踪最后看到的IP地址,如果以前从未见过,或者如果最后一次看到的是超过一天,则将记录数据包,并更新该IP地址的列表条目.

您应该将ip_list_tot设置为更高的mydaily值,如iptables联机帮助页(在/ proc / net / xt_recent / mydaily中的情况)中所述.

猜你在找的Linux相关文章