Was ist Kernel-IP-Weiterleitung?

70

Ich habe in vielen Blogs gesehen, wie ich diesen Befehl verwende, um die IP-Weiterleitung zu aktivieren, während ich viele Netzwerksicherheits- / Sniffing-Tools unter Linux verwende

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

Kann mir jemand in Laienbegriffen erklären, was genau dieser Befehl bewirkt? Verwandelt es Ihr System in einen Router?

Madhur Ahuja
quelle
1
Python-Datei zum Aktivieren und Deaktivieren der Portweiterleitung gist.github.com/addminuse/7747903cd420b15f17e0

Antworten:

77

"IP-Weiterleitung" ist ein Synonym für "Routing". Es wird "Kernel-IP-Weiterleitung" genannt, da es eine Funktion des Linux-Kernels ist.

Ein Router verfügt über mehrere Netzwerkschnittstellen. Wenn Datenverkehr auf einer Schnittstelle eingeht, die mit einem Subnetz einer anderen Netzwerkschnittstelle übereinstimmt, leitet ein Router diesen Datenverkehr an die andere Netzwerkschnittstelle weiter.

Angenommen, Sie haben zwei NICs, eine (NIC 1) befindet sich an der Adresse 192.168.2.1/24 und die andere (NIC 2) ist 192.168.3.1/24. Wenn die Weiterleitung aktiviert ist und auf NIC 1 ein Paket mit einer "Zieladresse" von 192.168.3.8 eingeht, sendet der Router das Paket erneut von NIC 2.

Es ist üblich, dass Router, die als Gateways zum Internet fungieren, eine Standardroute haben, wobei jeder Verkehr, der nicht mit einer Netzwerkkarte übereinstimmt, die Netzwerkkarte der Standardroute durchläuft. Wenn Sie im obigen Beispiel eine Internetverbindung auf NIC 2 haben, würden Sie NIC 2 als Ihre Standardroute festlegen und dann wird jeglicher Datenverkehr von NIC 1, der nicht für 192.168.2.0/24 bestimmt ist, gelöscht über NIC 2. Hoffentlich gibt es andere Router nach NIC 2, die diese weiterleiten können (im Falle des Internets wäre der nächste Hop der Router Ihres ISP und dann der Upstream-Router des Providers usw.).

Das Aktivieren ip_forwardweist Ihr Linux-System an, dies zu tun. Damit dies sinnvoll ist, benötigen Sie zwei Netzwerkschnittstellen (mindestens zwei verkabelte NIC-Karten, WLAN-Karten oder Chipsätze, PPP-Verbindungen über ein 56k-Modem oder eine serielle Schnittstelle usw.).

Beim Routing ist die Sicherheit wichtig, und hier wird der Paketfilter von Linux eingesetzt iptables. Sie benötigen also eine iptablesKonfiguration, die Ihren Anforderungen entspricht.

Beachten Sie, dass das Aktivieren der Weiterleitung mit iptablesdeaktivierter Funktion und / oder ohne Berücksichtigung von Firewall und Sicherheit zu Sicherheitslücken führen kann, wenn eine der Netzwerkkarten mit dem Internet oder einem Subnetz verbunden ist, über das Sie keine Kontrolle haben.

LawrenceC
quelle
2
Richtig, Sie möchten NAT ausführen, wenn NIC 2 eine private IP-Adresse ist. Linux kann auch NAT und iptablesist der Weg, es einzurichten.
LawrenceC
Benötigt es ein NAT für Daten, die von NIC 2 auf NIC 1 übertragen werden?
GutenYe
2
Normalerweise funktioniert NAT vom LAN zum WAN. Wenn also NIC 2 eine private IP und NIC 1 eine öffentliche 1 hat, benötigen Sie NAT. Insbesondere muss der Internet verbundenen Schnittstelle (NIC 1 pro oben) , um eine MASQUERADERegel in iptables‚s POSTROUTINGan einer Kette , das zu tun. Siehe revsys.com/writings/quicktips/nat.html und i.stack.imgur.com/rzz83.png .
LawrenceC
Wird es in einfachen Worten richtig sein, wenn ich sage, dass das Aktivieren der IP-Weiterleitung das Weiterleiten eines Pakets von einer Netzwerkkarte zu einer anderen Netzwerkkarte durch den Computer bedeutet? Wäre es auch wahr, wenn ich sagen würde, dass das Aktivieren der IP-Weiterleitung auf einem Computer mit einer einzelnen IP / NIC nicht wirklich erforderlich ist?
Sree
1
@ultrasawblade Wenn die IP-Weiterleitung aktiviert ist und eine Internetverbindung auf NIC 2 sowie als Standardroute besteht, was unternimmt der Router, wenn er ein für 192.168.2.2 bestimmtes Paket von NIC 1 empfängt?
Bobo
3

Wenn "IP-Weiterleitung" aktiviert ist, kann ein Linux-Computer eingehende Pakete empfangen und weiterleiten. Auf einem Linux-Computer, der als gewöhnlicher Host fungiert, muss die IP-Weiterleitung nicht aktiviert sein, da er IP-Verkehr nur für seine eigenen Zwecke (dh für die Zwecke seines Benutzers) generiert und empfängt.

Es gibt jedoch Fälle, in denen die IP-Weiterleitung nützlich ist: 1. Wir möchten, dass unser Computer als Router fungiert, der Pakete von anderen Hosts empfängt und sie an ihr Ziel weiterleitet. 2. Wir sind Bösewichte und wollen uns bei einem sogenannten " Man-in-the-Middle-Angriff " als eine andere Maschine ausgeben . In diesem Fall möchten wir den gesamten Verkehr abfangen und sehen, der an das Opfer gerichtet ist, aber wir möchten diesen Verkehr auch an sie weiterleiten, damit sie unsere Anwesenheit nicht "spürt".

Andrea Araldo
quelle