VCP Webservice Problem - Firewall Regel hinzufügen funktioniert nicht

  • Hallo Netcup-Team,


    mehrere Stunden habe ich nun schon mit Eurem Webservice und automatischen Firewall-Regeln verbracht und leider funktioniert es immer noch nicht.
    Ich erstelle mittels einem PHP Skript neue Regeln für die Firewall. Dies klappt soweit auch ohne Probleme und die Regeln erscheinen im VCP. Leider funktionieren die Regeln aber nicht, solange ich nicht irgendeine Veränderung im Webfrontend mache. Das heißt die Regeln sehe ich, aber sie haben keine Wirkung bis ich mittels VCP den Namen ändere, sie deaktiviere und wieder aktiviere oder ähnliches. Das kann ja nicht sein, so bringt mir Eure Firewall reichlich wenig. Das Skript, Screenshots und meine Regeln findet Ihr hier im Thread: Fail2Ban Script für die VCP API


    Ich bitte um Support, da eine Firewall absolut notwendig ist.


    Vielen Dank und viele Grüße
    Marc


    // Edit
    Das Problem scheint sporadisch aufzutreten. Mal ziehen die per Webservice erstellten Regeln, ein paar Stunden später nicht.

  • Hatte auch grad wieder ne IP wo der Ban nicht gegriffen hat.


    Kommentar im Firewalleintrag

    Code
    Added by Fail2Ban at 2012-06-25 18:45:11 from Host lab01.nc.anyserver.net


    Der Eintrag wurde also erfolgreich und Zeitig angelegt, wirkte aber erst nach Minuten, ohne das ich was dagegen oder dafür getan habe. Wäre toll wenn jemand vom Support da mal stochern könnte. Der Firewall Eintrag ist noch vier Stunden da.


    fail2ban.log

  • Die IP und der Hostname passen nicht zusammen, sim.


    Hat fail2ban eigentlich immernoch das Feature, das zuerst versucht wird den Login-Namen anstatt der IP zu bannen?

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

  • Der Host in der Kommentarzeile ist der, von dem aus gesperrt wurde.
    Also mein vServer. Die IP ist "der Angreifer".


    Zum Loginnamen:
    Hast Du da Infos zu wie das genau zustande kommt? Hört sich interessant an.


    //edit
    Gegen die Vermutung das es ein Fail2Ban Bug ist spricht ja, dass die Zeit in der Kommentarzeile mit dem in der Firewall zusammen passen.

  • Vermutung: Die FW-Regeln greifen erst für neue Verbindungen. Bestehende Verbindungen werden weiterhin gehalten und nicht geblockt.

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

  • Ne das kann auch nicht sein. Nach 7 falschen Login-Versuchen beendet SSH automatisch die Verbindung. Wenn ich mich dann noch einmal einlogge, funktioniert der Zugang trotz aktiver Firewall-Regel (erstellt über den WebService). Wenn es doch ab und zu funktioniert, dann wird die Verbindung nach dem dritten Login-Versuch schon geblock. Schade, daran liegt es nicht. Hast Du noch andere Ideen? Ich bin für jeden Lösungsansatz dankbar.

  • Auch wenn ohne fail2ban mit PHP Skript Firewall-Regeln per WebService erstellt werden ziehen diese nicht immer. Dass der Fehler bei fail2ban besteht ist somit ausgeschlossen...

  • Habe die IP 46.249.63.147 gegoogelt, da sie auch in meiner Firewall steht und nicht mehr gelöscht wurde.
    Da bin ich doch tatsächlich auf diesen halbaktuellen Thread gestoßen :)


    In meinem fail2ban log steht:


    Code
    2012-06-25 19:39:13,004 fail2ban.actions.action: ERROR php -f /etc/fail2ban/nc_firewallapi_beta.php delete INPUT "46.249.63.147" DROP returned ff00


    Keine Ahnung was das ff00 bedeutet.


    Das Problem mit already banned kann ich bestätigen, jedoch für die IP: 88.119.195.211.
    Wäre schon gut zumindest zu wissen, woran das liegt, da gerade auch mehr koordinierte Angriffe als normal auf mich gefahren werden.

  • Hi Mainboarder,


    da sim gerade im Urlaub ist, versuch ich Dir mal zu helfen.
    "46.249.63.147" ist eine niederländische IP die schon öfter aufgefallen ist. Läuft wohl ein automatsiches Script, Crawler o.Ä.. Also bist nicht der Einzige ;)


    Zu Deinem fail2ban Fehler, hast Du die action.d richtig konfiguriert?
    Das heißt:
    actioncheck =
    actionban = php -f /etc/fail2ban/firewallapi.php add INPUT "<ip>" DROP
    actionunban = php -f /etc/fail2ban/firewallapi.php delete INPUT "<ip>" DROP
    (Bsp. Konfig: Anwendungsentwickler Gitweb - scripts.git/blob - linux/nc_firewallapi_action.d_example.conf)


    Könnte aber auch an einer IPV6 Adresse liegen. Da beduetet FF00::/8Multicast.
    Andere automatosch generierte Firewall Regeln funktionieren?


    So denn, viel Erfolg!

  • Danke für den Tipp,
    aber ich habe das bereits so eingerichtet und es funktioniert auch in den meisten Fällen.
    Ich glaube es war das erste mal, das eine IP hängen geblieben ist. Das ist zu verschmerzen.


    Kann es sein, dass die Firewall die Regeln mit "oder" verknüpft?
    Habe mal getestet mit einem Standard Drop all, lasse aber Port 80 zu.
    Sperre ich jetzt meine IP, so kann ich noch immer auf Port 80.


    Anfrage an Server -> Ist die IP berechtigt zuzugreifen? oder Ist Port 80 offen? Ja -> Willkommen.


    Jetzt wird es interessant: Was ist, wenn ich die Anfragen limitieren möchte (DoS) und den State setze wie hier?


    Also ich vermute mal, dass die Firewall komplett funktioniert, aber womöglich die eine oder andere Regel ein Verbot ausspielt.


    Update:
    So langsam verstehe ich die Firewall!
    Ich komme durch, wenn die Sperre unter dem Accept steht, aber nicht, wenn sie davor eingeordnet wird. Man muss also von oben nach unten lesen, bis man zu einem Accept kommt, dann geht es. Wird man vorher gefiltert natürlich nicht, aber wird man nach dem Accept gefiltert, dann geht es dennoch.
    Irgendwie logisch, hab ich aber nirgends gelesen.


    Allerdings bringt ja sim´s Skript die Sperren immer nach ganz oben, so ganz scheint es das also nicht zu sein.

  • Ich hab kurz mit sim gesprochen und er meint, dass dieses ff00 durch den Debug Modus kommen kann. Benutzt Du die externe Konfigurationsdatei? Wenn nicht solltest Du die Zeile:
    define("DEBUG_OUTPUT", true); -> define("DEBUG_OUTPUT", false);
    ändern. Niemals Debug im Live System laufen lassen.


    Genau, die Firewall Regeln werden von oben nach unten gelesen. Findet eine Regel Anwendung so wird diese priorisiert und andere finden ggf. keine Anwendung. Leider ist es per WebService nicht möglich die automatisch generierten Regeln an eine bestimmte Stelle in den Firewall Regeln zu schreiben, daher werden diese immer nach ganz oben geschrieben. Dies macht aber schon Sinn, da diese ja die höchste Prio hat. Wir haben allerdings festgestellt, dass es manchmal vorkommt, dass dadurch die vorher erste Regel nicht beachtet wird. Das heißt wenn Du an erster Stelle bestimmte Ports verbietest und eine automatische Regel erstellt wird, dass diese Verbots-Regel nicht beachtet wird. Dieses Verhalten haben wir öfter festgestellt, daher habe ich an der ersten Posiiton eine dummy Regel definiert (DROP 111.111.111 ...). Allerdings schrieb mir vor kurzem der Support, dass sie dies in den Griff bekommen haben. Daher bitte einfach mal testen und berichten ;)

  • Der arme Sim, hat Urlaub und wird mit sowas belastet. :) btw, gute Erholung!


    Ich hab die externe Datei, da steht es auf false, intern war es true. Sollte also spätestens jetzt laufen. Danke!


    Und zur Firewall:


    jetzt wird mir einiges klar. Ich dachte mir schon, dass es doch nicht sein kann, dass wir alle zu doof sind zu erkennen, wie sie die regeln liest. Als recht neuer Kunde gut zu wissen :P

  • Hallo,


    ich habe ein ähnliches Problem mit den Firewallregeln. Ich habe alle von Hand über das VCP Frontend eingegeben, aber diese scheinen ignoriert zu werden.
    Bsp:
    [Blockierte Grafik: http://hma.mwserv.de/VCP%20FW%20Regel.jpg]


    Damit sollten ja Alle IP Adressen von 188.143.233.0 - 188.143.255 nicht mehr auf den Server zugreifen können. Leider funktioniert das nicht und ich sehe auch Stunden, nachdem ich die Regel erstellt habe, immer noch Zugriffe aus diesem Adressbereich auf das Forum, welches auf dem Server läuft.
    [Blockierte Grafik: http://hma.mwserv.de/forumlog.jpg]


    Ich weiß, ein komplettes Netz sperren, ist der große Hammer, aber das ist ein russisches Netz und das Forum ist ein deutsches. Außerdem haben es diese Spambots in den letzten Wochen (ich konnte da nicht regelmäßig ins Forum schauen) geschafft trotz Captcha über 12000 Fakeuser anzulegen und das Forum mit über 15000 Spambeiträgen zuzumüllen. Wenn ich einzelne IP-Adressen sperre, reichen die 100 Regeln, die möglich sind, bei weitem nicht aus. Es tummeln sich teilweise gleichzeitig 30-40 IP Adressen aus der Ukraine, Rußland, China und diversen anderen Ländern im Forum, die alle versuchen neue Benutzer anzulegen. (Das habe ich mittlererweile unterbunden, aber diese Zugriffe verursachen ja auch Traffic und Last auf dem Server). Ich habe mittlererweile 30 Regeln für verschiedene Quellnetze definiert, aber keine scheint zu greifen. Ich sehe die Adressen auch Stunden später immer wieder im Forum auftauchen, Ich habe den Server sogar mal neu gestartet um mit Sicherheit alle Verbindungen zurückzusetzen, aber auch das hat keine Auswirkungen.


    Hat irgend jemand eine Idee, warum das mit diesen Regeln nicht klappt?

  • Wie sieht der Rest der Firewall aus?
    Möglicherweise ist was anderes nicht Richtig eingestellt, weil bei mir klappt das ganze auf anderem Weg prima.
    Habe das ganze für mein SSH Server gemacht und das funktioniert einwandfrei.

  • Ich habe mal testweise den Adressbereich von meinem DSL Provider nach der gleichen Methode in der Firewall eingetragen. Ich kam dann nicht mehr auf das Forum. Die Spambots sehe ich aber nach wie vor im Forum obwohl dafür Regeln in der Firewall existieren. Ich bin ziemlich ratlos, warum die nach wie vor Zugriff haben. Da beim vServer ja die Firewall ja außerhalb des vServers läuft, bekomme ich auch keinerlei Einträge in den logs. Ich finde also keinen Punkt an dem ich ansetzen könnte.
    Einerseits, die Regel für das Netz von meinem Provider hat funktioniert, also kann ich die Regeln nicht falsch erstellt haben. Andererseits tauchen andere in der Firewall gesperrte Adressbereiche nach wie vor im Forum auf also funktionieren diese Regeln nicht. Ich habe sogar noch zusätzlich einzelne IP Adressen gesperrt obwohl schon Regeln für das jeweilige Netz existieren und diese an die ersten Stellen der Regeln gesetzt, trotzdem tummeln sich diese weiter munter im Forum. Ich weiß einfach nicht mehr weiter. Ich kann nur sagen, seit meinem Posting hier haben die Spambots ca. 1000 neue Einträge im Bannlog vom Forum erzeugt, also ca. 125 Einträge pro Stunde. Dazu kommen noch etliche von IPs, die ich bisher nicht in der Bannliste habe. Im Durchschnitt habe ich 10000 Zugriffe auf das Forum pro Tag von denen 49% aus Rußland, 22% nicht aufgelöst und 13% aus der Ukraine stammen, um nur die größten Trafficverursacher zu nennen.

  • Vermutung: Die FW-Regeln greifen erst für neue Verbindungen. Bestehende Verbindungen werden weiterhin gehalten und nicht geblockt.

    Hi,


    das kann ich bestätigen.
    Das Problem ist bei Netcup bekannt und es wird nach einer Lösung gesucht.
    Ich warte da auch noch auf Feedback.

  • Hmm, aber wird nicht für jeden http Request eine neue Verbindung aufgebaut? Jedenfalls in meinen Tests wenn ich das Netz von meinem Provider eingetragen habe (mit State New, Established, Related) war keine Verbindung zum Forum mehr möglich, auch bei bestehender Anmeldung. Ich habe die Logs mal ein bisschen mit Excel überarbeitet (erleichtert die Auswertung ungemein) und da ist mir z.B. folgendes aufgefallen:


    IP 46.116.75.193 (ist aus Israel) dafür habe ich mindesten seit meinem ersten Post eine Firewall Regel:
    [Blockierte Grafik: http://hma.mwserv.de/VCP%20FW%20Regel1.jpg]


    Wenn ich jetzt in die Logs schaue und auf diese IP Filtere, sehe ich folgendes:
    Bannlog vom Forum:
    [Blockierte Grafik: http://hma.mwserv.de/ban-report.jpg]


    und im Access log vom Webserver:
    [Blockierte Grafik: http://hma.mwserv.de/http%20access%20log.jpg
    Wen es interessiert, ich habe das Excelfile mit der kompletten Liste und die CSV Datei, die ich zum Füttern der Pivottabelle benutzt habe, angehängt.
    Das heißt hier war heute zwischen 1:52 und 11:04 eine Pause in der keine Zugriffe von dieser IP erfolgten. Solange kann man doch keine Verbindung offen halten ohne das etwas passiert. Ich habe auch mal mit netstat kontrolliert welche offenen Verbindungen es gibt, da wurde diese IP nicht aufgelistet und gerade jetzt, wo ich den Artikel schreibe, taucht sie wieder im Forum auf. ?( Ich weiß wirklich keinen Rat mehr wie ich diese Spammer von meinem Server fernhalten kann.