Logging denied packets (iptables)

Amadeus W.M. amadeus84 at verizon.net
Wed Oct 17 23:35:52 UTC 2007


On Wed, 17 Oct 2007 12:05:13 -0600, Ashley M. Kirchner wrote:

> One of our offices has several network ranges blocked in iptables
> (essentially '-A INPUT -s www.xxx.yyy.zzz/aa -j DROP').  What I'd like
> to do is create a log entry each time a packet is dropped, IF it matches
> any of those networks.  I think I need to assign all of those networks
> to a "group" and then log dropped packets from that group only.  And
> while I realize this might have other ramifications, such as logs
> growing exponentially, for now we're taking small steps.  Later on I can
> then look for things like logging the same IP only once...
> 
>     So how do I tell iptables to create a group or name, or whatever
> it's called for those ranges, and then log dropped packets from those
> ranges only?  And to be quite honest, all I really care to see in the
> log is something like '[standard log prefix] Packet DROP:
> $source/$destination' (or $source-port/$destination-port) - I don't
> really care for the lengthy log entry that iptables creates, such as
> this example of an SSH-reject:
> 
> Oct 17 11:15:04 queenb kernel: SSH REJECT: IN=eth0 OUT=
> MAC=00:30:48:33:96:22:00:07:50:49:df:7a:08:00 SRC=124.198.16.156
> DST=207.174.xxx.yyy LEN=60 TOS=0x00 PREC=0x00 TTL=44 ID=38666 DF
> PROTO=TCP SPT=48226 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0


Essentially, for any DROP rule, have a nearly identical LOG rule, with -j 
LOG --log-prefix "SOME STRING" instead of just -j DROP. 

For instance, I log the new not syn packets like so:

-A INPUT -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW 
-j LOG --log-prefix "NEW NOT SYN: " 

-A INPUT -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW 
-j DROP 


Of course, the LOG rule must come before DROP. The rules are identical 
except for the jump part (-j). 








More information about the users mailing list