Iptables logovanje DROP paketa

Logovanje iptables je veoma korisna alatka za otkrivanje nevaljalstava prema vašem serveru.
Mogući nivoi logovanja :
0 emerg, 1 alert, 2 crit, 3 err, 4 warning, 5 notice, 6 info, 7 debug
Ja želim da logujem samo pakete koje je moj iptables odbacio (DROP), jer su izvorne adrese zabranjene.
Da bi se pratilo šta tačno dolazi sa određenog (testnog i zabranjenog) hosta 10.10.10.141 :
# tcpdump -vv host 10.10.10.141
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:57:02.447041 IP (tos 0x0, ttl 63, id 58650, offset 0, flags [DF], proto 6, length: 60) mail.kamcatka.net.10.10.10.in-addr.arpa.42324 > mail-2008.moj.domen.ssh: S [tcp sum ok] 453060264:453060264(0) win 5840

Ako ovako ne dobijate listing paketa sa hosta (što može da se desi), onda u komandi tcpdump OBAVEZNO morate specificirati i interfejs koji se prati (to važi za RHEL4U5 i tcpdump-3.8.2-10.RHEL4, tako da bi komanda u tom slučaju bila : # tcpdump -i eth1 host 10.10.10.141)

I kako namestiti da se loguju DROP-ovani paketi? Pa ne može jednom naredbom za sve, nego se IP adrese i/ili mreže moraju pojedinačno navoditi, obavezno PRE komande za DROP njihovih paketa, i to npr. ovako (fajl /etc/sysconfig/iptables na serveru 10.10.10.38) :
*filter
-A INPUT -s 10.10.10.141 -j LOG –log-prefix “iptables-drop: ”
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1298:585557]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 10.10.10.141/255.255.255.255 -j DROP
…..
I onda će se logovati DROP-ovani paketi sa adrese 10.10.10.141 u fajl /var/log/messages, sa prefiksom iptables-drop :
Feb 14 08:49:50 mail-2008 kernel: iptables-drop: IN=eth0 OUT= MAC=00:12:52:4b:b4:f3:01:21:a0:ed:01:7c:08:00 SRC=10.10.10.141 DST=10.10.10.38 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=46720 DF PROTO=TCP SPT=32845 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0

Ako hoćemo da se dati DROP-ovani paketi loguju u odvojeni fajl, a ne u /var/log/messages (što je u principu dobra ideja), u fajl /etc/syslog.conf fajl se dodaje jedan linija :
kern.warning /var/log/iptables.log
Restartuje se servis za logovanje :
# service syslog restart
I to je sve. Od sad iptables loguje u /var/log/iptables.log fajl.