PDA

View Full Version : [IPTABLES]domanda semplice sull ordėne delle regole


toni00t
09-03-2014, 19:28
ciao ; sto studiando la regola della sequenzialitā delle catene in iptables e ho un problema
se imposto la dport e la sport nella stessa regola non riesco a efettuare connessioni o inviare paccheti

tutte le policy sono di default a DROP

sudo iptables -F
sudo iptables -I INPUT -p udp --sport 53 -j ACCEPT
sudo iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
sudo iptables -I OUTPUT -p udp --sport 53 -j ACCEPT
sudo iptables -I INPUT -p udp --dport 53 -j ACCEPT
nslookup www.mondoxbox.com
Server: 127.0.1.1
Address: 127.0.1.1#53

cosė funziona e queste sono le catene

sudo iptables -L INPUT -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53

sudo iptables -L OUTPUT -n
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53

perchč cosė non va invece ?



sudo iptables -F
sudo iptables -I OUTPUT -p udp --sport 53 --dport 53 -j ACCEPT
sudo iptables -I INPUT -p udp --sport 53 --dport 53 -j ACCEPT


qualcuno mi puō aiutare ? grazie

Dane
09-03-2014, 20:47
sudo iptables -I INPUT -p udp --sport 53 -j ACCEPT
accetta in input le "connessioni" udp che hanno come porta sorgente la porta 53. In pratica nessuna
sudo iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
accetta tutte le "connessioni" in uscita verso la 53 (qualsiasi richiesta dns che fai)
sudo iptables -I OUTPUT -p udp --sport 53 -j ACCEPT
accetta qualsiasi "connessione" in uscita dalla 53 (praticamente le risposte da un tuo server dns)
sudo iptables -I INPUT -p udp --dport 53 -j ACCEPT
accetta qualsiasi "connessione" in entrata verso la porta 53 (utile se hai un server dns esposto)

nslookup www.mondoxbox.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Se lo provi con un server dns esterno (non localhost) le regole sopra hanno molto pių senso.


sudo iptables -I OUTPUT -p udp --sport 53 --dport 53 -j ACCEPT
sudo iptables -I INPUT -p udp --sport 53 --dport 53 -j ACCEPT

se "interpreti" sport e dport come selettori allora vedrai che queste due regole processano le "connessioni" che hanno sia la porta sorgente che destinazione la 53. Cosa che non succede praticamente mai.
Le query dns hanno come porta sorgente una qualsiasi, mentre la destinazione č la 53.

In pratica non dovresti considerare sport.


Usa iptables -Lnv per vedere i contatori ;-)

toni00t
10-03-2014, 08:40
ciao , grazie della risposta : non sono riuscito a mettere in pratica quanto hai scritto cosė ho passato la notte nel web :D
http://blog.jgriffiths.org/?p=132

ho trovato la soluzione : in uscita dport 53 e in e input sport 1024-65535,funziona:)

Dane
10-03-2014, 09:32
scusami ho sbagliato: non dovresti considerare sport in output e dport in input, per uscire con query dns.

Cosė dovrebbe andare (il range 1024-65535 del link non conta un granchč):
sudo iptables -I OUTPUT -p udp --dport 53 -j ACCEPT
sudo iptables -I INPUT -p udp --sport 53 -j ACCEPT

gurutech
10-03-2014, 17:29
ciao , grazie della risposta : non sono riuscito a mettere in pratica quanto hai scritto cosė ho passato la notte nel web :D
http://blog.jgriffiths.org/?p=132

ho trovato la soluzione : in uscita dport 53 e in e input sport 1024-65535,funziona:)

funziona, ma č equivalente a non specificare nessuna sport. I client si assegnano dinamicamente una porta che va in quel range :)

EDIT: aggiungo: se stai cercando di studiare un firewall monodirezionale (tutto quello che č in lan va fuori e non viceversa se la connessione non inizia da dentro), puoi provare a dare una occhiata al modulo state. č una delle cose pių potenti di iptables, a parer mio

iptables -A FORWARD --state NEW,RELATED,ESTABLISHED -p tcp --dport 80 --src mia.rete.ind.ip/subnet -j ACCEPT
iptables -A FORWARD --state RELATED,ESTABLISHED -p tcp --sport 80 --dst mia.rete.ind.ip/subnet -j ACCEPT