Met al de berichten die je tegenwoordig leest over sites die gehackt zijn is het goed om hier eens goed over na te denken en je site te beveiligen. In principe kun je met een paar simple maatregelen het de hacker al een stuk lastiger maken zodat deze waarschijnlijk snel je site overslaat en bij een andere site gaat proberen. Hieronder leg ik uit welke maatregelen ik o.a. heb genomen.

Deze blog draait onder WordPress op een Debian Linux systeem. Dingen waar je dan aan moet denken zijn:

  1. Correcte ‘file permissions’ van alle je files van je site
  2. Goed afgestelde ‘.htaccess’ file
  3. Gebruik van een niet-standaard inlog naam voor je ‘administratie’ window van je site
  4. Stevig en lang wachtwoord van je wordpress-database

De eerste 3 punten kun je heel eenvoudig laten verzorgen door de iThemes Security plugin in WordPress zelf. Met een paar eenvoudige klikken controleert deze je site en vraagt om aanpassingen te maken waar nodig. De gratis versie van deze plugin is in principe voldoende voor de meeste mensen.




Als je in het verleden voor een niet zo lang en/of stevig wachtwoord heb gekozen voor je database dan kun je dit beter nu veranderen. Dit gaat heel eenvoudig door de volgende stappen uit te voeren op de command-line:

mysql -u root -p

mysql>use <wordpress database>;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>set password for '<wordpress gebruikers-naam>@'localhost' = PASSWORD('je nieuw paswoord');
Qeury OK, 0 rows affected (0.00 sec)

Ik heb zelf gebruikt gemaakt van een Paswoord Generator om een lekker vreemd en lang wachtwoord te generen. Vergeet niet om je nieuwe paswoord in te stellen bij DB_PASSWORD in je ‘wp-config.php’ file

Om het de aanvaller zelfs nog moeilijker te maken kun je ook nog je wordpress database-naam en de gebruiker van deze database veranderen in iets vreemd. Dit doe je heel handig met phpMyAdmin. je moet nu 3 stappen doorlopen:

  1. Veranderen van de database-naam
  2. Toevoegen van gebruiker aan de nieuwe database
  3. Aanpassen ‘wp-config.php’ bestand.

Het veranderen van de database-naam doe je door de database te selecteren en vervolgens ‘Operations’ bovenaan te kiezen:




Hierna moet je ook nog een nieuwe user toevoegen aan deze nieuwe database. Dit doe je weer op de command-line:

mysql -u root -p
mysql>grant all privileges on <wordpress database>.* to "<nieuwe gebruikers-naam>"@"localhost" identified by "<database paswoord>";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Tenslotte moet je nog je ‘wp-config.php’ file aanpassen voor de waarden van DB_NAME en DB_USER.

Voorkomen van browsen van je directory-structuur
Om te voorkomen dat iemand de structuur van je site kan browsen in een web-browser moet je de regel ‘Options -Indexes’ toevoegen aan het einde van je WordPress entry in de .htaccess file:

# BEGIN WordPress
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]

  # add a trailing slash to /wp-admin
  RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^ - [L]
  RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
  RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
  RewriteRule . index.php [L]

  # Disable browsing directories
  Options -Indexes
</IfModule>
# END WordPress

Zorg er verder altijd voor dat je meest actuele versie van WordPress draait en je Plugins goed up-to-date houdt. Kijk vooral kritisch naar je Plugins of deze nog actief worden onderhouden. Als deze al meer dan 2 jaar geen update meer heeft gehad, dan is deze in principe verdacht en kan deze mogelijk een veiligheidslek opleveren.