Hi,
I'm getting duplicate entries in a "recent" table.
E.g.:
# cat banned | grep 193.23.112.133
src=193.23.112.133 ttl: 58 last_seen: 436851854 oldest_pkt:
1 last_pkts: 436851854
src=193.23.112.133 ttl: 58 last_seen: 435101910 oldest_pkt:
1 last_pkts: 435101910
src=193.23.112.133 ttl: 58 last_seen: 435600728 oldest_pkt:
1 last_pkts: 435600728
I took a quick look at the source(*) and I as far as I
understand even
if I would "--set" the same IP multiple times it
would/should still only
create one entry.
These are the rules I use:
-A in $ETH0_TCP_SYN -m recent --rcheck --seconds 60 --name
banned --rsource -j DROP
-A in $ETH0_TCP_SYN -m recent --remove --name banned
--rsource
-A in $ETH0_TCP_SYN -m hashlimit --hashlimit 5/sec
--hashlimit-name accept --hashlimit-htable-max 4096 -j
ACCEPT
-A in $ETH0_TCP_SYN -m hashlimit --hashlimit 5/sec
--hashlimit-name drop --hashlimit-htable-max 4096 -j DROP
-A in $ETH0_TCP_SYN -m recent --set --name banned --rsource
-j DROP
Although this tries to avoid adding the same IP to the list
multiple
times I think it is unavoidable that multiple packets could
have passed
the initial 'rcheck', and heading towards the final 'set'
rule at the
same time. (It's a quad core CPU.)
Is there something I can, or should, do to prevent these
dups?
(*)I must admit that the running kernel is a 2.6.17.7 and I
looked at
the source of linux-2.6.22-rc5.
Regards,
Mark.
|