Debug di regole Iptables

From RVM Wiki
Revision as of 13:35, 9 December 2011 by Gabriele.vivinetto (talk | contribs) (Created page with "Ogni pacchetto dal kernel 2.6.23 in poi, attraversa la tabella ''raw'', che ha un target particolare ''TRACE'' Ipotizziamo di coler loggare tutti i pacchetti provenienti dall'ho…")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Ogni pacchetto dal kernel 2.6.23 in poi, attraversa la tabella raw, che ha un target particolare TRACE

Ipotizziamo di coler loggare tutti i pacchetti provenienti dall'host 1.2.3.4 destinati alla porta 8000

  • Caricare i moduli per il logging di iptables:
sudomodproble ipt_LOG
  • Definire che pacchetti si vogliono loggare, inserendoli in entrambe le chain OUTPUT e PREROUTING
sudo iptables -t raw -A PREROUTING -p tcp --dport 8000 -s 1.2.3.4 -j TRACE
sudo iptables -t raw -A OUTPUT -p tcp --dport 8000 -s 1.2.3.4 -j TRACE

  • Ora in syslog si vedrà un output del tipo (formattato...) che indica che il pacchetto è loggato:
TRACE: raw:PREROUTING:policy:2
IN=eth1
OUT= MAC=00:06:7b:03:7f:89:84:c9:b2:82:18:1a:08:00
SRC=1.2.3.4
DST=5.6.7.8
LEN=52 TOS=0x10 PREC=0x00 TTL=55 ID=50604 DF PROTO=TCP SPT=34953
DPT=8000
SEQ=1670740955 ACK=1467539518 WINDOW=229 RES=0x00 ACK URGP=0 OPT (0101080A0084E5D9017E96F9)
  • Qui dice che transita dalla chain FORWARD passando dalla regola 8:
TRACE: filter:FORWARD:rule:8
IN=eth1
OUT=eth0
SRC=1.2.3.4
DST=7.8.9.10
LEN=52 TOS=0x10 PREC=0x00 TTL=54 ID=50604 DF PROTO=TCP SPT=34953
DPT=8000
SEQ=1670740955 ACK=1467539518 WINDOW=229 RES=0x00 ACK URGP=0 OPT (0101080A0084E5D9017E96F9)
  • Nel caso non ci sia la rule: ma policy: significa che il pacchetto è stato matchato da una POLICY della chain.
  • Per vedere la rule interessata:
sudo iptables -t tablename -v -L CHAINNAME RULENUMBER
  • Ad esempio per vedere la regola 3 della tabella nat nella chain PREROUTING
sudo iptables -t nat -v -L PREROUTING 3
  • IMPORTANTE: Al termine, eliminare le regole di tracing impostate, sostituendo al -A il -D, altrimenti ALTRIMENTI IL SYSLOG SI RIEMPIRÀ
sudo iptables -t raw -D PREROUTING -p tcp --dport 8000 -s 1.2.3.4 -j TRACE
sudo iptables -t raw -D OUTPUT -p tcp --dport 8000 -s 1.2.3.4 -j TRACE

Riferimenti