IPtables kleine Bitte: einmal drüberschauen.

  • Hallo zusammen,


    ich habe mal eine kleine Bitte an euch, nämlich einmal über meine geplante iptables zu sehen und mir Fehler zu nennen oder Verbesserungsvorschläge.


    Ich bedanke mich schon mal in Voraus. :)





    MFG Daniel

  • Das kannst du noch mit reinpacken:


    Code
    iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 8 -j DROP
    iptables -I INPUT -p tcp -m state --state NEW --dport 80 -m recent --name slowloris --set
    iptables -I INPUT -p tcp -m state --state NEW --dport 80 -m recent --name slowloris --update --seconds 15 --hitcount 15 -j DROP


    Burst kannst du ja nach Bedarf anpassen.


    Grüße


  • Hi,


    korrigiere mich wenn ich falsch liege habe gerade die Zeilen nur Überflogen, es scheint sich bei dir darum zugehen zuviele Anfragen in einer gewissen Zeit auf dem Port 80(HTTP) zu unterbinden(DDOS Schutz bzw Bruceforce), wenn ja finde ich die Idee sehr gut. Falls ich mich irre freue ich mich über die richtige Antwort


    Mfg Daniel

  • Hey, das ist völlig korrekt. Das dient tatsächlich als DDoS Schutz und gehört - wie ich finde - in jede IPTables Konfiguration rein. Zwar ist die Wahrscheinlichkeit eines klassischen Angriffs sehr gering, sofern man kein Ansehen erregt, aber es schadet ja nicht sich bereits vorher abzusichern. Dazu noch Deflate und Fail2Ban und schon hast du eine vernünftige Softwarelösung.


    Beste Grüße

  • Servus zusammen!


    ich bin nun auch auf einen KVM Server umgestiegen und habe u.a. die iptables rules aus dem 4.Beitrag übernommen.
    Allerdings habe ich jetzt das Problem, dass diese 15 requests pro 15 Sekunden bereits mit dem Aufruf einer Seite ausgeschöpft sind. D.h. wenn ich die Seite innerhalb von 15 Sekunden neulade, dann bin ich ausgesperrt.
    Weiß zufällig jemand, ob das ein Problem der Server-Einstellung ist o.a.?


    Ich könnte die Schwelle auf 30-40 Requests hochstellen, aber das ist nicht im Sinne von DDOS-Schutz, denke ich mal.




    Danke euch und viele Grüße

  • 15 Requests unter 5s schafft man locker, siehe z.B. Roundup on Parallel Connections | High Performance Web Sites oder Home -Browserscope. Es dürfte schon reichen 3 interessante Links in einem Hintergrund-Tab zu laden. Alternativ gibt es genügend Leute die hinter einem Proxy sitzen. Allein die Anzahl an Verbindungen pro IP/Sekunde wäre mit zu wenig für das Blocken von HTTP.

    "Security is like an onion - the more you dig in the more you want to cry"

  • Ich habe bei meinen Recherchen zur Vorbereitung der bald anstehenden Migration meines Servers folgendes Skript zusammen gestellt, welches gegenüber dem oben genannten einige Unterschiede aufweist. Könnte mal jemand drüber schauen und ggf. Kommentieren welche Lösung besser/eleganter ist bzw. was sich evtl. besser lösen lässt?


    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

  • Hmmmm, das Thema trifft wohl nicht auf großes Interesse. Aber ein riesen Fehler scheint wohl auch nicht drin zu sein, sonst hätte mir hier bestimmt jemand virtuell eine an den Hinterkopf geklatscht. Ich hätte allerdings mit meinem Beitrag gern den Anstoß zu der Ausarbeitung eines gesunden Skriptes für die Grundeinrichtung eines Servers gegeben. Nicht alle hier (so wie ich) sind nicht sehr erfahren mit der Firewall von Linux.

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

  • Code
    # HTTP Limit pro Minute
    iptables -A INPUT -i eth0 -p tcp --dport 80 -j LOG --log-prefix "Apache Access" --log-level 6 -m limit --limit 15/m

    Zugriffe auf Port 80 hast du weiter oben bereits akzeptiert. Akzeptierte Pakete werden nicht weiter gefiltert, also wird nichts geloggt.


    Darf ich fragen, woher die E-Mails kommen, die Du mit POP3 abholen willst? Vielleicht sollte der SMTP-Port geöffnet werden.

  • Zugriffe auf Port 80 hast du weiter oben bereits akzeptiert. Akzeptierte Pakete werden nicht weiter gefiltert, also wird nichts geloggt.


    Darf ich fragen, woher die E-Mails kommen, die Du mit POP3 abholen willst? Vielleicht sollte der SMTP-Port geöffnet werden.

    OK, dann hätte ich evtl. für das HTTP-Limit ein "iptables -I ......." verwenden sollen, damit die Regel oben eingefügt wird (das müsste doch funktionieren).

    Code
    iptables -I INPUT -i eth0 -p tcp --dport 80 -j LOG --log-prefix "Apache Access" --log-level 6 -m limit --limit 15/m



    Und du hast natürlich Recht, ich habe SMTP vergessen.



    RayMD
    Besteht in deinem Skript nicht das gleiche Problem? Es werden erst die Regeln für die Services eingetragen und dann folgt das HTTP-Limit.

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

  • Meine Regel unterscheidet sich von deiner. Schau mal genauer hin :)
    Somit funktioniert das so, wie man sich das denkt.


    Edit: Das was du tust ist glaub ich nicht, das was du haben möchtest.


    IPTABLES manpage Auszug:

  • Ich habe bei meinen Recherchen zur Vorbereitung der bald anstehenden Migration meines Servers folgendes Skript zusammen gestellt, welches gegenüber dem oben genannten einige Unterschiede aufweist. Könnte mal jemand drüber schauen und ggf. Kommentieren welche Lösung besser/eleganter ist bzw. was sich evtl. besser lösen lässt?


    Code
    #alle Regeln und Ketten löschen
    iptables -F
    iptables -X
    iptables -t nat -F
    
    
    
    
    ...................
    ....................

    Kleine Anmerkung
    wenn man "iptables -F" benutzt ohne ein Kette anzugeben , sollte man Sorge tragen
    dass die FW vor fail2ban gestartet , denn im umgekehrtren Fall werden auch die
    Regeln mit gelöscht , die van fail2ban erstellt wurden.

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE

  • extremmichi
    Das habe ich z.B. nicht gewusst. Vielen Dank für den Hinweis.



    Ich schaue mir immer noch das Skript von RayMD an. Wenn ich dieses (ggf. leicht verändert) verwende, sollte man dort evtl. stoppen und starten von fail2ban mit einbinden? Also erst fail2ban stoppen, Firewall konfigurieren, dann fail2ban wieder starten?

    9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die letzte summt ständig die Melodie von Tetris.

    Einmal editiert, zuletzt von RHA ()

  • oder die Start/stop-Scripte der FW sollten ne niedrigere Zahl als die von fail2ban haben
    wenn man den Linux Weg geht und die FW unter /etc/init.d ablegt und durch die rc*.d
    scripte starten bzw. stoppen lässt. Dann wird die FW auch automatisch beim booten aktiviert ;)

    It's me, only me, pure michi 🦆

    RS 1000 SAS G8 | Cyber Quack

    VPS: 50 G7 |B Ostern 2017|200 | Karneval | piko

    WH: SmallEi | Adv17 Family |4000 SE|1000 SE