Che cos'è l'inoltro IP del kernel?


70

Ho visto su molti blog, usando questo comando per abilitare l'inoltro IP mentre uso molti strumenti di sicurezza / sniffing di rete su Linux

echo 1 > /proc/sys/net/ipv4/ip_forward

Qualcuno può spiegarmi in termini laici, che cosa essenzialmente fa questo comando? Trasforma il tuo sistema in router?


1
file python per abilitare e disabilitare il portforwarding gist.github.com/addminuse/7747903cd420b15f17e0

Risposte:


77

"IP forwarding" è sinonimo di "routing". Si chiama "forwarding IP del kernel" perché è una caratteristica del kernel Linux.

Un router ha più interfacce di rete. Se il traffico arriva su un'interfaccia che corrisponde a una sottorete di un'altra interfaccia di rete, un router lo inoltra all'altra interfaccia di rete.

Quindi, supponiamo che tu abbia due NIC, una (NIC 1) si trova all'indirizzo 192.168.2.1/24 e l'altra (NIC 2) è 192.168.3.1/24. Se l'inoltro è abilitato e un pacchetto arriva su NIC 1 con un "indirizzo di destinazione" di 192.168.3.8, il router rinvia quel pacchetto fuori da NIC 2.

È comune che i router che funzionano come gateway verso Internet abbiano una route predefinita in base alla quale qualsiasi traffico che non corrisponde a nessuna NIC passerà attraverso la NIC della route predefinita. Quindi nell'esempio sopra, se si dispone di una connessione Internet su NIC 2, si imposta NIC 2 come percorso predefinito e quindi tutto il traffico proveniente da NIC 1 che non è destinato a qualcosa su 192.168.2.0/24 andrà tramite NIC 2. Speriamo che ci siano altri router oltre NIC 2 che possano instradarlo ulteriormente (nel caso di Internet, l'hop successivo sarebbe il router del tuo ISP, e quindi i loro router upstream dei provider, ecc.)

L'abilitazione ip_forwarddice al tuo sistema Linux di farlo. Per essere significativo, sono necessarie due interfacce di rete (2 o più schede NIC cablate, schede o chipset WiFi, collegamenti PPP su un modem 56k o seriale, ecc.).

Quando si esegue il routing, la sicurezza è importante ed è qui che iptablesviene coinvolto il filtro pacchetti di Linux . Quindi avrai bisogno di una iptablesconfigurazione coerente con le tue esigenze.

Si noti che abilitare l'inoltro con iptablesdisabilitato e / o senza tenere conto del firewall e della sicurezza potrebbe lasciarti aperto alle vulnerabilità se una delle NIC si trova di fronte a Internet o a una sottorete su cui non hai il controllo.


2
Bene, ti consigliamo di fare NAT se NIC 2 è un IP privato. Linux può fare anche NAT ed iptablesè il modo di configurarlo.
LawrenceC,

È necessario un NAT per i dati che vanno dalla NIC 2 alla NIC 1?
GutenYe,

2
In genere NAT funzionerà dalla LAN alla WAN, quindi se NIC 2 ha un IP privato e NIC 1 ha un pubblico 1, è necessario NAT; in particolare, l'interfaccia con accesso a Internet (NIC 1 al precedente) ha bisogno di una MASQUERADEregola iptables's POSTROUTINGsu una catena di farlo. Vedi revsys.com/writings/quicktips/nat.html e i.stack.imgur.com/rzz83.png .
LawrenceC,

In parole semplici, sarà giusto dire che abilitare l'inoltro IP significa consentire alla macchina di passare un pacchetto da una sua scheda di rete a un'altra della sua scheda di rete? Inoltre, sarebbe vero se dico che abilitare l'inoltro IP non è realmente richiesto su una macchina con un singolo IP / NIC?
Sree,

1
@ultrasawblade Nel caso di IP forwarding abilitato e con connessione Internet su NIC 2 e anche come route predefinita, se riceve un pacchetto destinato a 192.168.2.2 da NIC 1, cosa farà il router?
Bobo,

3

Se abilitato, "IP forwarding" consente a una macchina Linux di ricevere pacchetti in entrata e inoltrarli. Una macchina Linux che agisce come un normale host non dovrebbe avere l'IP forwarding abilitato, in quanto genera e riceve traffico IP solo per i propri scopi (ovvero, gli scopi del suo utente).

Tuttavia, ci sono casi in cui l'inoltro IP è utile: 1. Vogliamo che la nostra macchina funga da router, ricevendo pacchetti da altri host e instradandoli verso la loro destinazione. 2. Siamo dei cattivi e vogliamo impersonare un'altra macchina in un cosiddetto " attacco nel mezzo ". In questo caso, vogliamo intercettare e vedere tutto il traffico diretto alla vittima, ma vogliamo anche inoltrare questo traffico a lei, in modo che non "percepisca" la nostra presenza.

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.