Hoe kan ik mijn WordPress website beveiligen (deel 2)

Hoe kan ik mijn WordPress website beveiligen? (deel 2)

Beveiliging van uw WordPress website is zeer belangrijk. Al is het alleen al om te voorkomen dat er malafide code wordt geplaatst. In deze blogpost gaan we een stap verder en geven we meer tips om het beveiligingsniveau te verhogen.

 

Voor sommige tips is toegang tot de configuratie van de webserver nodig; deze tips kunt u alleen gebruiken wanneer u een virtual private server of dedicated server hebt.

In deze voorbeelden hebben we gebruik gemaakt van Nginx maar deze zijn ook met kleine aanpassingen te gebruiken op Apache.

 

Hernoem de gebruiker “admin” van WordPress

Deze wijziging zorgt ervoor dat de standaard gebruiker van WordPress hernoemd wordt. De meeste hackpogingen zijn logins met de gebruikersnaam “admin”. Door middel van een script wordt op korte tijd getracht om verschillende wachtwoorden te proberen in combinatie met deze gebruikersnaam (een zogeheten “brute-force attack”). Door te zorgen dat die gebruiker niet meer bestaat in WordPress worden deze zogenaamde aanvallen nutteloos.

 

Het wijzigen van de admin-gebruiker in WordPress kunt u best via PhpMyAdmin doen. Log in op uw PhpMyAdmin. Selecteer vervolgens de database van uw WordPress-website.

Selecteer de tabel “wp_users” :

wijzigen-gebruikersnaam-wordpress

Wijzig de gebruikersnaam naar een andere naam die uzelf mag kiezen en niet voor de hand ligt.

 

Geef zo min mogelijk informatie over uw website

Dit bedoelen we natuurlijk in de technische zin. Een website die gebouwd is in WordPress geeft dat in iedere pagina weer :

 

voorbeeld-gegenereerde-html-code-vanuit-wordpress

 

 

 

 

 

Dit maakt het voor een mogelijke aanvaller zeer eenvoudig. Na het opvragen van de eerste pagina van uw website is al bekend welk CMS (Content Management Systeem) u gebruikt en welke versie u draait. Zo wordt het opzoeken van de lekken wel heel makkelijk voor een potentiële aanvaller.

 

Wij adviseren dan ook om te zorgen dat WordPress het versienummer niet meer weergeeft.

Ga hiervoor naar “weergave” gevolgd door “editor” en kies in de lijst met “templates” het bestand functions.php. Voeg daar onderstaande code aan toe :

// Custom: Remove ‘generator’ meta tag

function wp_remove_version() {

return ”;

}

add_filter(‘the_generator’, ‘wp_remove_version’);

 

Bewaar vervolgens het bestand. Indien u een caching-plugin gebruikt zult u nog wel de cache moeten legen om de wijzigingen actief te laten worden. Hiervoor heeft de plugin vaak een aparte optie bijvoorbeeld “cache legen” of “cache opnieuw opbouwen”.

 

Beperk de toegang tot het admin-deel.

Op eenvoudige wijze is middels het aanpassen van de Nginx-configuratie mogelijk om de toegang tot uw admin-panel te beperken zodat alleen uzelf en uw webbouwer daar toegang to hebben. Plaats onderstaande in uw Nginx-configuratie :

 

location /wp-admin/ {

               allow x.x.x.x;

               allow y.y.y.y;

               # drop rest of the world

               deny all;

       }

Na deze aanpassing is een herstart van nginx wel noodzakelijk. Met deze eenvoudige oplossing is toegang tot de wp-admin/directory alleen mogelijk vanaf de door u opgegeven IP-adressen.

 

Beperk de toegang tot tekstbestanden

Buiten het versienummer wat WordPress in de HTML-code zet zijn er ook diverse bestanden te vinden waarin informatie staat die best niet toegankelijk kan zijn. Denk hierbij aan de licentie-bestanden (license.txt) waar ook uitgehaald kan worden welk content management systeem gebruikt kan worden. Ook hebben veel plugins dergelijke bestanden waar die informatie uit gehaald kan worden.

 

Neem onderstaande op in de Nginx-configuratie :

# Deny access to any txt-files to be processed

location ~* \.txt {

               deny all;

}

Na deze aanpassing is een herstart van nginx noodzakelijk.

 

Voorkom dat php-bestanden in de uploads toegankelijk zijn

Mocht er via een plugin toch de mogelijkheid geweest zijn om php-code te uploaden naar de wp-uploads dan is ook dat af te schermen :

# Deny access to any files with a .php extension in the uploads directory

location ~* /(?:uploads)/.*\.php$ {

               deny all;

}

Ook na deze aanpassing is een herstart van nginx noodzakelijk.

Deze veiligheidsaanpassingen zijn standaard in ons WordPress hosting pakket. Gebruikt u ook WordPress? Neem contact op met ons om ook uw website bij ons te gaan hosten.

Tags: