Traefik Fail2Ban in Kubernetes

#1
Hallo!

Ich hab mal wieder eine Kubernetes-frage zu der ich keine Antwort gefunden habe.

Ich habe Ingress auf dem Cluster laufen, und einige Seiten sind mit Basic Auth ausgestattet(Traefik-Annotation).

In einem "klassischen" setup läuft Nginx unf wenn zu viele Authentication-Failures geloggt werden sprint fail2ban an und blockt die IP.
Nun würde ich gerne etwas ähnliches für den Kluster haben.

Ich habe in der Dokumentation soweit nix gefunden(Traefik und Kubernetes(nicht nach Erweiterungen gesucht)).
Das was ich gefunden habe war eine Krücke, Vorschlag das das Traefik-log doch bitte in eine Volume geschrieben werden soll und dann kann man fail2ban darauf los lassen.

Problem dabei ist das das auf Node aber nicht auf Klusterebene funktioniert.
Service wäre dafür der Ansatzpunkt aber Service hat und sollte kein Wissen von Basic-Auth haben.
Und Traefik kann sich nicht mit Schwesterinstanzen verabreden was nun geblock werden soll und was nicht, da es ein API-Gateway und kein Service-Mesh ist.


Nun wollte ich mal fragen ob das mit Traefik überhaupt geht oder ob es dafür etwas gibt was man noch im Cluster anschließen soll.
Oder ob das mit anderen Ingress-Optionen machbar ist.
Ich weiss das es dort Istoi mit envoy und Zuul und linkered, etc als Alternativen gibt habe damit aber keine Erfahrung.

Thx

Fluffy
 
#2
Irgendwie verstehe ich nicht, wie du etwas wie Fail2ban auf Cluster-Ebene einsetzen willst. Wie du ja richtig schreibst, wissen Services üblicherweise nicht, was da an Traffic durchgeht, da sie auf Transport-Protokollen aufsetzen. Es gibt durchaus IDS-Lösungen für die Cluster-Ebene und sogenannte Container-Firewalls. Schau dir zum Beispiel Neuvector und ähnliches an. Ansonsten steht es dir natürlich frei dir Custom Images für deinen Ingress zu bauen und auf diese Weise fail2ban darin zu verdrahten (z.B. indem du Nginx und fail2ban parallel in einem Container mittels supervisord laufen lässt).
 
Oben