Verander uw WordPress in Fort Knox
Hoe WordPress om te zetten in een beschermd fort zoals Fort Knox
English version: Turn your WordPress into Fort Knox
Dit artikel gaat ervan uit dat we een kogelvrije beveiligde website willen hebben, mogelijk gemaakt door WordPress. Het is niet noodzakelijk om alle volgende stappen woord voor woord en punt voor punt precies uit te voeren zoals beschreven. Maar ik raad het wel aan als je je eigen Fort Knox wilt maken.
Sommige van de volgende stappen kunnen een oorzaak zijn van enkele incompatibiliteitsproblemen met enkele rare plug-ins die bestanden rechtstreeks in de WordPress-mappen proberen te wijzigen. Ik raad aan om dergelijke plug-ins te negeren, omdat het gebruik ervan onmiddellijk of in de toekomst tot veel problemen en beveiligingsproblemen kan leiden, wanneer hackers gaten in de plug-ins of het thema dat op uw site is geïnstalleerd, bestuderen. Ik heb dit artikel gemaakt in de hoop dat het nuttig zal zijn, maar zonder enige garantie.
Let op: dit artikel is niet van toepassing als je gebruik maakt van shared hosting. U moet op zijn minst een door VPS gehoste site hebben.
Vereisten: root-toegang tot de Linux-server waarop uw website wordt gehost. Als je geen shell-toegang met rootrechten hebt, kun je niets nuttigs doen om een echt beveiligde website te maken. Er is geen enkele plug-in die WordPress en bestanden in zijn mappen op PRO-niveau kan beschermen. Alle beveiligingsplug-ins hebben hetzelfde niveau van rechten (toestemmingen) als hackers en bots. Geen uitzondering. Als een beveiligingsplug-in enkele wijzigingen heeft aangebracht in de bestanden van uw website om ze te beschermen, kan elke hacker of kwaadwillende code deze wijzigingen ongedaan maken of de beveiliging verwijderen.
Hier zijn enkele belangrijke punten over mijn aanpak
- Alle codebestanden (PHP-code) en alle .htaccess-bestanden moeten tegen schrijven zijn beveiligd. Geen uitzondering
- We moeten alle standaardinstellingen (map, cookies, inlogpad, andere oriëntatiepunten) wijzigen in andere waarden
- We mogen geen plug-ins of thema's gebruiken die werken met en proberen PHP- of .htaccess-bestanden in de WordPress-mappen te wijzigen
Stap een. WordPress installeren
Gebruik niet het standaardvoorvoegsel wp_
voor databasetabellen. Gebruik in plaats daarvan een paar of drie alfabetische symbolen. Sommige WordPress-specifieke aanvallen en aanvallers gaan ervan uit dat het wp_
is. Door het voorvoegsel te wijzigen, kunnen we sommige SQL-injectieaanvallen blokkeren.
Stap twee. Harden van de website op WordPress niveau
- Verplaats de map met uploads een niveau hoger, van de binnenkant van de map /wp-content/ naar de hoofdmap van uw WordPress-installatiemap.
- Hernoem de uploadmap naar media (of iets dergelijks, wat je maar wilt).
- Hernoem de map wp-content naar content (of iets dergelijks, wat je maar wilt).
- Hernoem de map plug- ins naar mod (of iets dergelijks, wat je maar wilt).
- Voeg de volgende regels toe aan het begin van het bestand wp-config.php , vergeet niet om media , content , mod te wijzigen in werkelijke waarden die u eerder hebt gekozen .
definiëren('AUTOMATIC_UPDATER_DISABLED', waar); // ja, het is veilig om dit handmatig te doen
definiëren('DISALLOW_FILE_EDIT', waar); // we staan nooit toe dat iemand uw bestanden aanraakt
definiëren('DISALLOW_FILE_MODS', waar); // ja, het is veilig om dit handmatig te doen
definiëren('FS_METHOD', 'direct'); // natuurlijk geen FTP
definiëren('WP_HTTP_BLOCK_EXTERNAL', waar);
define('UPLOADS', ' media '); // we hebben uploads hernoemd en naar een hoger niveau verplaatst
define('WP_CONTENT_DIR', '/path/to/wordpress/dir/ content '); // geen hostnaam, geen schuine streep
define('WP_CONTENT_URL', 'http://example.com/ content ');
define('WP_PLUGIN_DIR', '/pad/naar/wordpress/dir/ content / mod '); // geen hostnaam, geen schuine streep
define('WP_PLUGIN_URL', 'http://example.com/ content / mod ');
ini_set('display_errors',0); // Schakel weergave PHP-fouten op de front-end uit
Stap drie. Wijzig de standaard cookienaam.
Voeg deze regels toe aan het begin van het bestand wp-config.php
definiëren('USER_COOKIE', 'mijn_gebruiker_cookie'); // verander het in iets anders
define('PASS_COOKIE', 'my_pass_cookie'); // verander het in iets anders
definiëren('AUTH_COOKIE', 'mijn_auth_cookie'); // verander het in iets anders
definiëren('SECURE_AUTH_COOKIE', 'mijn_sec_cookie'); // verander het in iets anders
define('LOGGED_IN_COOKIE', 'mijn_gelogde_cookie'); // verander het in iets anders
define('TEST_COOKIE', 'mijn_test_cookie'); // verander het in iets anders
Stap vier. Installeer direct na de installatie van WordPress een beveiligingsplugin
Bescherm uw inlogpagina met WP Cerber Security . Zelfs met bovenstaande beveiligingsstappen zullen hackers proberen brute force-aanvallen (inlogpogingen) toe te passen om de deur naar je WordPress-website te kraken. Verberg en sluit deze deur met WP Cerber.
Stap vijf. Het verharden van de website op serverniveau.
Bij deze stap ga ik ervan uit dat u een server gebruikt met Apache als http-server. We moeten de eigenaar van alle WordPress-bestanden veranderen, inclusief plug-ins en thema's. Standaard is deze gebruiker apache . We moeten het wijzigen in een andere gebruiker, die u eerder voor dit doel heeft aangemaakt. Laten we zeggen dat deze gebruiker cerber is.
- Plaats het .htaccess-bestand in de mediamap (uw nieuwe uploadmap) met daarin de volgende opdracht. Dat voorkomt dat de website geüploade kwaadaardige PHP-code uitvoert.
php_flag-engine uit
Opmerking: het Apache-configuratiebestand moet de
AllowOverride Options
bevatten voor uw uploadmap of een van de bovenliggende mappen om deze instructie te laten werken. - Wijzig voor de hele websitedirectory (/pad/naar/wordpress/dir) de eigenaar en machtigingen voor alle bestanden. Voer hiervoor de volgende opdrachten uit in de shell.
vind /path/to/wordpress/dir -exec chown cerber:root {} +
zoek /pad/naar/wordpress/dir -type d -exec chmod 755 {} +
zoek /pad/naar/wordpress/dir -type f -exec chmod 644 {} + - Voor de map met uploads (/path/to/wordpress/dir/ media ) moeten we speciale machtigingen instellen. Laten we dat doen met behulp van exec-opdrachten in de shell
vind /path/to/wordpress/dir/ media -exec chown cerber:apache {} +
zoek /pad/naar/wordpress/dir/ media -type d -exec chmod 775 {} +
zoek /pad/naar/wordpress/dir/ media -type f -exec chmod 664 {} + - Stel de permalink-structuur in de WordPress-instellingen in en wijzig vervolgens de toestemming voor het .htaccess -bestand om het tegen schrijven te beschermen.
chown cerber:root /pad/naar/wordpress/dir/.htaccess
chmod 644 /pad/naar/wordpress/dir/.htaccess - Verplaats het bestand wp-config.php naar de map boven uw WordPress-installatiemap.
Stap zes. Hardening van de website op NGINX-serverniveau
Lees hier: WordPress verharden met WP Cerber en NGINX
Stap zeven. De website verharden met Fail2Ban
Lees hier: Hoe WordPress te beschermen met Fail2Ban