[HowTo] traceroute in Firewall erlauben

  • Hat man die Firewall nach den Anleitungen im Forum oder im Wiki konfiguriert ist es nicht möglich mit traceroute den Server zu erreichen. Das liegt daran, dass die Packte, die traceroute schickt verworfen werden.
    traceroute verwendet UDP auf Port 33434 und zählt diesen pro Hop eins höher. Da man nicht wissen kann, wie viele Hops zwischen dem Rechner, auf dem traceroute gestartet wird, und dem Server liegen, muss man einen Portbereich konfigurieren, auf dem traceroute-Anfragen beantwortet werden.
    traceroute erwartet eine ICMP Port Unreachable Antwort vom Server. Die Firewall sendet diese Nachricht, wenn man die Aktion REJECT wählt.


    Man muss also keine einzigen Port zum Server öffnen um traceroute zu nutzen. Die Konfiguration der Firewall kann also so aussehen:


    [Blocked Image: http://dl.dropbox.com/u/940863/Screenshots/0f.png]


    In diesem Fall wird der Portbereich von 33434 bis 33600 (maximal also 165 Hops) so konfiguriert, dass die Firewall die Pakete, die per UDP ankommen, nicht wegschmeißt (DROP), sondern die Meldung "Port Unreachable" zurück schickt.


    Die gleiche Regel kann natürlich auch für IPv6 und tracerouet6 erstellt werden.


    ACHTUNG: In diesem Portbereich kann kein UDP Dienst auf dem Server betrieben werden, da die ankommenden Pakete von der Firewall nicht zum Server durchgelassen werden.

  • Das habe nicht gewusst danke für den Tipp.
    Das HowTo ist sehr gut erklärt.


    Ich habe zum Thema mal etwas gelesen und noch folgendes herausgefunden:


    ICMP Traceroute durchführen (nur root)

    Code
    1. traceroute -I 1.2.3.4


    TCP Traceroute über Port 80 (nur root)

    Code
    1. traceroute -T -p 80 1.2.3.4


    UDP Traceroute über Port 53 (jeder User)

    Code
    1. [traceroute -U 1.2.3.4


    Quelle: Linux Netzwerk Analyse mit traceroute – Wiki Thomas-Krenn.AG