Aanpassingen via de File Manager

Niveau: geavanceerd

Voordat we verdergaan, ook hier nogmaals de waarschuwing, voer onderstaande alleen door wanneer u zeker bent van wat u doet. In de meeste gevallen is een fout snel hersteld, maar enkele andere zaken zijn lastiger te herstellen.

Voor deze set aan instellingen is de zogenoemde File Manager van Plesk, cPanel of DirectAdmin nodig. Ook is het mogelijk om dit geregeld te krijgen via FTP,

Configuratie met .htaccess bestanden

Bestanden met de naam “.htaccess” stellen als het ware configuraties in voor de webserver. De webserver zal bijvoorbeeld niet accepteren dat er code wordt uitgevoerd vanuit een bepaalde map, en meer van dat soort zaken. In de kern zijn er drie belangrijke “.htaccess” te maken waarmee WordPress een stuk veiliger wordt gemaakt.

.htaccess [ / ]

Dit bestand staat in de zogenoemde root van uw website. Het is de plek waar ook bijvoorbeeld “index.php” en “wp-config.php” staat. Zeer waarschijnlijk bestaat het bestand “.htaccess” al met daarin toevoegingen van WordPress en Wordfence zelf. Wanneer het bestand nog niet bestaat, maak het dan gewoon aan. Voeg vervolgens onderstaande code in.

In de code worden hier twee elementen aangepakt. Eentje betreft het voorkomen van uitvoeren van code (php bestanden) in enkele kwetsbare mappen. En de twee betreft het voorkomen van toegang tot bestanden met daarin gevoelige informatie, zoals “wp-config.php”.

# BEGIN WordPress - 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>
# END

# BEGIN WordPress - Prevent access sensitive files
<FilesMatch "^.*(error_log|wp-config.php|php.ini|.[hH][tT][aApP].*)$">
Order deny,allow
Deny from all
</FilesMatch>
# END

.htaccess [ /wp-content/uploads/ | /wp-content/cache/ ]

Het is ook mogelijk dat het bestand “.htaccess” ook al bestaat in uw “/wp-contents/uploads/” map. Deze is dan aangemaakt door Wordfence. Zorg er in ieder geval voor dat het bestand bestaat in de mappen “/wp-contents/uploads/”, “/wp-includes/” en “/wp-contents/cache/”. Voeg daarin onderstaande toe om te voorkomen dat iemand een script uploadt en uitvoert via WordPress.

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

.htaccess [ /wp-includes/ ]

Net als voor de uploads en cache map dient het uitvoeren van scripts ook uitgezet te worden voor de “/wp-includes/” map. Maar daarbij dienen twee bestanden juist wel expliciet toegestaan te zijn. Dit bestand is dus iets groter.

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

# BEGIN Allow files
<Files wp-tinymce.php>
allow from all
</Files>
<Files ms-files.php>
allow from all
</Files>
# END

Configuratie via wp-config.php

Nu is het tijd om het bestand “wp-config.php” aan te passen. Hiermee wordt er voor gezorgd dat automatische updates aanstaan. Ook kan code niet aangepast kan worden via het dashboard. En als laatst dat verwijderde standaard plugins en thema’s niet opnieuw geïnstalleerd worden na een upgrade.

/** Turn on automatic updates */
define('AUTOMATIC_UPDATER_DISABLED', false);
define('WP_AUTO_UPDATE_CORE', true); // When using WordPress Toolkit, this setting needs to be set to false

/** Disable Editing in Dashboard */
define('DISALLOW_FILE_EDIT', true);

/** Disable script concatenating */
define('CONCATENATE_SCRIPTS', false );

/** Prevent re-installation default themes and plugins after upgrade */
define( 'CORE_UPGRADE_SKIP_NEW_BUNDLED', true );

Rechten op bestanden en mappen

Hoe werken rechten

Als laatste stap pakken we de rechten op bestanden en mappen van WordPress aan. Dit wordt aan de hand van drie getallen weergegeven. De cijfers 777 betekent alle rechten voor mappen. En de cijfers 666 betekent alle rechten voor bestanden. Het eerste getal geldt voor de eigenaar van het bestand. Het tweede getal staat voor de groep waarvan de eigenaar lid is. En het laatste getal geldt voor iedereen.

Wanneer alleen de eigenaar en de groep rechten mogen hebben op een map dan zou dat dus 770 worden. Rechten worden onderverdeeld in drie categorieën. De eerste betreft leesrechten (r, 4 punten). Het tweede getal betreft schrijfrechten (w, 2 punten) en het laatste getal uitvoerrechten (x, 1 punt). En als je dan 4 + 2 + 1 uitrekent dan is dat 6. Wanneer het een map is dan dient er nog 1 bij opgeteld worden, wat het een totaal van 7 maakt.

Rechten controleren

In het kort geldt dat voor mappen de volgende rechten ingesteld dienen te zijn: 755 rwxr-xr-x. Dit betekent alle rechten voor de eigenaar, lees en uitvoerrechten voor de groepsleden en de rest. Voor bestanden geldt de rechten: 644 rwxr-xr-x. En dat zijn dezelfde rechten als voor de mappen.

In principe zouden alle bestanden en mappen goed moeten staan, maar het kan het waard zijn om dat te controleren. Het instellen van deze rechten kan via de File Manager. Klik een bestand aan en klik op “Change Permissions” of een optie van gelijksoortige aard. Zorg er voor dat er 755 (map) of 644 (bestand) ingevuld is.

Rechten aanpassen

Er is één bestand dat echter afwijkt van bovenstaande, en dat is het bestand “wp-config.php”. Deze dient de rechten 600 (rwx——) te krijgen, en dit is niet standaard zo ingesteld. De aanpassing zorgt ervoor dat alleen de WordPress installatie in dat bestand kan kijken. Elk ander account op de server kan niet in dat bestand kijken.


Nu is het inmiddels tijd voor de afsluiting. De belangrijkste zaken zijn allemaal de revue gepasseerd. Lees gauw verder op de volgende pagina.