–navigation–
Beitragsdatum | 13.05.2018 |
---|---|
Letzte Aktualisierung | 30.06.2018 |
Betrifft | apache 2, fail2ban 0.9.x und andere |
Bitte beachten Sie: alle IP-Adressen in diesem Beitrag wurden durch ein „x“ anonymisiert (z.B.: 123.456.789.x).
/var/log/apache2/other_vhosts_access.log
fanden sich zahlreiche Einträge dieser Art (IP-Adresse aus Datenschutzgründen anonymisiert):default-91_250_114_x:443 188.155.69.x - - [12/May/2018:20:14:43 +0200] "-" 408 142 "-" "-" default-91_250_114_x:443 188.155.69.x - - [12/May/2018:20:15:04 +0200] "-" 408 142 "-" "-" default-91_250_114_x:443 188.155.69.x - - [12/May/2018:20:15:25 +0200] "-" 408 142 "-" "-" ...
# fail2ban-client -d | grep "[teil der regexp]" # z.B.: fail2ban-client -d | grep "408 \[0-9\]"
jail.local
von fail2ban oder über eine VerwaltungsGUI angepasst werden (z.B. Plesk)# fail2ban-regex --print-all-matched [logfile] /etc/fail2ban/filter.d/[filter] | less # z.B.: fail2ban-regex --print-all-matched /var/log/apache2/other_vhosts_access.log /etc/fail2ban/filter.d/apache-408.local | less # Ausgabe: Running tests ============= Use failregex filter file : apache-408, basedir: /etc/fail2ban Use log file : /var/log/apache2/other_vhosts_access.log Use encoding : UTF-8 Results ======= Failregex: 16 total |- #) [# of hits] regular expression | 1) [16] .*:(80|443) <HOST>.* 408 [0-9]{1,4} .* `- Ignoreregex: 0 total Date template hits: |- [# of hits] date format | [41] Day(?P<_sep>[-/])MON(?P=_sep)Year[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)? `- Lines: 41 lines, 0 ignored, 16 matched, 25 missed [processed in 0.01 sec] |- Matched line(s): | default-91_250_114_x:443 89.13.132.x - - [13/May/2018:06:13:49 +0200] "-" 408 1946 "-" "-" | default-91_250_114_x:443 89.13.132.x - - [13/May/2018:06:20:27 +0200] "-" 408 1946 "-" "-" ...
–print-all-missed
ausgeführt werden:Running tests ============= Use failregex filter file : apache-408, basedir: /etc/fail2ban Use log file : /var/log/apache2/other_vhosts_access.log Use encoding : UTF-8 Results ======= Failregex: 16 total |- #) [# of hits] regular expression | 1) [16] .*:(80|443) <HOST>.* 408 [0-9]{1,4} .* `- Ignoreregex: 0 total Date template hits: |- [# of hits] date format | [42] Day(?P<_sep>[-/])MON(?P=_sep)Year[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)? `- Lines: 42 lines, 0 ignored, 16 matched, 26 missed [processed in 0.01 sec] |- Missed line(s): | default:80 47.75.6.xx - - [13/May/2018:04:55:54 +0200] "PROPFIND / HTTP/1.1" 403 425 "-" "-" ...
other_vhosts_access.log
# openssl s_client -connect [server ip]:443
# z.B.:
openssl s_client -connect 91.250.114.x:443
# Eintrag in Logfile other_vhosts_access.log:
default-91_250_114_x:443 89.13.132.x - - [13/May/2018:06:13:49 +0200] "-" 408 1946 "-" "-"
vim /etc/apache2/apache2.conf
# --- # mod by richard 2018-05-13: # auskommentiert: #LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined # eingefuegt: LogFormat "%t %v:%p %h %l %u \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" fail2ban # end of mod # ---
other_vhosts_access.log
anpassen:vim /etc/apache2/conf-enabled/other-vhosts-access-log.conf
# --- # mod byrichard 2018-05-13 # auskommentiert: #CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined # eingefuegt: CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log fail2ban # end of mod # ---
service apache2 restart
service fail2ban restart
openssl s_client -connect [server ip]:443
tail -f /var/log/fail2ban.log # Ausgabe: 2018-05-13 07:46:56,021 fail2ban.filter [8425]: INFO [apache-408] Found 89.13.132.x
# vorher: default-91_250_114_x:443 89.13.132.x - - [13/May/2018:06:13:49 +0200] "-" 408 1946 "-" "-" # nachher: [13/May/2018:07:02:58 +0200] default-91_250_114_x:443 89.13.132.x - - "-" 408 1946 "-" "-"
Nachdem man das Logformat des apache2 geändert hat, kann logwatch genau diese Einträge nicht mehr interpretieren. Es fehlt dann in der Logwatch-Mail der Abschnitt - nicht so gut. Daher sollte man nun die Logwatch-Konfiguration anpassen.
# Zu ändernde Datei ins lokale Konfig-Verzeichnis kopieren: cp /usr/share/logwatch/default.conf/services/http.conf /etc/logwatch/conf/services/ # Ändern: # Alter Eintrag: #$LogFormat = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"|%h %l %u %t \"%r\" %>s %b|%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" # Anpassung/neuer Eintrag (Erweiterung um das oben beschriebene Format-Muster): $LogFormat = "%t %v:%p %h %l %u \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"|%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"|%h %l %u %t \"%r\" %>s %b|%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" # Um die lokale Konfig komplett zu machen, werden noch zwei Softlinks gesetzt: ln -s /usr/share/logwatch/scripts/services/http /etc/logwatch/scripts/services/http ln -s /usr/share/logwatch/default.conf/logfiles/http.conf /etc/logwatch/conf/logfiles/http.conf # Anschließend testen: /etc/cron.daily/00logwatch
--------------------- httpd Begin ------------------------ 0.06 MB transferred in 582 responses (1xx 0, 2xx 388, 3xx 18, 4xx 176, 5xx 0) 105 Content pages (0.01 MB), 6 Redirects (0.00 MB), 471 Other (0.05 MB) Attempts to use known hacks by 37 hosts were logged 82 time(s) from: x.21.191.213: 6 Time(s) ^null$ 6 Time(s) x.134.12.189: 6 Time(s) ^null$ 6 Time(s) x.94.66.238: 6 Time(s) ^null$ 6 Time(s) x.42.1.206: 5 Time(s) ^null$ 5 Time(s) ...
Eine lokale Konfiguration wird einer default-Konfig (in /usr/share/logwatch/…
) vorgezogen.
Quellen:
Ähnliche Themen im blog:
fail2ban, openssl, apache
IT-MÜCKE - Richard Mücke - Ihr zuverlässiger EDV-Partner aus Mannheim
home - beratung - it-mücke kms - kontakt - blog - richard mücke - zertifizierungen - impressum - datenschutzerklärung