GNU/Linux >> Linux Esercitazione >  >> Linux

Iptables:-p udp --state ESTABLISHED

Soluzione 1:

Quindi, iptables fondamentalmente ricorda il numero di porta utilizzato per il pacchetto in uscita (cos'altro potrebbe ricordare per un pacchetto UDP?),

Sono abbastanza sicuro che per UDP le porte e gli indirizzi di origine e destinazione siano memorizzati.

Se vuoi ispezionare le tabelle di stato, installa conntrack e/o netstat-nat.

(Cosa accadrebbe se provassi accidentalmente ad avviare un servizio su quella porta entro il periodo di tempo - il tentativo verrebbe negato/bloccato?)

Dal momento che stai usando OUTPUT e INPUT stai parlando di servizi locali. La porta è già utilizzata Non credo che il tuo sistema ti consentirà di avviare un altro servizio poiché qualcosa è già in ascolto su quella porta. Immagino che potresti interrompere il primo servizio e avviarne un altro se lo desideri davvero, in tal caso la risposta probabilmente arriverà al tuo servizio. Ciò che il servizio fa con il pacchetto dipende dal contenuto del pacchetto e da quale servizio è.

Soluzione 2:

NB:questa risposta è stata modificata.

Nonostante quello che dicono le pagine man, ESTABLISHED sembra significare "stateful". Per UDP ciò significa semplicemente (come suggerisci) ricordare per un po' ogni pacchetto UDP in uscita (la tupla "src ip, src port dst ip, dst port") e riconoscerne le risposte.

FWIW, le mie normali regole per il traffico DNS sarebbero qualcosa del genere:

# permit any outbound DNS request (NB: TCP required too)
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53  -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65535 --dport 53  -j ACCEPT

# accept any packet that's a response to anything we sent
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

cioè controllare il traffico sul OUTPUT catena, e poi lascia che il iptables i moduli state gestiscono tutto il resto sul INPUT catena.

Vedi anche questa domanda correlata.


Linux
  1. Guida per aprire le porte in CentOS

  2. Guida per aprire le porte in CentOS

  3. Come aprire la porta HTTP ( 80 ) in Iptables su CentOS

  4. Come aprire la porta in Linux

  5. Perché NTP richiede l'accesso firewall bidirezionale alla porta UDP 123?

scp ssh:connessione all'host 10.0.0.109 porta 22:nessun percorso verso l'host ha perso la connessione

AWS VPC + IPtables + NAT:il port forwarding non funziona

Come configurare iptables in modo che una porta indesiderata non venga segnalata come filtrata

Consentire FTP con IPTables

Port forwarding su Linux senza iptables?

iptables elimina le risposte DNS negative