Pojawiły się nowe ataki na WordPressa na Apache2 poprzez cron, xmlrpc czy wp-login.
Zajmiemy się zabezpieczeniem przed tymi atakami przy użyciu Fail2Ban.

Na początek ataki przez plik wp-cron.php

Jeśli w pliku logów /var/log/apache2/access.log
znajdują się podobne wpisy:
POST /wp-cron.php?doing_wp_cron=1482585007.5419580936431884765625 HTTP/1.1
może to oznaczać właśnie atak.

Jeśli nie mamy zainstalowanego Fail2Ban instalujemy go:
apt-get install fail2ban

Przechodzimy do pliku /etc/fail2ban/jail.config
i dodajemy na końcu pliku:

[cron]
enabled = true
filter = cron
action = iptables[name=cron, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
bantime = 43600
maxretry = 2

Tworzymy plik: /etc/fail2ban/filter.d/cron.conf
i dodajemy:

[Definition]
failregex = ^<HOST> .*POST .*wp-cron\.php.*
ignoreregex =

Analogicznie robimy dla xmlrpc i wp-login:

Edytujemy znów plik /etc/fail2ban/jail.config
i dodajemy na końcu:

[xmlrpc]
enabled = true
filter = xmlrpc
action = iptables[name=xmlrpc, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
bantime = 43600
maxretry = 2
[wp-login]
enabled = true
filter = wp-login
action = iptables[name=xmlrpc, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
bantime = 43600
maxretry = 2

Tworzymy plik /etc/fail2ban/filter.d/xmlrpc.conf
i dodajemy zawartość:

[Definition]
failregex = ^<HOST> .*POST .*xmlrpc\.php.*
ignoreregex =

Tworzymy plik /etc/fail2ban/filter.d/wp-login.conf
i dodajemy zawartość:

[Definition]
failregex = ^<HOST> .*POST .*wp-login\.php.*
ignoreregex =

Restartujemy service fail2ban restart
Sprawdzamy status tail -f /var/log/fail2ban.log

PODZIEL SIĘ