iptables e RETURN target


16

Non capisco cosa fa l' RETURNobiettivo in un comando iptables.

Il dubbio viene da questa guida dove dice:

Una catena è un insieme di regole contro cui un pacchetto viene verificato in sequenza. Quando il pacchetto corrisponde a una delle regole, esegue l'azione associata e non viene confrontato con le restanti regole nella catena.

Quindi se un pacchetto corrisponde a una regola e smette di controllare altre regole, perché ho bisogno di una RETURN?

Ad esempio l'ho trovato su Internet:

iptables -A PREROUTING -t mangle -i wlan0 -s 192.168.1.10 -j MARK --set-mark 30;
iptables -A PREROUTING -t mangle -i wlan0 -s 192.168.1.10 -j RETURN;

Perché ho bisogno RETURN? Se un pacchetto corrisponde alla prima regola, interrompe automaticamente l'esecuzione di altre regole.

Risposte:


33

Passano i pacchetti attraverso una catena fino a colpire ACCEPT, DROP, REJECT, o RETURN. Non si fermano su una partita a meno che quella partita non contenga un'azione conclusiva. Nel tuo esempio, un pacchetto corrispondente alla prima regola verrà contrassegnato, ma verrà quindi esaminato (ed eventualmente elaborato) dalla seconda regola.

A puro titolo di riferimento, ecco le sezioni pertinenti della pagina man :

Una regola firewall specifica i criteri per un pacchetto e una destinazione. Se il pacchetto non corrisponde, la regola successiva nella catena è l'esame; se corrisponde, la regola successiva viene specificata dal valore della destinazione, che può essere il nome di una catena definita dall'utente o uno dei valori speciali ACCEPT, DROP[, REJECT] QUEUEo RETURN.

  • ACCEPT significa far passare il pacchetto.
  • DROP significa far cadere il pacchetto sul pavimento, cioè scartarlo e non inviare alcuna risposta
  • [ REJECTviene utilizzato per inviare un pacchetto di errori in risposta al pacchetto abbinato: altrimenti è equivalente a DROPquindi è un TARGET di terminazione, che termina il traversal.]
  • QUEUE significa passare il pacchetto nello spazio utente.
  • RETURNsignifica smettere di attraversare questa catena e riprendere alla regola successiva nella catena precedente (chiamata). Se viene raggiunta la fine di una catena incorporata o viene soddisfatta una regola in una catena incorporata con target RETURN, il target specificato dalla policy chain determina il destino del pacchetto.

In risposta alla tua specifica preoccupazione, direi che la tua guida è fuorviante. A meno che "azione associata" non sia una delle cinque azioni terminali, i pacchetti continueranno a fluire attraverso la catena fino a raggiungere un implicito RETURNalla fine.


Voterei questa risposta più di una volta se potessi.
JakeRobb,

Vale la pena notare che l'azione predefinita per le catene definite dall'utente è RETURN.
rigido

@stark non è quello che dice l'ultima frase?
roaima,

1
Ah, ora capisco meglio DROP. Questo spiega perché non ho spazio per le gambe anche sotto questa scrivania.
Jonathan Neufeld,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.