Fail2Ban Docker GUI Setup

Timereacer

Benutzer
Mitglied seit
06. Feb 2022
Beiträge
5
Punkte für Reaktionen
4
Punkte
53
Hallo Zusammen,
nachdem ich nun wirklich nicht mehr weiter weiß möchte ich gerne hier mein Glück versuchen und hoffe das Ihr mir helfen könnt.

Zuerst zur Ausgangslage ich versuche das Docker Image fail2ban von crazy-max über die Synology Docker GUI zum Laufen zu bekommen.
Hierbei verwende ich die aktuellste Version sowohl der Docker GUI als auch von dem angesprochenen fail2ban Image.

Das aktuelle Verhalten sieht so aus, dass fail2ban richtig die Loginversuche (in meinem Fall von Vaultwarden) erkennt und einen Ban setzt.
Allerdings wird dieser vermutlich nicht richtig übernommen und ein Zugriff auf Vaultwarden ist weiterhin möglich.

Der Zugriff auf Vaultwarden erfolgt über vault.meinedomain.de welche per CNAME auf meine Synology DDNS Domain verweist.
Auf dem Synology nutze ich dann den Synology Reverse Proxy welcher auf den Vaultwarden Container zeigt.
Hier vermute ich allerdings kein Problem nachdem die richtige IP übergeben wird.

Nun zu fail2ban folgendes habe ich konfiguriert.

Umgebungsvariablen:
TZ=Europe/Berlin (stimmt mit Vaultwarden überein)
chain=INPUT
F2B_DB_PURGE_AGE=30d
F2B_LOG_TARGET=/data/fail2ban.log
F2B_LOG_LEVEL=INFO

Volume:
docker/vaultwarden -> /vaultwarden
docker/fail2ban -> /data

Der Container wird mit hoher Priorität ausgeführt.

Hier der Logfile Inhalt von Vaultwarden:
[2022-02-06 16:35:36.967][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: MeineIP. Username: Test@test.de. [2022-02-06 16:37:21.673][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: MeineIP. Username: Test@test.de. [2022-02-06 16:37:24.251][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: MeineIP. Username: Test@test.de. [2022-02-06 16:37:26.282][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: MeineIP. Username: Test@test.de.

Und hier das entsprechende Logfile von fail2ban:
2022-02-06 16:35:25,044 fail2ban.server [1]: INFO Starting Fail2ban v0.11.2 2022-02-06 16:35:25,045 fail2ban.observer [1]: INFO Observer start... 2022-02-06 16:35:25,054 fail2ban.database [1]: INFO Connected to fail2ban persistent database '/data/db/fail2ban.sqlite3' 2022-02-06 16:35:25,055 fail2ban.jail [1]: INFO Creating new jail 'vaultwarden-admin' 2022-02-06 16:35:25,081 fail2ban.jail [1]: INFO Jail 'vaultwarden-admin' uses pyinotify {} 2022-02-06 16:35:25,082 fail2ban.jail [1]: INFO Initiated 'pyinotify' backend 2022-02-06 16:35:25,089 fail2ban.filter [1]: INFO maxRetry: 3 2022-02-06 16:35:25,089 fail2ban.filter [1]: INFO findtime: 600 2022-02-06 16:35:25,089 fail2ban.actions [1]: INFO banTime: 86400 2022-02-06 16:35:25,089 fail2ban.filter [1]: INFO encoding: UTF-8 2022-02-06 16:35:25,090 fail2ban.filter [1]: INFO Added logfile: '/vaultwarden/vaultwarden.log' (pos = 0, hash = da39a3ee5e6b4b0d3255bfef95601890afd80709) 2022-02-06 16:35:25,090 fail2ban.jail [1]: INFO Creating new jail 'vaultwarden' 2022-02-06 16:35:25,091 fail2ban.jail [1]: INFO Jail 'vaultwarden' uses pyinotify {} 2022-02-06 16:35:25,091 fail2ban.jail [1]: INFO Initiated 'pyinotify' backend 2022-02-06 16:35:25,093 fail2ban.filter [1]: INFO maxRetry: 3 2022-02-06 16:35:25,094 fail2ban.filter [1]: INFO findtime: 600 2022-02-06 16:35:25,094 fail2ban.actions [1]: INFO banTime: 86400 2022-02-06 16:35:25,094 fail2ban.filter [1]: INFO encoding: UTF-8 2022-02-06 16:35:25,094 fail2ban.filter [1]: INFO Added logfile: '/vaultwarden/vaultwarden.log' (pos = 0, hash = da39a3ee5e6b4b0d3255bfef95601890afd80709) 2022-02-06 16:35:25,096 fail2ban.jail [1]: INFO Jail 'vaultwarden-admin' started 2022-02-06 16:35:25,097 fail2ban.jail [1]: INFO Jail 'vaultwarden' started 2022-02-06 16:35:37,425 fail2ban.filter [1]: INFO [vaultwarden] Found MeineIP - 2022-02-06 16:35:36 2022-02-06 16:37:21,675 fail2ban.filter [1]: INFO [vaultwarden] Found MeineIP - 2022-02-06 16:37:21 2022-02-06 16:37:24,380 fail2ban.filter [1]: INFO [vaultwarden] Found MeineIP - 2022-02-06 16:37:24 2022-02-06 16:37:24,485 fail2ban.actions [1]: NOTICE [vaultwarden] Ban MeineIP 2022-02-06 16:37:26,283 fail2ban.filter [1]: INFO [vaultwarden] Found MeineIP - 2022-02-06 16:37:26

Zu meiner fail2ban config hier die Inhalte.
action.d/iptables-common.local
[Init] blocktype = DROP [Init?family=inet6] blocktype = DROP

filter.d/vaultwarden.local
[INCLUDES] before = common.conf [Definition] failregex = ^.*Username or password is incorrect\. Try again\. IP: <ADDR>\. Username:.*$ ignoreregex =

filter.d/vaultwarden-admin.local
[INCLUDES] before = common.conf [Definition] failregex = ^.*Invalid admin token\. IP: <ADDR>.*$ ignoreregex =

jail.d/vaultwarden.local
[vaultwarden] enabled = true port = 80,443,8081,8004,8005 filter = vaultwarden action = iptables-allports[name=vaultwarden] logpath = /vaultwarden/vaultwarden.log maxretry = 3 bantime = 1 days findtime = 10m

jail.d/vaultwarden-admin.local
[vaultwarden-admin] enabled = true port = 80,443,8081,8004,8005 filter = vaultwarden-admin action = iptables-allports[name=vaultwarden-admin] logpath = /vaultwarden/vaultwarden.log maxretry = 3 bantime = 1 days findtime = 10m

Ich hoffe von euch hat jemand eine Idee falls Ihr noch mehr Informationen braucht stelle ich die euch natürlich gerne zur Verfügung.
 

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
203
Punkte für Reaktionen
90
Punkte
34
Probiere mal für die JAIL Anweisungen folgende Möglichkeit:

Code:
action = iptables-multiport[name="vaultwarden", port="80,443,8081,8004,8005", chain=INPUT]

Code:
action = iptables-multiport[name="vaultwarden-admin", port="80,443,8081,8004,8005", chain=INPUT]
 

Timereacer

Benutzer
Mitglied seit
06. Feb 2022
Beiträge
5
Punkte für Reaktionen
4
Punkte
53
Hallo @DrDeath,
erstmal Danke für deine Antwort, leider funktioniert es immer noch nicht.
Die IP wird weiterhin erkannt und fail2ban gibt einen ban Befehl aus. Anscheinend kommt dieser Ban immer noch nicht bei den iptables des Synology an.
Hast du vlt. noch eine andere Idee?

Grüße Timereacer
 

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
203
Punkte für Reaktionen
90
Punkte
34
Du könntest dich mal zum Test sperren lassen und dann auf der Synology als User "root" den Befehl:

Code:
iptables -L

absetzen und die Ausgabe hier posten.

Wenn ich mich "sperre" ist da folgender Eintrag zu finden:

Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
f2b-vaultwarden  tcp  --  anywhere             anywhere             multiport dports 5152,15152

[...]

Chain f2b-vaultwarden (1 references)
target     prot opt source               Destination
DROP       all  --  <meine geblockte IP>  anywhere
RETURN     all  --  anywhere             anywhere

Im Chain INPUT wird nun auf die Chain f2b-vaultwarden referenziert und dort steht der DROP für meine IP.


P.S.: mein Test Vaultwarden läuft auf dem Reverse Proxy auf Port 5152 und im Docker Container auf 15152.....

anbei meine jail.d configs:

Code:
/volume1/docker/fail2ban/jail.d/vaultwarden.conf

==========================================
[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.0/22
#Ban for 30 days
bantime = 2592000
findtime = 86400
maxretry = 7
backend = auto
action = iptables-multiport[name="vaultwarden", port="5152,15152", chain=INPUT]

[vaultwarden]
enabled = true
port = 5152,15152
filter = vaultwarden
logpath = /vaultwarden/vaultwarden.log
==========================================


/volume1/docker/fail2ban/jail.d/vaultwarden-admin.conf
==========================================
[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.0/22
#Ban for 30 days
bantime = 2592000
findtime = 86400
maxretry = 7
backend = auto
action = iptables-multiport[name="vaultwarden-admin", port="5152,15152", chain=INPUT]]

[vaultwarden-admin]
enabled = true
port = 5152,15152
filter = vaultwarden-admin
logpath = /vaultwarden/vaultwarden.log
==========================================
 
Zuletzt bearbeitet:

Timereacer

Benutzer
Mitglied seit
06. Feb 2022
Beiträge
5
Punkte für Reaktionen
4
Punkte
53
Ich übernehme gleich mal deine Jail Config zum Testen.
Aktuell bekomme ich folgenden Output:

--------------------------------------------------------------------
docker exec -ti 358efacf389f iptables -nvL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 f2b-vaultwarden tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain f2b-vaultwarden (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * <Meine IP> 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

--------------------------------------------------------------------
docker exec -ti 358efacf389f iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-vaultwarden tcp -- anywhere anywhere multiport dports http,https

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain f2b-vaultwarden (1 references)
target prot opt source destination
DROP all -- <Meine IP> anywhere
RETURN all -- anywhere anywhere

--------------------------------------------------------------------
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DOS_PROTECT all -- anywhere anywhere
INPUT_FIREWALL all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
FORWARD_FIREWALL all -- anywhere anywhere
DEFAULT_FORWARD all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain DEFAULT_FORWARD (1 references)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere

Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.3 tcp dpt:http
ACCEPT tcp -- anywhere 172.17.0.3 tcp dpt:3012
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:http
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:https

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere

Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
 
Zuletzt bearbeitet:

Timereacer

Benutzer
Mitglied seit
06. Feb 2022
Beiträge
5
Punkte für Reaktionen
4
Punkte
53
Also habe deine Config übernommen und den Container zurückgesetzt jetzt sieht es nach einem Probeban so aus:
====================================================================================
docker exec -ti 028c0a02953e iptables -nvL

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 f2b-vaultwarden tcp -- * * 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443,8081,8004,8005

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain f2b-vaultwarden (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * <Meine IP> 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0

====================================================================================
docker exec -ti 028c0a02953e iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-vaultwarden tcp -- anywhere anywhere multiport dports http,https,tproxy,8004,8005

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain f2b-vaultwarden (1 references)
target prot opt source destination
DROP all -- <Meine IP> anywhere
RETURN all -- anywhere anywhere

====================================================================================
iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
DOS_PROTECT all -- anywhere anywhere
INPUT_FIREWALL all -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
FORWARD_FIREWALL all -- anywhere anywhere
DEFAULT_FORWARD all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain DEFAULT_FORWARD (1 references)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere

Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.0.3 tcp dpt:http
ACCEPT tcp -- anywhere 172.17.0.3 tcp dpt:3012
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:http
ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:https

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere

Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
 
Zuletzt bearbeitet:

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
203
Punkte für Reaktionen
90
Punkte
34
Dein fail2ban Docker Container führt die Sperrungen im Docker Container aus, er sollte es direkt auf dem Synology DSM Host ausführen.

also nicht IM Docker Container...

hier mal mein komplettes Setup :

Code:
Fail2ban einrichten:

Ordner erstellen:

mkdir -p /volume1/docker/fail2ban/action.d
mkdir -p /volume1/docker/fail2ban/filter.d
mkdir -p /volume1/docker/fail2ban/jail.d


Regeln für fail2ban erstellen:


vi /volume1/docker/fail2ban/action.d/iptables-common.local
==========================================
[Init]
blocktype = DROP
[Init?family=inet6]
blocktype = DROP
==========================================


vi /volume1/docker/fail2ban/filter.d/vaultwarden.conf
==========================================
[INCLUDES]
before = common.conf

[Definition]
failregex = ^.*Username or password is incorrect\. Try again\. IP: <ADDR>\. Username:.*$
ignoreregex =
==========================================


vi /volume1/docker/fail2ban/filter.d/vaultwarden-admin.conf
==========================================
[INCLUDES]
before = common.conf

[Definition]
failregex = ^.*Invalid admin token\. IP: <ADDR>.*$
ignoreregex =
==========================================


vi /volume1/docker/fail2ban/jail.d/vaultwarden.conf
==========================================
[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.0/22
#Ban for 30 days
bantime = 2592000
findtime = 86400
maxretry = 7
backend = auto
action = iptables-multiport[name="vaultwarden", port="5152,15152", chain=INPUT]

[vaultwarden]
enabled = true
port = 5152,15152
filter = vaultwarden
logpath = /vaultwarden/vaultwarden.log
==========================================


vi /volume1/docker/fail2ban/jail.d/vaultwarden-admin.conf
==========================================
[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.0/22
#Ban for 30 days
bantime = 2592000
findtime = 86400
maxretry = 7
backend = auto
action = iptables-multiport[name="vaultwarden-admin", port="5152,15152", chain=INPUT]]

[vaultwarden-admin]
enabled = true
port = 5152,15152
filter = vaultwarden-admin
logpath = /vaultwarden/vaultwarden.log
==========================================


vi /volume1/docker/fail2ban/jail.d/vaultwarden_testing.conf
==========================================
[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.0/22
#Ban for 30 days
bantime = 2592000
findtime = 86400
maxretry = 7
backend = auto
action = iptables-multiport[name="vaultwarden", port="5152,15152", chain=INPUT]

[vaultwarden_testing]
enabled = true
port = 5152,15152
filter = vaultwarden
logpath = /vaultwarden_testing/vaultwarden.log
==========================================


vi /volume1/docker/fail2ban/jail.d/vaultwarden_testing-admin.conf
==========================================
[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.2.0/22
#Ban for 30 days
bantime = 2592000
findtime = 86400
maxretry = 7
backend = auto
action = iptables-multiport[name="vaultwarden-admin", port="5152,15152", chain=INPUT]]

[vaultwarden_testing-admin]
enabled = true
port = 5152,15152
filter = vaultwarden-admin
logpath = /vaultwarden_testing/vaultwarden.log
==========================================




Docker Netzwerk einrichten:

docker network create vaultwarden

Docker-Compose Datei erstellen:

vi /volume1/docker/docker-compose.yml
==========================================
#---
#Docker-compose file for Fail2ban, vaultwarden prod
#---
version: '3'
services:
  fail2ban:
    container_name: fail2ban
    restart: always
    image: crazymax/fail2ban:latest
    environment:
    - TZ=Europe/Berlin
    - F2B_DB_PURGE_AGE=30d
    - F2B_LOG_TARGET=/data/fail2ban.log
    - F2B_LOG_LEVEL=INFO
    - F2B_IPTABLES_CHAIN=INPUT

    volumes:
    - /volume1/docker/fail2ban:/data
    - /volume1/docker/vaultwarden:/vaultwarden:ro

    network_mode: "host"

    privileged: true
    cap_add:
        - NET_ADMIN
        - NET_RAW

  vaultwarden_production_server:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    user: '1026:100'    # non-root user: mein admin user id --- group: users on Synology
    environment:
      - DOMAIN=https://deine.domain:5152/
      - SMTP_HOST=smtp-mail.outlook.com
      - SMTP_SSL=true
      - SMTP_PORT=587
      - SMTP_USERNAME=geheim@test.de
      - SMTP_PASSWORD=nochgeheimer
      - SMTP_FROM=agent.geheim@test.de
      - SIGNUPS_ALLOWED=false
      - ADMIN_TOKEN=jfdhgdfkhgkfdhgkdfjhgkdfjhgdfgdfgdfgdfgdfgdfgdf
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - LOG_FILE=/data/vaultwarden.log
      - LOG_LEVEL=warn
      - EXTENDED_LOGGING=true
      - WEBSOCKET_ENABLED=true
      - ROCKET_ENV=staging
      - ROCKET_PORT=1080    # use high port (>1024) for non-root user
      - ROCKET_WORKERS=10
    ports:
      - 15080:1080          # use high port (>1024) for non-root user
      - 15012:3012
    volumes:
      - /volume1/docker/vaultwarden:/data/:rw
      - /etc/localtime:/etc/localtime:ro
      - /etc/TZ:/etc/timezone:ro

networks:
  default:
    external:
      name: vaultwarden
 
  • Like
Reaktionen: EDvonSchleck

Timereacer

Benutzer
Mitglied seit
06. Feb 2022
Beiträge
5
Punkte für Reaktionen
4
Punkte
53
@DrDeath vielen Dank für die Hilfe,
ich habe meinen Fehler gefunden. Kurze Erklärung für alle die in das selbe Problem laufen:

Ich habe meinen Container über die Synology Docker GUI eingerichtet und gestartet, die Umgebungsvariablen und Volumen waren korrekt.
Das Problem war das Netzwerk welches über die GUI standardmäßig als Bridge aufgesetzt wird und nicht als Host.
Diese Einstellung kann man auch nicht über die GUI ändern.

Dadurch haben die Bans nie die iptables des Synology erreicht.

Also die Lösung über ein docker-compose.yml aufsetzen und darauf achten das folgende Zeile enthalten ist:

network_mode: "host"

Hoffentlich kann dieser Post einigen von Euch die Probleme in Zukunft ersparen.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Um entspannt und umfangreicher Docker-Container per GUI zu verwalten, ist der Container portainer ganz cool. Da kann man auch easy macvlans aufsetzen und bearbeiten, sodass man Containern IP-Adressen aus seinem Netzwerk zuweisen kann.
 

Larosen

Benutzer
Mitglied seit
02. Mai 2022
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
Hallo,
ich habe mich extra für diesen Beitrag im Forum registriert.
Ich habe für meine Familie und Freunde auch einen Vaultwarden Server aufgesetzt und möchte diesen nun gerne auf meiner Synology DiskStation mit DSM 7.1 via Fail2Ban absichern. Gibt es eine Anleitung oder ein Tutorial wie man das als Laie mit etwas erweiterten Grundkenntnissen macht? Die Konfigurationen von @DrDeath wirken ohne KnowHow recht kompliziert und ich weiß nicht so recht wo ich starten soll.
Ich habe SSH Zugang zur DS und bräuchte nun eine Anleitung die auch noch mit DSM 7.1 kompatibel ist und IPv6 Bans unterstützt. Über Tipps oder eine Anleitung wäre ich seeeehr dankbar.
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
619
Punkte für Reaktionen
74
Punkte
48
Guten morgen zusammen,
kann man does auch Papperles-NGX anwenden ?

Ich habe keinerlei Erfahrungen mit fail2ban
 

Tuxnet

Benutzer
Mitglied seit
02. Jan 2019
Beiträge
619
Punkte für Reaktionen
74
Punkte
48
Klasse EDvonSchleck.

Den docker haben ich schnell erstellt,

version: "3.5"

services:
fail2ban:
image: crazymax/fail2ban:latest
container_name: fail2ban
network_mode: host
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- /volume1/docker/fail2ban:/data
- /var/log:/var/log:ro
environment:
- TZ=Europe/Berlin
- F2B_DB_PURGE_AGE=30d
- F2B_LOG_TARGET=/data/fail2ban.log
- F2B_LOG_LEVEL=INFO
- F2B_IPTABLES_CHAIN=INPUT
restart: always

aber wie geht es weiter ?
Ich habe da echt keinen plan von, von diesen ganzen regeln und *.conf Dateien.

Was und wie muss ich machen und erstellen, um Paperless-ngx überwachen zu lassen.
 
Zuletzt bearbeitet:

Cavekeeper

Benutzer
Mitglied seit
08. Okt 2008
Beiträge
136
Punkte für Reaktionen
6
Punkte
18
Leider habe ich folgende Fehlermeldung:
Code:
2022-11-27 14:11:08,349 fail2ban.filter         [1]: INFO    [vaultwarden] Found 93.203.xxx.xxx - 2022-11-27 14:11:08
2022-11-27 14:11:23,867 fail2ban.filter         [1]: INFO    [vaultwarden] Found 93.203.xxx.xxx - 2022-11-27 14:11:23
2022-11-27 14:11:36,183 fail2ban.filter         [1]: INFO    [vaultwarden] Found 93.203.xxx.xxx - 2022-11-27 14:11:36
2022-11-27 14:11:36,264 fail2ban.actions        [1]: NOTICE  [vaultwarden] Ban 93.203.xxx.xxx
2022-11-27 14:11:36,325 fail2ban.utils          [1]: ERROR   7fc57067b2d0 -- exec: iptables -w -I f2b-vaultwarden 1 -s 93.203.xxx.xxx -j REJECT --reject-with icmp-port-unreachable
2022-11-27 14:11:36,325 fail2ban.utils          [1]: ERROR   7fc57067b2d0 -- stderr: 'Warning: Extension REJECT revision 0 not supported, missing kernel module?'
2022-11-27 14:11:36,325 fail2ban.utils          [1]: ERROR   7fc57067b2d0 -- stderr: 'iptables: No chain/target/match by that name.'
2022-11-27 14:11:36,325 fail2ban.utils          [1]: ERROR   7fc57067b2d0 -- returned 1
2022-11-27 14:11:36,346 fail2ban.utils          [1]: ERROR   7fc5706798f0 -- exec: iptables -w -I f2b-vaultwarden 1 -s 93.203.xxx.xxx -j REJECT --reject-with icmp-port-unreachable
2022-11-27 14:11:36,346 fail2ban.utils          [1]: ERROR   7fc5706798f0 -- stderr: 'Warning: Extension REJECT revision 0 not supported, missing kernel module?'
2022-11-27 14:11:36,347 fail2ban.utils          [1]: ERROR   7fc5706798f0 -- stderr: 'iptables: No chain/target/match by that name.'
2022-11-27 14:11:36,347 fail2ban.utils          [1]: ERROR   7fc5706798f0 -- returned 1
2022-11-27 14:11:36,347 fail2ban.actions        [1]: ERROR   Failed to execute ban jail 'vaultwarden' action 'iptables-multiport' info 'ActionInfo({'ip': '93.203.xxx.xxx', 'family': 'inet4', 'fid': <function Actions.ActionInfo.<lambda> at 0x7fc570e78670>, 'raw-ticket': <function Actions.ActionInfo.<lambda> at 0x7fc570e78d30>})': Error banning 93.203.xxx.xxx
2022-11-27 14:11:38,420 fail2ban.utils          [1]: ERROR   7fc57067b510 -- exec: iptables -w -I f2b-vaultwarden 1 -s 93.203.xxx.xxx -j REJECT --reject-with icmp-port-unreachable
2022-11-27 14:11:38,420 fail2ban.utils          [1]: ERROR   7fc57067b510 -- stderr: 'Warning: Extension REJECT revision 0 not supported, missing kernel module?'
2022-11-27 14:11:38,421 fail2ban.utils          [1]: ERROR   7fc57067b510 -- stderr: 'iptables: No chain/target/match by that name.'
2022-11-27 14:11:38,421 fail2ban.utils          [1]: ERROR   7fc57067b510 -- returned 1
2022-11-27 14:11:38,444 fail2ban.utils          [1]: ERROR   7fc57067b360 -- exec: iptables -w -I f2b-vaultwarden 1 -s 93.203.xxx.xxx -j REJECT --reject-with icmp-port-unreachable
2022-11-27 14:11:38,444 fail2ban.utils          [1]: ERROR   7fc57067b360 -- stderr: 'Warning: Extension REJECT revision 0 not supported, missing kernel module?'
2022-11-27 14:11:38,444 fail2ban.utils          [1]: ERROR   7fc57067b360 -- stderr: 'iptables: No chain/target/match by that name.'
2022-11-27 14:11:38,445 fail2ban.utils          [1]: ERROR   7fc57067b360 -- returned 1
2022-11-27 14:11:38,445 fail2ban.actions        [1]: ERROR   Failed to execute ban jail 'vaultwarden' action 'iptables-allports' info 'ActionInfo({'ip': '93.203.xxx.xxx', 'family': 'inet4', 'fid': <function Actions.ActionInfo.<lambda> at 0x7fc570e78670>, 'failures': 3, 'F-*': {'matches': [('{"reqId":"nGEXlLRcxMSlIiNe4Pg6","level":2,"time":"', '2022', '-11-27T13:11:08+00:00","remoteAddr":"93.203.xxx.xxx","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: mail@me.com (Remote IP: 93.203.xxx.xxx)","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:107.0) Gecko/20100101 Firefox/107.0","version":"25.0.1.1","data":[]}'), '{"reqId":"RrYC64dFw7TTrUj10Dfe","level":2,"time":"2022-11-27T13:11:23+00:00","remoteAddr":"93.203.xxx.xxx","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: mail@me.com (Remote IP: 93.203.xxx.xxx)","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:107.0) Gecko/20100101 Firefox/107.0","version":"25.0.1.1","data":[]}', '{"reqId":"tUcbEAinynEGg8DlUV9k","level":2,"time":"2022-11-27T13:11:36+00:00","remoteAddr":"93.203.xxx.xxx","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: mail@me.com (Remote IP: 93.203.xxx.xxx)","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:107.0) Gecko/20100101 Firefox/107.0","version":"25.0.1.1","data":[]}'], 'failures': 3, 'ip4': '93.203.xxx.xxx'}, 'raw-ticket': <function Actions.ActionInfo.<lambda> at 0x7fc570e78d30>})': Error banning 93.203.xxx.xxx
Die Konfiguration habe ich wie oben von @DrDeath angegeben.
Irgendetwas scheint hier noch nicht zu funktionieren.
Der erste Fehlereintrag bezieht sich auf "reject-with icmp-port-unreachable".
Wo könnte das Problem sein?
 

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
203
Punkte für Reaktionen
90
Punkte
34
das beachtet: ?

Code:
Regeln für fail2ban erstellen:


vi /volume1/docker/fail2ban/action.d/iptables-common.local
==========================================
[Init]
blocktype = DROP
[Init?family=inet6]
blocktype = DROP
==========================================

Weil ein REJECT geht auf der Synology nicht....
 
  • Like
Reaktionen: EDvonSchleck

Cavekeeper

Benutzer
Mitglied seit
08. Okt 2008
Beiträge
136
Punkte für Reaktionen
6
Punkte
18
Danke für den Tipp, das hatte ich auch beachtet.
Die iptables-common.local sieht bei mir genauso aus.
Code:
[Init]
blocktype = DROP
[Init?family=inet6]
blocktype = DROP
 

Cavekeeper

Benutzer
Mitglied seit
08. Okt 2008
Beiträge
136
Punkte für Reaktionen
6
Punkte
18
Hmm, ich habe für Nextcloud ebenfalls einen Jail angelegt. Leider die gleiche Fehlermeldung wie mit Vaultwarden. Die IP wird bei Fehleingabe gebannt aber nicht gesperrt. Das sehe ich ja auch im Log. Fail2ban läuft im „Host“-Netzwerk, wie weiter oben schon als Lösung gekennzeichnet wurde.
Also irgendwas läuft wohl grundsätzlich falsch, aber was?
 

Cavekeeper

Benutzer
Mitglied seit
08. Okt 2008
Beiträge
136
Punkte für Reaktionen
6
Punkte
18
Ok, jetzt funktioniert es. Die Jails laufen jetzt durch und blocken die IP.
Folgendes habe ich gemacht.
  • iptables-common.local muss unbenannt werden in iptables.local
  • der Jail für vaultwarden.conf wurde geändert:
    Code:
    action = iptables-multiport[name="vaultwarden", port="80,443,5151"]
 
  • Like
Reaktionen: ebusynsyn und DrDeath

ebusynsyn

Benutzer
Sehr erfahren
Mitglied seit
01. Jun 2015
Beiträge
470
Punkte für Reaktionen
275
Punkte
119
Hallo, bei mir läuft seit Monaten Vaultwarden im Docker-Container zur vollen Zufriedenheit. Ergänzend zum Standard habe ich noch fail2ban drüber gelegt, was auch perfekt funktioniert. Etwa einmal im Monat prüfe ich, ob die Ban- und UnBan-Funktion tut was sie soll.

Eine schon länger ausgegebene Warnung möchte ich nun endlich loswerden. Die Warnung ist zwar gut verständlich, allerdings weiss ich nicht wo in ansetzen soll. In den Weiten den Internets habe ich keine für mich verständliche Hinweise zur möglichen Lösung gefunden.

Gibt es allenfalls hier im Forum jemand, der mir helfen kann, die Warnung zu eliminieren.

2023-01-14 14:54:36,907 fail2ban.filter [1]: WARNING [vaultwarden] Please check a jail for a timing issue. Line with odd timestamp: [2023-01-14 13:54:36.906][request][INFO] POST /identity/connect/token

2023-01-14 14:54:36,908 fail2ban.filter [1]: WARNING [vaultwarden-admin] Please check a jail for a timing issue. Line with odd timestamp: [2023-01-14 13:54:36.906][request][INFO] POST /identity/connect/token


Die beiden erwähnten Files habe ich geprüft. Ich wüsste nicht, wo ich dort etwas betreffend TZ anpassen könnte/müsste. In den Umgebunsvariablen des fail2ban Containers ist die korrekte TZ eingerichtet.

Bin für jeden Tipp dankbar.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat