Koti » WordPressin suojaaminen

WordPressin suojaaminen

WordPress on yksi maailman tunnetuimmista ja käytetyimmistä sisällönhallintaohjelmistoista, joten se on yksi yleisisimmistä kohteista, mihin rikolliset yrittävät murtautua verkossa. Yleensä sivustoihin istutetaan haitallista koodia esimerkiksi mainoksia, uudelleenohjaus scriptejä, sähköpostiroskaposti robotteja tai jopa nykyisin kryptovaluutan mainaus scriptejä.

Olen koonut tähän yleisesti mitä suosittelen jokaiseen WordPress-asennukseen tehtäväksi.

Varmuuskopioi säännöllisesti

Tärkein ensimmäiseksi, eli varmuuskopiointi. Varmuuskopioimalla WordPress-asennuksesi tietokantoineen säännöllisesti, esimerkiksi viikottain, helpottaa paljon sivustosi palautusta esimerkiksi haittaohjelman hyökkäyksen jälkeen. Yleensä näiden hyökkäysten jälkeen sivustojen palauttaminen on haastavaa ilman varmuuskopiointia.

Varmuuskopiointi kannattaa tallentaa aina ulkoiselle palvelimelle, minne haittaohjelmalla ei ole suoraa yhteyttä. Myös oman työaseman kiintolevy on hyvä kohde.

Käyttöoikeudet kuntoon

Varmista nyt että WordPress-tunnuksesi ja salasanasi eivät ole perus ”admin” ja ”admin” tai jotakin sinnepäin yhdistelmä. Näillä WordPressiin pääsee todella helposti kirjautumaan sisälle.

Poista WordPressissä rekisteröinti-ominaisuus pois käytöstä. Sen saa poistettua käytöstä kirjautumalla WordPressin hallintapaneliin -> Asetukset sivulla.

Lisää kuvavarmenne kirjautumisruutuun estääksesi ”Brute Force”-yritykset eli salasanojen arvaamisen. WordPressille löytyy useita laajennuksia tätä varten.

Ota sivustolle HTTPS-käyttöön oletuksena

Nykyisin on saatavilla ilmainen HTTPS eli SSL/TLS-salaus, jonka avulla suojaat kaikkien vierailijoiden liikenne sivustollesi. Tässä ei ole koskaan haittaa ja parantaa tietoturvaa ja lisäksi myös sijoitusta hakukoneissa.

HTTPS:n on useimmilla palveluntarjoajilla maksutonta ja käyttää Let’s Encrypt SSL-sertifikaattia. Suosittelen kysymään omalta palveluntarjoajaltasi apua kuinka ottaa tämän käyttöön.

Uudelleenohjaus HTTPS:n onnistuu määrittämällä seuraavanlaisen konfiguraation .htaccess tiedostoon


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# End WordPress
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

view raw

.htaccess

hosted with ❤ by GitHub

Estä pääsy hakemistoihin ja tiedostoihin

Pienennetään hyökkäyspintalaa rajoittamalla pääsyn PHP-tiedostoihin. Mikäli jossakin lisäosissa olisikin takaportti niin ei siihen olisi pääsyä suoraan verkon kautta.

  • Estä pääsy palvelimen tai sivuston lokitiedostoihin
  • PHP-virheilmoitukset ovat pois näkyvistä
  • wp-config.php varmuuskopioita ei ole julkisesti nähtävillä mahdollisesti vuotamassa tietokannan tunnuksia
  • Hakemiston selaminen (DirectoryBrowsing) on estetty
  • XML-RPC suositellaan ottamaan pois käytöstä mikäli et käytä Jetpack tai WordPress puhelinsovellusta. Tämä on yleinen mihin WordPressiin usein hyökätään verkon puolelta.

Esimerkki konfiguraatio Apache2 (.htaccess):


Options -Indexes
<files xmlrpc.php>
order allow,deny
deny from all
</files>
<files wp-config.php>
order allow,deny
deny from all
</files>
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
</IfModule>
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# End WordPress
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

view raw

.htaccess

hosted with ❤ by GitHub

Lisää lisäksi .htaccess tiedostoihin wp-content/upload, wp-content ja wp-include hakemistoihin


<Files ~ "\.ph(?:p[345]?|t|tml)$">
deny from all
</Files>

view raw

.htaccess

hosted with ❤ by GitHub

Esimerkki konfiguraatiot Nginx-palvelimelle:


location = ~* /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}
location = ~* /wp-config.php {
deny all;
log_not_found off;
}
location ~* /wp-includes/.*.php$ {
deny all;
access_log off;
log_not_found off;
}
location ~* /wp-content/.*.php$ {
deny all;
access_log off;
log_not_found off;
}
location ~* /(?:uploads|files)/.*.php$ {
deny all;
access_log off;
log_not_found off;
}

view raw

nginx.conf

hosted with ❤ by GitHub

Päivitä WordPress, teemat ja laajennukset

Päivittämistä ei voi koskaan korostaa liikaa, koska olemmehan kaikki laiskoja ja jätämme mielellämme päivittämättä. Päivittämällä kuitenkin WordPress-sivustosi, teemat ja laajennukset kuukausittaisittain vähennät riskejä tietomurroille. Mikäli muokkaat teemoja, käytäthän lapsiteemoja (Child Theme), joka tekee päivittämisestä helpompaa. Älä koskaan muokkaa laajennuksien tai teemojen koodia suoraan.

Mikäli laajennusta tai teemalle ei tule päivitystä, niin suosittelemme etsimään mahdollisesti toinen vastaavanlainen laajennus tai teema. Välillä kehittäjät hylkäävät vanhoja laajennuksia tai teemoja, joita ei jatkossa päivitetä.

Poista ylimääräiset ja epämääräiset teemat ja laajennukset

Kaikki turha laajennus ja teema, joita ei ole käytössä hidastavat vain WordPressin toimintaa ja ovat tietoturvariski, koska mitä enemmän elementtejä niin sitä enemmän haavoituvuuksia löytyy.

Piilota version tiedot

Suosittelemme piilottamaan WordPressistä versiotiedot, jotta hyökkääjällä on mahdollisimman vähän tietoa WordPressistäsi. Näin hyökkääjä ei tiedä vaikka käytössäsi olisikin vanhempi WordPress-versio.

Lisää tämä teemasi functions.php tiedostoon:


<?php
remove_action('wp_head', 'wp_generator');
function wpbeginner_remove_version() {
return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');

view raw

functions.php

hosted with ❤ by GitHub

Asenna Wordfence-laajennus

Wordfence on yleisesti käytetty WordPress-laajennus parantamaan sivustoiden tietoturvaa. Se tunnistaa useimmat yleisimmät haitalliset ohjelmat sekä hyökkäystavat. Lisäksi tämä laajennus automaattisesti tiedottaa mahdollisista tietomurto yrityksistä ja myöskin siitä että laajennukset ovat vanhentuneet. Yksi paras ominaisuus on laajennuksessa tiedostojen vertaaminen, eli tämän avulla on helpompaa löytää haitallista koodia WordPress-sivuston ytimestä.

Avainsanat:

2 kommenttia artikkeliin “WordPressin suojaaminen”

  1. Tää on mahatava postuas, kiitos! Koska WordPress on tosi helppo, monet rakentavat verkkosivut käyttämällä sitä, mutta se on tosi haavoittuva iskuille. Mikä on sinun mielestäsi hyvä varmuuskopiointi ohjelma?

    1. Hei, kiitos että pidät artikkelistani. Yleensä WordPress on altis iskuille kyllä, mutta yleisesti syynä murroille on päivittämätön asennus tai laajennuksessa / teemassa oleva tietoturvareikä.

      WordPressissä on tärkeä tehdä tiedosto + tietokannasta varmuuskopiot. Käytännössä tiedostojen kopiointi (+ mielellään pakkaus niin säästää tilaa) ja tietokannan exporttaus omalle koneellekin on riittävä keino. Yleensä webhotellipalveluissa käyttävässä cPanelissa on valmiina varmuuskopiointi FTP-palvelimelle, jota itse käyttänyt paljon tai sitten olen scriptillä tehnyt varmuuskopioinnin.

Kommentoi