WordPress on erittäin suosittu tapa toteuttaa websivustoja. Suosio takaa myös sen, että WordPress on jokaisen pahantahtoisen botin kohteena, kun etsitään aukkopaikkoja. Tilannetta ei yhtään helpota sekään, että WordPress-asennukset ovat usein useista lisäosista rakennettuja palapelejä tai korttitaloja, jotka ovat juuri niin vahvoja kuin rakennelman heikoin osa on. Siksi ylimääräiset ja käyttämättömät pluginit ja teemat pitäisi aina muistaa poistaa. Jos niiden jokin PHP-koodi vuotaa, niin se vuotaa vaikka teemaa tai lisäosaa ei olisikaan aktivoitu. Aivan yhtä tärkeää on muistaa hoitaa päivitykset ja kääntäen: jos päivityksiä ei tule edes sen vertaa, että voimassaoleva WordPressin versio kuitataan, niin kannattaa etsiä korvaava.
Suoria ja tunnettuja hyökkäyksiä vastaan voi suojautua. Ne eivät yleensä saa mitään aikaiseksi, koska aukot on jo aikoja sitten paikattu, mutta ne kuormittavat turhaan. Lisäksi vastaan voi tulla uusia aukkoja, joita päästään hyödyntämään vanhojen tuttujen kautta. Siksi esimerkiksi XMLRPC olisi estettävä, jos sitä ei ehdottomasti tarvitse johonkin – suurin osa ei tarvitse.
Jos käytässä on Nginx ja Fail2ban, niin ekstrasuojaa saa kohtuullisen helpollakin.
Nginx
Avaa Nginxin conf:
nano /etc/nginx/nginx.conf
Lisää uusi logi html
blokkiin:
log_format blocked '$time_local: Blocked request from $remote_addr $request';
Tallenna ja poistu.
Avaa virtual hostin conf-tiedosto:
nano /etc/nginx/sites-available/example.com.conf
Lisää server
lohkoon tämä:
Käynnistä Nginx uudelleen:
systemctl restart nginx
Fail2ban
Avaa jail.local
:
nano /etc/fail2ban/jail.local
Lisää sinne tämä, voit muokata bantimen ja findtimen itsellesi sopivammaksi:
[nginx-blocked] enabled = true port = 80,443 filter = nginx-blocked logpath = /var/log/nginx/blocked.log bantime = 3600 maxretry = 3 backend = auto findtime = 86400 banaction = iptables-multiport protocol = tcp chain = INPUT
Tehdään uusi suodatin:
nano /etc/fail2ban/filter.d/nginx-blocked.conf
Lisää sinne tämä:
[Definition] failregex = ^.* Blocked request from <HOST>.*$ ignoreregex =
Lataa Fail2ban uudelleen:
fail2ban-client reload
Jos ei toimi, niin tarkasta, että filterin regex ja login merkinnät sopivat toisiinsa.