Initieel had ik samen met onze Vriend ChatGPT een docker compose gemaakt voor f2b + nextcloud + redis + collabora. Maar dat werkt maar halvelings.
Het probleem ligt bij fail2ban, ik krijg deze niet aan de praat.
Niet via de compose die chatgpt gemaakt heeft, maar ook niet op een losse f2b voor een bestaande emby.
De finale setup zou zijn dat ik een aantal docker containers die extern benaderbaar zijn, voorzie van een f2b jail, zodat failed logins gebanned worden.
Er staat reeds een cloudflare voor die GeoBlock doet, maar dit zou dan een additionele laag zijn.
In eerste instantie had ik een pak foutmeldingen, maar dat kwam blijkbaar door een aanpassing in een van hun laatste commits (zie DEFAULT onder de jail.local).
Mocht iemand zich geroepen voelen om onderstaande eens te bekijken.
Volgens de logs is de jail up & running, maar er wordt nougabollen actie ondernomen door f2b :/
Achtergrond:
De emby draait tevens in een docker container, en staat achter een reverse proxy: HA op PfSense, en is volledig werkend incl certs.
De HA gaat de traffiek redirecten van https://emby.whatever naar 192.168.10.155:8096
Docker compose fail2ban:
Code: Selecteer alles
services:
fail2ban:
image: lscr.io/linuxserver/fail2ban:latest
container_name: fail2ban
cap_add:
- NET_ADMIN
- NET_RAW
network_mode: host
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
- VERBOSITY=-vvvv #optional
volumes:
- ./config:/config
# - /var/log:/var/log:ro
- /docker/emby/library/logs:/remotelogs/emby:ro #optional
- /docker/jellyseer/config/logs:/remotelogs/jellyseer:ro
# - /path/to/nextcloud/log:/remotelogs/nextcloud:ro #optionalCode: Selecteer alles
services:
emby:
image: lscr.io/linuxserver/emby:latest
container_name: emby
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Brussels
volumes:
- /docker/emby/library:/config
- /docker/emby/backup:/backup
- /DataDisk/Video:/Video
- /DataDisk/Audio:/Audio
# - /opt/vc/lib:/opt/vc/lib #optional
ports:
- 192.168.10.155:8096:8096
- 192.168.10.155:8920:8920 #optional
devices:
- /dev/dri:/dev/dri #optional
# - /dev/vchiq:/dev/vchiq #optional
# - /dev/video10:/dev/video10 #optional
# - /dev/video11:/dev/video11 #optional
# - /dev/video12:/dev/video12 #optional
restart: unless-stopped
networks:
- docker_lan
networks:
docker_lan:
external: trueCode: Selecteer alles
[DEFAULT]
#banaction = nftables
#banaction_allports = nftables[type=allports]
banaction = iptables-multiport
banaction_allports = iptables-allports
[emby]
enabled = true
port = 8096,443,80
filter = emby
logpath = /remotelogs/emby/embyserver.txt
maxretry = 3
findtime = 600
bantime = 43200
chain = DOCKER-USER
#chain = INPUT
action = %(known/action)sOnderstaande geeft ook gewoon weer dat de jail draait.
Code: Selecteer alles
docker exec -it fail2ban fail2ban-client status emby
Status for the jail: emby
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /remotelogs/emby/embyserver.txt
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:Code: Selecteer alles
## Version 2023/03/11
# Fail2Ban filter for emby
[INCLUDES]
before = common.conf
[Definition]
_daemon = emby-server
failregex = Server: AUTH-ERROR:\ <HOST>\ -
ignoreregex =-log file is leesbaar
-regex is correct
Code: Selecteer alles
root@vdockersrv:/# fail2ban-regex /remotelogs/emby/embyserver.txt "http/1.1 Response 401 to <HOST>"
Running tests
=============
Use failregex line : http/1.1 Response 401 to <HOST>
Use log file : /remotelogs/emby/embyserver.txt
Use encoding : UTF-8
Results
=======
Failregex: 44 total
|- #) [# of hits] regular expression
| 1) [44] http/1.1 Response 401 to <HOST>
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [734] {^LN-BEG}ExYear(?P<_sep>[-/.])Month(?P=_sep)Day(?:T| ?)24hour:Minute:Second(?:[.,]Microseconds)?(?:\s*Zone offset)?
`-
Lines: 1524 lines, 0 ignored, 44 matched, 1480 missed
[processed in 0.18 sec]
Missed line(s): too many to print. Use --print-all-missed to print all 1480 linesWat nog zou kunnen is dat ik voor mijn emby (en een pak andere containers) een ander netwerk heb, hiervoor heb ik een "docker lan" aangemaakt, terwijl dit in de f2b docker nog niet geconfigureerd staat, maar volgens mij moet de f2b container dit toch gaan blocken op host niveau?


