Verständnisfrage zu traceroute und ipfw

echt0711

echt0711

Aktives Mitglied
Thread Starter
Dabei seit
11.10.2003
Beiträge
862
Reaktionspunkte
13
Hallo Macuser,

ich habe einen Macmini Server im Netz stehen und die Firewall dort eingeschaltet. Nun will ich eine traceroute zum Server abfahren lassen und stelle fest, dass die Firewall die traceroute blockt:

Code:
Jun 20 17:16:10 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33483 in via en0
Jun 20 17:16:15 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33484 in via en0
Jun 20 17:16:20 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33485 in via en0
Jun 20 17:16:25 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33486 in via en0
Jun 20 17:16:30 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33487 in via en0
Jun 20 17:16:35 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33488 in via en0
Jun 20 17:16:40 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33489 in via en0
Jun 20 17:16:45 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33490 in via en0
Jun 20 17:16:50 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33491 in via en0
Jun 20 17:16:55 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33492 in via en0
Jun 20 17:17:00 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33493 in via en0
Jun 20 17:17:05 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33494 in via en0
Jun 20 17:17:10 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33495 in via en0
Jun 20 17:17:15 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33496 in via en0
Jun 20 17:17:20 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33497 in via en0
Jun 20 17:17:25 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33498 in via en0
Jun 20 17:17:30 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33499 in via en0
Jun 20 17:17:35 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33500 in via en0
Jun 20 17:17:40 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33501 in via en0
Jun 20 17:17:45 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33502 in via en0
Jun 20 17:17:50 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33503 in via en0
Jun 20 17:17:55 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33504 in via en0
Jun 20 17:18:00 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33505 in via en0
Jun 20 17:18:05 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33506 in via en0
Jun 20 17:18:15 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33508 in via en0
Jun 20 17:18:20 <meinserver> ipfw[4226]:  65534 Deny UDP <client-ip>:47540 <server-ip>:33509 in via en0

Das Ganze geht ewig so weiter - die Ports am Serverende zählen einfach immer einen hoch und die traceroute meldet Sternchen * * * :)

Meine Frage ist: was passiert da? Ich dachte bislang, dass ich nur das IGMP freischalten muss und die Firewall dann pings und traceroutes automatisch durchlässt. Kann mir jemand hier Klarheit verschaffen? Das liebste wäre mir, wenn ich die Firewall relativ restriktiv fahren kann, aber eine traceroute trotzdem möglich wird (der Server läuft noch nicht immer stabil und ich möchte die Option haben, den Fehler in der route zu finden falls er mal ausfällt).

Grüße!
 
Zuletzt bearbeitet:
Anstatt IGMP meinst Du sicherlich ICMP!
Ist im Übrigen weniger eine Unix- als vielmehr eine Netzwerkfrage.
 
Ich war nicht sicher, ob die Frage ins Serverforum gehört. Ich habs hier gepostet, weil ich die ipfw noch aus der Linuxwelt kenne. An das Netzwerkforum hatte ich nicht gedacht - sorry. Zu meiner Frage hast Du auch keine Idee?
 
Den Wikipediaeintrag kannte ich schon (ja, ich hab ihn gelesen, bevor ich hier gepostet habe ;) ) – aber trotzdem wird's mir jetzt etwas klarer: ich kann also umschalten, ob ich traceroute UDP basiert oder ICMP basiert laufen lasse? Oder ist das fest in meinem Client (Snow Leo) eingestellt? Auf der man page finde ich zumindest keine entsprechende Option.

Edit: habs gefunden... "Windows-Traceroute sendet standardmäßig ICMP-Pakete, Unix-Traceroute arbeitet mit UDP-Paketen. Mit TCP-Paketen arbeiten nur spezielle Programme z. B. Tcptraceroute oder LFT (Layer Four Traceroute)."

Okay. Also brauch ich für mein Szenario eine andere Möglichkeit. Hat jemand eine Lösung parat, kann ich z.B. tcptraceroute einfach so verwenden oder muss ich das erstmal bei mir eincompilieren?
 
man traceroute -> /UDP ->

Code:
     -e      Firewall evasion mode.  Use fixed destination ports for UDP and
             TCP probes.  The destination port does NOT increment with each
             packet sent.


     -I      Use ICMP ECHO instead of UDP datagrams.  (A synonym for "-P
             icmp").


     -P proto
             Send packets of specified IP protocol. The currently supported
             protocols are: UDP , TCP , GRE and ICMP Other protocols may also
             be specified (either by name or by number), though traceroute
             does not implement any special knowledge of their packet formats.
             This option is useful for determining which router along a path
             may be blocking packets based on IP protocol number. But see BUGS
             below.


     -p port
             Protocol specific. For UDP and TCP, sets the base port number
             used in probes (default is 33434).  traceroute hopes that nothing
             is listening on UDP ports base to base+nhops-1 at the destination
             host (so an ICMP PORT_UNREACHABLE message will be returned to
             terminate the route tracing).  If something is listening on a
             port in the default range, this option can be used to pick an
             unused port range.

;-)

Edit: -I?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: echt0711
Okay - hatte die Manpage nicht komplett runtergescrollt und die Option nicht gesehen, weil Sie ganz oben nicht mit aufgeführt wird.

Vielen herzlichen Dank für diese einfache Lösung für meine ziemlich doofe Frage, wie ich gerade merke. Ein paar Stunden Schlaf vor lauter Serveradministration hätten wohl mal gut getan. ;-)

Wieder was dazu gelernt. Danke euch!

Code:
traceroute -I -e <meinserver>

hat funktioniert und wahrscheinlich könnte man bei Verwendung der "-I" Option sogar den "fixed Port", also die "-e" Option weglassen.
 
Zuletzt bearbeitet:
Zurück
Oben Unten