MrDeluxe
Enthusiast
Thread Starter
- Mitglied seit
- 01.04.2006
- Beiträge
- 1.470
- Laptop
- Thinkpad E480, E14, T14s
- Details zu meinem Desktop
- Prozessor
- AMD 3700x @ 4,3 Boost-Overdrive + Thermal Grizzly Aeronaut
- Mainboard
- Gigabyte Aorus Pro X570
- Kühler
- Scythe Fuma 2
- Speicher
- G.Skill - F4-3200C14D-16GFX
- Grafikprozessor
- 5700 XT
- Display
- 1xBenq G2411HD, 1xLG 27GL850-B, 1xBenq G2411HD @ Icy Box Monitor Arm IcyBox 3 – IB-MS405-T
- SSD
- WD Black SN750
- HDD
- Samsung 850Evo, Crucial 120GB @ Linux EOS
- Opt. Laufwerk
- N/A
- Soundkarte
- OnBoard
- Gehäuse
- Fractal Design Define R6 USB-C Blackout
- Netzteil
- be quiet straight power 650W
- Keyboard
- CMSTORM
- Mouse
- MX518
- Betriebssystem
- Win11 + Linux Elementary OS
- Sonstiges
- Mobile Phone - Mi 11 Lite 5G @ lineageOS nightly
- Internet
- ▼1000 ▲500
Hallo liebe Gemeinde,
ich bin seit ca. 1 Woche umgezogen von 1und1 nach Contabo. Ich habe mir den kleinsten VPS bestellt und soweit eingerichtet. Auf dem vServer vom 1und1 lief noch alles dediziert, nun möchte ich die Applikationen mit Docker isolieren. Bisher habe ich einen Apache2.4 mit SSL zum fliegen gebracht im Docker-Container. Die Webseite ist mit htaccess-Digest abgesichert. Um nun Brute-Force-Attacken entgegenzuwirken habe ich fail2ban eingerichtet. Dazu habe ich die Logging-Daten vom Apache2.4 vom Host einbinden lassen (-v), außerdem gebe ich dem Container die Zeit des Hosts darüber mit.
Soweit so gut, und es läuft. Was nicht läuft ist fail2ban für den Container. Fail2ban schlägt beim SSH-Zugriff auf dem HOST zu, wie es soll. Wenn ich aber mehrere Male das Kennwort bei htaccess falsch eingebe, wird im Log von Fail2ban angezeigt, dass ich gesperrt werde, iptables sagt es auch ABER ich werde nicht gesperrt, wieso auch immer. Also kurzum ssh-Sperre klappt auf dem Host, die Sperre mit dem Container leider nicht.
Hier schön zu sehen, dass meine IP gesperrt wurde. Dennoch habe ich weiteren Zugriff auf die Webseite, was nicht sein dürfte.
Fail2ban Log
Iptables -L
Fail2ban-Regex
Was habe ich übersehen? :/
- Danke für jegliche Hilfe!
ich bin seit ca. 1 Woche umgezogen von 1und1 nach Contabo. Ich habe mir den kleinsten VPS bestellt und soweit eingerichtet. Auf dem vServer vom 1und1 lief noch alles dediziert, nun möchte ich die Applikationen mit Docker isolieren. Bisher habe ich einen Apache2.4 mit SSL zum fliegen gebracht im Docker-Container. Die Webseite ist mit htaccess-Digest abgesichert. Um nun Brute-Force-Attacken entgegenzuwirken habe ich fail2ban eingerichtet. Dazu habe ich die Logging-Daten vom Apache2.4 vom Host einbinden lassen (-v), außerdem gebe ich dem Container die Zeit des Hosts darüber mit.
sudo docker run -v /var/log/Docker/apache2:/var/log/apache2 -v /etc/localtime:/etc/localtime --name apache2ssl -p 80:80 -p 443:443 -d apache2ssl
Soweit so gut, und es läuft. Was nicht läuft ist fail2ban für den Container. Fail2ban schlägt beim SSH-Zugriff auf dem HOST zu, wie es soll. Wenn ich aber mehrere Male das Kennwort bei htaccess falsch eingebe, wird im Log von Fail2ban angezeigt, dass ich gesperrt werde, iptables sagt es auch ABER ich werde nicht gesperrt, wieso auch immer. Also kurzum ssh-Sperre klappt auf dem Host, die Sperre mit dem Container leider nicht.
Hier schön zu sehen, dass meine IP gesperrt wurde. Dennoch habe ich weiteren Zugriff auf die Webseite, was nicht sein dürfte.
Fail2ban Log
2016-07-11 09:02:52,064 fail2ban.actions[5092]: WARNING [apache-multiport] Ban 192.XX.XX.XXX
2016-07-11 09:02:52,067 fail2ban.actions[5092]: WARNING [apache] Ban 192.XX.XX.XXX
Iptables -L
#sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-apache-multiport tcp -- anywhere anywhere multiport dports http,https
fail2ban-apache-badbots tcp -- anywhere anywhere multiport dports http,https
fail2ban-apache-nohome tcp -- anywhere anywhere multiport dports http,https
fail2ban-apache-overflows tcp -- anywhere anywhere multiport dports http,https
fail2ban-apache-noscript tcp -- anywhere anywhere multiport dports http,https
fail2ban-apache tcp -- anywhere anywhere multiport dports http,https
fail2ban-ssh tcp -- anywhere anywhere multiport dports 99XX
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all -- anywhere anywhere
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere 172.17.X.X tcp dpt:https
ACCEPT tcp -- anywhere 172.17.X.X tcp dpt:http
Chain DOCKER-ISOLATION (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-apache (1 references)
target prot opt source destination
REJECT all -- 192.XX.XX.XXX anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
Chain fail2ban-apache-badbots (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-apache-multiport (1 references)
target prot opt source destination
REJECT all -- 192.XX.XX.XXX anywhere reject-with icmp-port-unreachable
RETURN all -- anywhere anywhere
Chain fail2ban-apache-nohome (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-apache-noscript (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-apache-overflows (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Fail2ban-Regex
#sudo fail2ban-regex /var/log/Docker/apache2/error.log /etc/fail2ban/filter.d/apache-auth.conf
Running tests
=============
Use failregex file : /etc/fail2ban/filter.d/apache-auth.conf
Use log file : /var/log/Docker/apache2/error.log
Results
=======
Failregex: 1226 total
|- #) [# of hits] regular expression
| 6) [668] ^\[[^]]*\] \[?error|\S+:\S+)\]( \[pid \d+
\S+ \d+)?\])? \[client <HOST>
\d{1,5})?\] (AH0179[24]: )?(Digest: )?user .*?: password mismatch: \S*(, referer: \S+)?\s*$
| 7) [558] ^\[[^]]*\] \[?error|\S+:\S+)\]( \[pid \d+
\S+ \d+)?\])? \[client <HOST>
\d{1,5})?\] (AH0179[01]: |Digest: )user `.*?' in realm `.+' (not found|denied by provider): \S*(, referer: \S+)?\s*$
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [2274] WEEKDAY MONTH Day Hour:Minute:Second[.subsecond] Year
`-
Lines: 2283 lines, 0 ignored, 1226 matched, 1057 missed
Missed line(s): too many to print. Use --print-all-missed to print all 1057 lines
Was habe ich übersehen? :/
- Danke für jegliche Hilfe!
Zuletzt bearbeitet: