Firewall paranoid

  • Hallo,


    früher habe ich Input und Output auf verwerfen gestellt und
    Input war SSH frei (von bestimmter IP)
    Output war DNS,FTP,HTTP,HTTPS


    wegen früheren Fehler in der Firewall wurde sie geändert.
    Was muss ich jetzt einstellen? Verstehe das nicht u.a. mit STATE...


    Vielen Dank.

    Quote

    GREETZ;
    ___._.._.____._.._.____.____._.._._._.._._.____.___
    .|..|__|.|___.|\/|.|__|.|....|__|.|.|\.|.|.[__...|.
    .|..|..|.|___.|..|.|..|.|___.|..|.|.|.\|.|.___]..|.

  • Komme damit nicht zurecht.


    Kann mir einer mal helfen die neuen Regeln zu finden?


    Vielen Dank.

    Quote

    GREETZ;
    ___._.._.____._.._.____.____._.._._._.._._.____.___
    .|..|__|.|___.|\/|.|__|.|....|__|.|.|\.|.|.[__...|.
    .|..|..|.|___.|..|.|..|.|___.|..|.|.|.\|.|.___]..|.

  • Quote

    Wenn man nun also INPUT per Standard auf DROP stellt und anschließend eine Regel erstellt mit welcher der Zugriff per SSH auf Port 22 erlaubt (ACCEPT) ist damit man per Shell auf seinen Server kommt um diesen zu administrieren, würde es bereits daran scheitern einen "apt-get update" oder z.B. "yum update" Befehl abzusetzen. Da der INPUT generell verworfen wird, bis auf den freigeschalteten SSH Port 22, kann im Server zwar eine Anfrage nach aussen geschickt werden, z.B. durch die Namensauflösung des Paketmanagers, die Antwortpakete jedoch, kommen auf dem Rückweg nicht durch da man ja ausschließlich SSH aktiviert hat. Die eine Variante ist es, alle Ports entsprechend zu aktivieren.


    Wenn ich per SSH drin bin und ein "apt-get update" mache, muss eine Fehlermeldung kommen (falls OUTPUT DNS / HTTP / FTP nicht) freigegeben habe. LOGISCH!


    Angenommen ich mache diese Globale Regel mit ESTABLISHED und RELATED , Können dann alle Dienste nach aussen kommunizieren die während SSH aufgerfuen werden ???

    Quote

    GREETZ;
    ___._.._.____._.._.____.____._.._._._.._._.____.___
    .|..|__|.|___.|\/|.|__|.|....|__|.|.|\.|.|.[__...|.
    .|..|..|.|___.|..|.|..|.|___.|..|.|.|.\|.|.___]..|.

  • Es geht nicht darum, ob apt-get nach außen Kommunizieren kann, sondern ob es auch die Antwort wieder empfangen kann. Wenn du diese erste Regel weg lässt, aber bei OUTPUT http erlaubst, dann wird apt-get zwar die Anfrage an den Debian Server schicken können, aber die Antwort wird nicht durch deine Firewall zu apt-get kommen. Es wird dann zu einem Fehler kommen, vermutlich Timeout oder sowas.


    Die Regel bewirkt nur, dass Verbindungen, die durch OUTPUT Regeln nach außen zugelassen sind, auch nach innen funktionieren, sonst kann man keinen dieser Dienste nutzen, da die alle auch Pakete empfangen müssen. Die Regel bewirkt nicht, dass irgendwas nach draußen gelassen wird, was nicht explizit in den OUTPUT Regeln steht. Es können also nicht alle Dienste nach außen kommunizieren, die per SSH ausgeführt werden.

  • INPUT alles verwerfen:
    Regel 1: SSH erlauben


    OUTPUT alles akzeptieren



    Trotzdem bekomme ich keine SSH Verbindung?!


    Nur wenn die STATE - ESTABLISHED,RELATED bei INPUT steht funktioniert es.


    Vielen Dank.

    Quote

    GREETZ;
    ___._.._.____._.._.____.____._.._._._.._._.____.___
    .|..|__|.|___.|\/|.|__|.|....|__|.|.|\.|.|.[__...|.
    .|..|..|.|___.|..|.|..|.|___.|..|.|.|.\|.|.___]..|.

  • Wähle bei der INPUT Regel für SSH den Zusatz State aus und dann NEW und ESTABLISHED anhaken, dann sollte es gehen. Allerdings merke ich grad, dass das was ich oben geschrieben habe bei mir garnicht stimmt. Eigentlich sollte die Firewall so funktionieren (auch laut Wiki) aber bei mir ist die Regel ESTABLISHED und RELATED für alle Ports freizugeben nicht drin und trotzdem kann ich z.B. DNS auflösen oder solche Sachen.

  • Weiterhin sollte beachtet werden:


    Wenn eine Verbindung eingeht wird die Input Chain abgearbeitet. wenn als erste Regel ein DROP ALL für alle quellen drin steht wird jedes Paket sofort verworfen, da diese Regel auf das Paket zutrifft. Es wird immer die erste zutreffende Regel genommen. Es müssen also zuerst sämtliche Accepts definiert werden und dann als letzte Regel in der Chain der DROP ALL gesetzt werden.


    Somit werden alle Pakete durchgelassen, da eine Ausnahmeregel existiert. Alle Pakete für die keine entsprechende Ausnahmeregel definiert wurde, laufen die Filterregeln bis zum ende durch und werden dann durch die abschließende DROP ALL Regel verworfen.


    Dies wird auch als "first match" bezeichnet.

  • So bekomme ich Zugriff auf SSH:


    Standard Einstellung für INPUT : DROP
    Standard Einstellung für OUTPUT : DROP


    Richtung: Input
    Protokoll : tcp
    Ziel Port: 22
    Zusatz: STATE
    Zusatz-Wert: NEW,ESTABLISHED


    Richtung: Output
    Protokoll : tcp
    Quell Port: 22
    Zusatz: STATE
    Zusatz-Wert: ESTABLISHED



    Somit dürfte nur SSH funktionieren?!


    Vielen Dank.

    Quote

    GREETZ;
    ___._.._.____._.._.____.____._.._._._.._._.____.___
    .|..|__|.|___.|\/|.|__|.|....|__|.|.|\.|.|.[__...|.
    .|..|..|.|___.|..|.|..|.|___.|..|.|.|.\|.|.___]..|.

  • Ich würde den Output nicht filtern.


    Bei Input folgendes einstellen:
    1 STATE ESTABLISHED und RELATED
    2 Port 22 freigeben


    Siehe Bild und WIki zuvor gepostet.


    Das was man auf dem Bild sieht geht bei mir einwandfrei.


    Es kann aber sein das auf dem Hostsystem wo dein Server läuft noch nicht die neuen Firewall Einstellungen gelten,
    das kann nur der Support beheben.


    Führer musst ich ans Ende noch zusätzlich eine Drop Regel hinzufügen.