Qual è la differenza tra le catene OUTPUT e FORWARD in iptables?


22

CentOS 6.0

Sto studiando iptables e mi sto confondendo sulla differenza tra le catene FORWARD e OUTPUT. Nella mia documentazione di formazione, si afferma:

Se stai aggiungendo a (-A) o eliminando da (-D) una catena, ti consigliamo di applicarlo ai dati di rete che viaggiano in una delle tre direzioni:

  • INPUT - Tutti i pacchetti in entrata vengono verificati rispetto alle regole di questa catena.
  • OUTPUT - Tutti i pacchetti in uscita vengono verificati rispetto alle regole di questa catena.
  • AVANTI - Tutti i pacchetti inviati a un altro computer vengono verificati rispetto alle regole di questa catena.

Questo mi confonde perché, nella mia mente, i pacchetti in partenza per un host DOVREBBERO essere in uscita. Quindi ci sono scenari in cui un pacchetto andrebbe su un altro computer ma NON sarà "in uscita"? In che modo iptables distinguerebbe tra i due?

Risposte:


26

OUTPUT è per i pacchetti emessi dall'host. La loro destinazione è di solito un altro host, ma può essere lo stesso host tramite l'interfaccia di loopback, quindi non tutti i pacchetti che passano attraverso OUTPUT sono in effetti in uscita.

FORWARD è per i pacchetti che non sono né emessi dall'host né diretti all'host. Sono i pacchetti che l'host sta semplicemente instradando.

Quando inizi a scavare nella manipolazione dei pacchetti e nel NAT, la storia completa è piuttosto complessa .


Interessante ... quindi ai fini della mia comprensione, è corretto affermare che OUTPUT è per i pacchetti che "originano" dal sistema ... e FORWARD è per i pacchetti che non provengono dal sistema o sono destinati a e invece sta "attraversando" il sistema?
Mike B,

1
Non del tutto, i pacchetti che vengono "inoltrati" vengono anche "emessi" dall'interfaccia di rete. Proprio come i pacchetti vengono "immessi" prima di essere "inoltrati". Il pacchetto entra, destinato a un sistema esterno, il pacchetto entra nella catena "forward" , iptables decide il suo OK per l'inoltro, il pacchetto entra in "catena di output", i controlli iptables, vede il suo "ok" per l'output, il pacchetto lascia .. semplice!
Grizly,

2
@Grizly No, dalla memoria (ammetto di non aver testato in modo specifico quando scrivo questa risposta) e secondo il diagramma a cui mi collego, un pacchetto attraversa sempre esattamente una delle tre filtercatene ( INPUTo OUTPUTo FORWARD). (Supponendo che un'altra catena non la lasci cadere prima.) Le catene manglee natsono diverse, forse stavi pensando alla manglecatena?
Gilles 'SO- smetti di essere malvagio' il

0

Per la mia comprensione:

INPUT: dst IP si trova sull'host, anche se ha più porte con più sottoreti

OUTPUT: src IP proviene dall'host, da entrambe le porte

AVANTI: né dst IP sull'host né src IP dall'host

inserisci qui la descrizione dell'immagine

Ad esempio, al router A

INPUT è:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

L'USCITA è:

192.168.10.199 -> xxxx

192.168.2.1 -> xxxx

AVANTI è:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

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.