Security Blog
Security Blog
Posted By Gregory

Verander uw WordPress in Fort Knox

How to turn WordPress into a protected fortress like Fort Knox


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

  1. Verplaats de uploadmap één niveau omhoog, van de binnenkant van de map /wp-content/ naar de hoofdmap van uw WordPress-installatiemap.
  2. Hernoem de uploadmap naar media (of iets dergelijks, wat je maar wilt).
  3. Hernoem de map wp-content naar content (of iets dergelijks, wat je maar wilt).
  4. Hernoem de map met plug-ins naar mod (of iets dergelijks, wat je maar wilt).
  5. 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.

  1. 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.

  2. 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 {} +

  3. 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 {} +

  4. 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

  5. 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


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.