Verander uw WordPress in Fort Knox
Hoe je van WordPress een beschermd fort zoals Fort Knox kunt maken
English version: Turn your WordPress into Fort Knox
In dit artikel wordt ervan uitgegaan dat we een kogelvrij beveiligde website willen, mogelijk gemaakt door WordPress. Het is niet noodzakelijk dat u alle volgende stappen woord voor woord en punt voor punt precies zo uitvoert als beschreven. Maar ik raad het wel aan als je je eigen Fort Knox wilt creëren.
Sommige van de volgende stappen kunnen een oorzaak zijn van incompatibiliteitsproblemen met enkele vreemde plug-ins die proberen bestanden rechtstreeks in de WordPress-mappen te wijzigen. Ik raad aan om dit soort 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 die op uw site zijn 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 u geen shell-toegang met root-rechten heeft, kunt u niets nuttigs doen om een echt beveiligde website te maken. Er is geen enkele plug-in die WordPress en de bestanden in de mappen op PRO-niveau kan beschermen. Alle beveiligingsplug-ins hebben hetzelfde privilegeniveau (machtigingen) als hackers en bots. Geen uitzondering. Als een beveiligingsplug-in enkele wijzigingen heeft aangebracht in de bestanden van uw website om deze te beschermen, kan elke hacker of kwaadaardige 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 PHP- of .htaccess-bestanden in de WordPress-mappen en deze proberen te wijzigen
Stap een. WordPress installeren
Gebruik niet het standaardvoorvoegsel wp_
voor databasetabellen. Gebruik in plaats daarvan een paar of drie alfabetsymbolen. Sommige WordPress-specifieke aanvallen en aanvallers gaan ervan uit dat het tabelvoorvoegsel wp_
is. Door het voorvoegsel te wijzigen, kunnen we sommige SQL-injectieaanvallen blokkeren.
Stap twee. Het verharden van de website op WordPress-niveau
- Verplaats de uploadmap één niveau omhoog, 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 met plug-ins naar mod (of iets dergelijks, wat je maar wilt).
- Voeg de volgende regels toe aan het begin van het wp-config.php -bestand, vergeet niet media , content , mod te wijzigen in de werkelijke waarden die u eerder hebt gekozen .
definieer('AUTOMATIC_UPDATER_DISABLED', waar); // ja, het is veilig om het handmatig te doen
definieer('DISALLOW_FILE_EDIT', waar); // we staan nooit toe dat iemand uw bestanden aanraakt
definieer('DISALLOW_FILE_MODS', waar); // ja, het is veilig om het handmatig te doen
definieer('FS_METHOD', 'direct'); // geen FTP natuurlijk
definieer('WP_HTTP_BLOCK_EXTERNAL', waar);
definiëren('UPLOADS', ' media '); // we hebben de uploads hernoemd en naar een hoger niveau verplaatst
definiëren('WP_CONTENT_DIR', '/pad/naar/wordpress/map/ inhoud '); // geen hostnaam, geen slash
definiëren('WP_CONTENT_URL', ' http://example.com/content ');
definiëren('WP_PLUGIN_DIR', '/pad/naar/wordpress/map/ content / mod '); // geen hostnaam, geen slash
definiëren( ' WP_PLUGIN_URL', ' http://example.com/content/mod ');
ini_set('weergave_fouten',0); // schakel de weergave van PHP-fouten op de front-end uit
Stap drie. Wijzig de standaardcookienaam.
Voeg deze regels toe aan het begin van het wp-config.php -bestand
definiëren('USER_COOKIE', 'mijn_gebruiker_cookie'); // verander het in iets anders
definiëren('PASS_COOKIE', 'mijn_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
definiëren('LOGGED_IN_COOKIE', 'mijn_gelogde_cookie'); // verander het in iets anders
definiëren('TEST_COOKIE', 'mijn_test_cookie'); // verander het in iets anders
Stap vier. Installeer een beveiligingsplug-in onmiddellijk nadat WordPress is geïnstalleerd
Bescherm uw inlogpagina met WP Cerber Security . Zelfs met de bovenstaande beveiligingsstappen zullen hackers proberen brute force-aanvallen (inlogpogingen) toe te passen om de deur op uw 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 je een server met Apache als http-server gebruikt. 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 de volgende instructie erin. Dat voorkomt dat de website geüploade kwaadaardige PHP-code uitvoert.
php_flag-engine uitgeschakeld
Opmerking: het Apache-configuratiebestand moet de richtlijn
AllowOverride Options
bevatten voor uw uploadmap of een van de bovenliggende mappen om deze richtlijn te laten werken. - Voor de gehele websitemap (/pad/naar/wordpress/dir) wijzigt u de eigenaar en machtigingen voor alle bestanden. Om dat te doen, voert u de volgende opdrachten uit in de shell.
zoek /pad/naar/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 uploadmap (/pad/naar/wordpress/dir/ media ) moeten we speciale machtigingen instellen. Laten we dat doen met behulp van exec-opdrachten in de shell
zoek /pad/naar/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 beveiligen.
chown cerber:root /pad/naar/wordpress/dir/.htaccess
chmod 644 /pad/naar/wordpress/dir/.htaccess - Verplaats het wp-config.php -bestand naar de map boven uw WordPress-installatiemap.
Stap zes. Het verharden van de website op NGINX-serverniveau
Lees hier: WordPress verharden met WP Cerber en NGINX
Stap zeven. Het verharden van de website met Fail2Ban
Lees hier: Hoe WordPress te beschermen met Fail2Ban