ICMP-Umleitung: So testen Sie sie mit icmpush

ICMP-Umleitung: So testen Sie sie mit icmpush

Ich möchte sehen, wie sich die Routing-Tabelle auf einem Linux-System ändert, wenn ein ICMP-Redirect empfangen wird. Dafür verwende ich

icmpush -v red -sp current-gateway -gw new-gateway -dest google.com -c host -prot tcp my-eth1-ip-address

(was Erfolg zurückgibt), aber das Ergebnis von

route -n 

bleibt gleich. Natürlich habe ich die Ausgabe von

cat /proc/sys/net/ipv4/conf/eth1/accept_redirects

das ist 1. Dies ist eine Ubuntu 12-Maschine mit der letzten stabilen Kernelversion, keine Firewall installiert.

Also die Frage: Was könnte schieflaufen?

Antwort1

EntsprechendDokumentation/Netzwerk/ip-sysctl.txt, standardmäßig werden Weiterleitungen nur für die Gateways akzeptiert, die bereits in der Routing-Tabelle aufgeführt sind.

secure_redirects - Boolescher Wert
    Akzeptieren Sie ICMP-Umleitungsnachrichten nur für Gateways,
    in der Liste der Standard-Gateways aufgeführt.
    secure_redirects für die Schnittstelle wird aktiviert, wenn mindestens einer der
    conf/{all,interface}/secure_redirects ist auf TRUE gesetzt,
    Andernfalls wird es deaktiviert
    Standardmäßig TRUE

Antwort2

Eine Annahme: Der Aufruf von icmpushverwendet nicht die externe Schnittstelle eth1, sondern die des lokalen Hosts lo, sodass der Kernel nicht erkennt, dass es sich um eine korrekte Umleitung vom Gateway handelt. Außerdem wurden diese Routen in sehr alten Versionen des Linux-Kernels nicht in der Antwort von angezeigt route -n. Wie ich bereits bemerkt habe, könnte die Antwort von route -nCdie richtige Möglichkeit sein, auch die temporäre Umleitungsroute einzuschließen.

@grawity, zum Thema Akzeptieren von Weiterleitungen, die als Antwort auf ein anderes Paket gesendet wurden: hast du das irgendwo gelesen? Das würde mich nämlich wirklich interessieren.

verwandte Informationen