Ergebnis 1 bis 6 von 6

Thema: Iptables Problem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Iptables Problem

    Ja, wie der Titel sagt habe ich ein Problem mit Iptables.
    Es geht um einen Grenzrechner mit Squid + SquidGuard sowie Iptables - handelt sich um ein simples Firewall Projekt.
    Squid und SquidGuard funktionieren top, nur sobald ich das Iptables Script starte, kriege ich nur noch ein "Netzwerk-Zeitüberschreitung" von Firefox (auf dem Rechner, der durch den Grenzrechner "geschützt" werden soll).
    Hat vielleicht jemand eine Lösung für das Problem?


    Hier mal das Script:

  2. #2
    Okay, vielleicht bin ich schwer von Begriff, aber hilf mir bitte mal auf die Sprünge:
    • Was zum Henker ist ein Grenzrechner? Meinst du damit das, was viele Menschen als "Router" bezeichnen?
    • Ist deine Netzwerkstruktur die folgende:
      Code:
      +-----------------+                                  +------------------+
      | 192.168.42.0/24 |---- eth1 "Grenzrechner" eth0 ----| 192.168.178.0/24 |------ Router ------ Internet
      +-----------------+                                  +------------------+


    Generell kann ich spontan keinen Fehler finden, du könntest mal ein wenig mit dem LOG Target rumspielen, um zu gucken, bei welcher Regel die Pakete hängen bleiben (oder natürlich wireshark/tcpdump anschmeißen). Die Manpage von iptables rät übrigens von der Verwendung von -j MASQUERADE ab, wenn es sich vermeiden lässt (also, wenn man statische IPs hat - was du hast).

  3. #3
    Zitat Zitat von dead_orc Beitrag anzeigen
    Okay, vielleicht bin ich schwer von Begriff
    Nein, hast in beiden Fällen recht, mein Fehler.

    Zitat Zitat
    Generell kann ich spontan keinen Fehler finden, du könntest mal ein wenig mit dem LOG Target rumspielen, um zu gucken, bei welcher Regel die Pakete hängen bleiben
    Muss ich mir mal angucken, oder hast du vllt. so direkt nen Bsp. wie man das auf Iptables anwendet?

    Zitat Zitat
    oder natürlich wireshark/tcpdump
    Hab mal eben Wireshark angeschmissen und www.videolan.org angefragt, eine Antwort kommt sogar zurück, 88.191.250.2, allerdings sagt Firefox trotzdem Netzwerk-Zeitüberschreitung.

    Zitat Zitat
    Die Manpage von iptables rät übrigens von der Verwendung von -j MASQUERADE ab, wenn es sich vermeiden lässt (also, wenn man statische IPs hat - was du hast).
    Vorgabe, daher ist das in diesem Fall zu vernachlässigen.

  4. #4
    Zitat Zitat von Bible Black Beitrag anzeigen
    Muss ich mir mal angucken, oder hast du vllt. so direkt nen Bsp. wie man das auf Iptables anwendet?
    Naja, du könntest z.B. vor # Protokollports öffnen # ne Zeile iptables -A Own -j LOG einfügen. Dann bekommst du für jedes Paket, dass es an den vorigen Regeln vorbei geschafft hat, eine (lange) Zeile im Kernel Log. Wenn da das Paket dabei ist, das dir fehlt, ist der Fehler in den Regeln weiter unten...


    Zitat Zitat
    Hab mal eben Wireshark angeschmissen und www.videolan.org angefragt, eine Antwort kommt sogar zurück, 88.191.250.2, allerdings sagt Firefox trotzdem Netzwerk-Zeitüberschreitung.
    Wo hast du Wireshark angeschmissen, auf dem Router oder auf dem Rechner dahinter, der die Zeitüberschreitung bekommt? Wenn ersteres, sollte das Paket zwei mal auftauchen: Einmal als Eingang auf eth0 und einmal als Ausgang auf eth1. Wenn du es auf dem Client mit Zeitüberschreitung laufen hattest und er trotzdem ne Zeitüberschreitung hatte, ist irgendwas sehr strangely broken. o_O

  5. #5
    Zitat Zitat von dead_orc Beitrag anzeigen
    Wo hast du Wireshark angeschmissen, auf dem Router oder auf dem Rechner dahinter, der die Zeitüberschreitung bekommt?
    Auf dem Router. ;)

    Naja, nach dem ich mir noch mal man iptables angeguckt habe, hät' ich mir am liebsten selbst in Gesicht geschlagen.

    Code:
    iptables -F -t nat
    iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
    Hätte eigentlich
    Code:
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    lauten müssen. :\ Jetzt läuft das Script auch brav zusammen mit Squid als Transp. Proxy und SquidGuard als Web-Filter. Jetzt müsste ich nur mal paar drops machen...

  6. #6
    Zitat Zitat von Bible Black Beitrag anzeigen
    Auf dem Router.

    Naja, nach dem ich mir noch mal man iptables angeguckt habe, hät' ich mir am liebsten selbst in Gesicht geschlagen.

    Code:
    iptables -F -t nat
    iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
    Hätte eigentlich
    Code:
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    lauten müssen. Jetzt läuft das Script auch brav zusammen mit Squid als Transp. Proxy und SquidGuard als Web-Filter. Jetzt müsste ich nur mal paar drops machen...
    Okaaaay... Ich wusste, dass ich das -t nat immer direkt hinter iptables schreibe, ich wusste aber nicht, dass es Pflicht ist. Auch wenns Sinn macht, da iptables die Commandline IIRC sequenziell abarbeitet.

    Anyway, was ich noch zu DROPs sagen wollte: Denk drüber nach, ob du DROP oder REJECT benutzen willst. REJECT ist in vielen Fällen praktischer, da es eine (sinnvolle?) Fehlermeldung zurück liefert und man nicht auf ein Timeout warten muss. DROPs sorgen mit Pech einfach nur dazu, dass die Software es weiter versucht, während ein "Port unreachable" die Software (welche auch immer) eher dazu bringen sollte, aufzugeben.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •