Security Blog
Security Blog
Posted By Gregory

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


Dit artikel gaat ervan uit dat we een kogelvrij beschermde website willen die aangestuurd wordt door WordPress. Het is niet per se nodig 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 incompatibiliteitsproblemen met vreemde plugins die proberen bestanden rechtstreeks in de WordPress-mappen te wijzigen. Ik raad aan om dergelijke plugins te negeren, omdat het gebruik ervan direct of in de toekomst tot veel problemen en beveiligingsproblemen kan leiden, wanneer hackers gaten in de plugins of het thema dat op uw site is geïnstalleerd, onderzoeken. 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 u shared hosting gebruikt. U moet minimaal een VPS-gehoste site hebben.

Vereisten: root-toegang tot de Linux-server waarop uw website wordt gehost. Als u geen shell-toegang met root-rechten hebt, kunt u niets nuttigs doen om een echt beveiligde website te maken. Er is geen manier of plug-in die WordPress en bestanden in de mappen op PRO-niveau kan beschermen. Alle beveiligingsplug-ins hebben hetzelfde niveau van rechten (machtigingen) als hackers en bots. Geen uitzondering. Als een beveiligingsplug-in wijzigingen in bestanden van uw website heeft aangebracht om ze te beschermen, kan elke hacker of kwaadaardige code die wijzigingen ONGEDAAN maken of de bescherming verwijderen.

Hier zijn enkele belangrijke punten over mijn aanpak

  • Alle codebestanden (PHP-code) en alle .htaccess-bestanden moeten schrijfbeveiligd zijn. Geen uitzondering
  • We moeten alle standaardwaarden (map, cookies, inlogpad, andere oriëntatiepunten) naar andere waarden wijzigen
  • 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 één. WordPress installeren

Gebruik niet het standaard wp_ prefix voor databasetabellen. Gebruik in plaats daarvan een paar of drie alfabetische symbolen. Sommige WordPress-specifieke aanvallen en aanvallers gaan ervan uit dat het tabelprefix wp_ is. Het wijzigen van prefix helpt ons om sommige SQL-injectieaanvallen te blokkeren.

Stap twee. De website op WordPress-niveau harden

  1. Verplaats de uploadmap één niveau omhoog, van de map /wp-content/ naar de hoofdmap van uw WordPress-installatiemap.
  2. Wijzig de naam van de uploadmap naar media (of iets dergelijks, wat u maar wilt).
  3. Hernoem de map wp-content naar content (of iets dergelijks, wat je maar wilt).
  4. Hernoem de plugins -map 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 en mod te wijzigen naar de waarden die u eerder hebt gekozen .
     define('AUTOMATIC_UPDATER_DISABLED', true ); // ja, het is veilig om dit handmatig te doen
    define('DISALLOW_FILE_EDIT', true ); // we staan nooit toe dat iemand uw bestanden aanraakt
    define('DISALLOW_FILE_MODS', true ); // ja, het is veilig om dit handmatig te doen
    define('FS_METHOD', 'direct'); // natuurlijk geen FTP
    definieer('WP_HTTP_BLOCK_EXTERNAL', waar);
    define('UPLOADS', ' media ' ); // we hebben uploads hernoemd en een level omhoog verplaatst
    define('WP_CONTENT_DIR', '/pad/naar/wordpress/dir/ inhoud '); // geen hostnaam, geen afsluitende slash
    define('WP_CONTENT_URL', 'http://example.com/ inhoud ');
    define('WP_PLUGIN_DIR', '/pad/naar/wordpress/map/ inhoud / mod '); // geen hostnaam, geen afsluitende slash
    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 standaardnaam van cookies.

Voeg deze regels toe aan het begin van het wp-config.php- bestand

 define('USER_COOKIE', 'my_user_cookie'); // verander het in iets anders
define('PASS_COOKIE', 'my_pass_cookie' ); // verander het in iets anders
define('AUTH_COOKIE', 'my_auth_cookie' ); // verander het in iets anders
define('SECURE_AUTH_COOKIE', 'my_sec_cookie' ); // verander het in iets anders
define('LOGGED_IN_COOKIE', 'my_logged_cookie' ); // verander het in iets anders
define('TEST_COOKIE', 'my_test_cookie' ); // verander het in iets anders

Stap vier. Installeer een beveiligingsplug-in direct nadat WordPress is geïnstalleerd

Bescherm uw inlogpagina met WP Cerber Security . Zelfs met de bovenstaande beschermingsstappen 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. De website op serverniveau verharden.

In deze stap neem ik aan dat u een server met Apache als http-server gebruikt. We moeten de eigenaar van alle WordPress-bestanden wijzigen, inclusief plugins en thema's. Standaard is deze gebruiker apache . We moeten dit wijzigen naar een andere gebruiker die u eerder voor dit doel hebt aangemaakt. Laten we zeggen dat deze gebruiker cerber is.

  1. Plaats het .htaccess-bestand in de mediamap (uw nieuwe uploads-map) met de volgende richtlijn erin. Dat voorkomt dat de website geüploade schadelijke PHP-code uitvoert.
     php_flag-engine uit

    Let op: het Apache-configuratiebestand moet de AllowOverride Options -richtlijn voor uw uploadmap of een van de bovenliggende mappen bevatten om deze richtlijn te laten werken.

  2. Voor de gehele website directory (/path/to/wordpress/dir) verander je de eigenaar en permissies voor alle bestanden. Om dat te doen voer je de volgende commando's uit in de shell.
     vind /pad/naar/wordpress/dir -exec chown cerber:root {} +
    vind /pad/naar/wordpress/dir -type d -exec chmod 755 {} +
    vind /pad/naar/wordpress/dir -type f -exec chmod 644 {} +

  3. Voor de uploads directory (/path/to/wordpress/dir/ media ) moeten we speciale rechten instellen. Laten we dat doen met behulp van exec-opdrachten in de shell
     vind /pad/naar/wordpress/dir/ media -exec chown cerber:apache {} +
    vind /pad/naar/wordpress/dir/ media -type d -exec chmod 775 {} +
    vind /pad/naar/wordpress/dir/ media -type f -exec chmod 664 {} +

  4. Stel de permalinkstructuur in via de WordPress-instellingen en wijzig vervolgens de machtiging voor het .htaccess- bestand om het bestand te beveiligen tegen schrijven.
     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 de WordPress-installatiemap.

Stap zes. De website op NGINX-serverniveau harden

Lees hier: WordPress harden met WP Cerber en NGINX

Stap zeven. De website harden 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.