Ich bin in einem Skript auf diese beiden Zeilen gestoßen:
echo "1" > /proc/sys/net/ipv4/ip_forward/
echo "0" > /proc/sys/net/ipv4/conf/eth0/send_redirects
Die erste Zeile aktiviert die IP-Weiterleitung, wodurch sich mein Computer wie ein Router verhält.
Ich würde allerdings gerne genau verstehen, was die zweite Zeile macht. Sie schaltet send_redirects
die Schnittstelle aus eth0
, aber was bedeutet das? Was steht send_redirect
in diesem Zusammenhang?
Antwort1
„ip_forward“ dient zur Aktivierung der Paketweiterleitung für IPv4.
„Weiterleitungen senden“ ist nur aktiviert, wenn der Knoten als Router fungiert. Das heißt, ein Host sollte keine ICMP-Weiterleitungsnachricht senden. Sie wird von Routern verwendet, um den Host über einen besseren Routing-Pfad zu informieren, der für ein bestimmtes Ziel verfügbar ist. Anschließend aktualisiert der Host den Routen-Cache-Eintrag und leitet die nachfolgenden Pakete direkt über den optimalen Pfad/die optimale Route weiter, die per ICMP-Weiterleitungsnachricht vorgeschlagen wurde.
Dieser Mechanismus zur Aktualisierung von Routing-Informationen ist jedoch riskant und gibt der Sicherheitscommunity Anlass zur Sorge, da ICMP-Weiterleitungen durch Schadsoftware/Angreifer manipuliert/gefälscht werden können, um die Umleitung auf den gewünschten Pfad zu erreichen.
Weitere Einzelheiten und Klauseln wie „Eine Umleitungsnachricht SOLLTE stillschweigend verworfen werden, wenn sich die darin angegebene neue Gateway-Adresse nicht im selben verbundenen (Sub-)Netz befindet, über das die Umleitung kam, oder wenn die Quelle der Umleitung nicht das aktuelle First-Hop-Gateway für das angegebene Ziel ist“ finden Sie in RFC 1122 (Abschnitt 3.3.1 und Anhang A).
Antwort2
Umleitungen finden statt, wenn Sie mehrere Router im selben LAN haben. Nehmen wir beispielsweise an, wir haben ein Netzwerk mit einem Host und zwei Routern. Der Host könnte ein Paket an Router A senden und Router A könnte dieses Paket dann über dasselbe LAN an Router B senden müssen, weil seine Routing-Tabelle dies vorsieht. Router A kann dann eine Umleitungsnachricht an den Host senden, um ihn darüber zu informieren, dass es effizienter wäre, wenn er das Paket für dieses bestimmte Ziel direkt an Router B senden würde.
Wenn Sie send_redirect
Ihren Router ausschalten, werden keine solchen Umleitungsnachrichten gesendet.