Security Blog
Security Blog
Posted By Gregory

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

  1. Verplaats de map met uploads een niveau hoger, 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 plug- ins naar mod (of iets dergelijks, wat je maar wilt).
  5. 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.

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

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

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

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

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


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.