Security Blog
Security Blog
Posted By Gregory

Maak van je WordPress in Fort Knox

Hoe WordPress in een beschermd fort zoals Fort Knox te veranderen


English version: Turn your WordPress into Fort Knox


In dit artikel wordt ervan uitgegaan dat we een bulletproof-beveiligde website willen hebben die mogelijk wordt gemaakt door WordPress. Het is niet noodzakelijk om alle volgende stappen woord voor woord en punt voor punt precies te doen zoals beschreven. Maar ik raad het aan om je eigen Fort Knox te maken.

Sommige van de volgende stappen kunnen een oorzaak zijn van incompatibiliteitsproblemen met enkele rare plug-ins die proberen bestanden rechtstreeks in de WordPress-mappen aan te passen. Ik raad aan alle dergelijke plug-ins te negeren, omdat het gebruik ervan kan leiden tot veel problemen en beveiligingsproblemen, onmiddellijk of in de toekomst, wanneer hackers gaten in de plug-ins of het thema bestuderen dat op uw site is geïnstalleerd. Ik heb dit artikel gemaakt in de hoop dat het nuttig zal zijn, maar zonder enige garantie.

Opmerking: dit artikel is niet van toepassing als u shared hosting gebruikt. 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 hebt met rootprivileges, kunt u niets nuttigs doen om een echte beschermde website te maken. Er is geen manier of een plug-in die WordPress en bestanden in zijn mappen op een PRO-niveau kan beschermen. Alle beveiligingsinvoegtoepassingen hebben hetzelfde aantal machtigingen (machtigingen) als hackers en bots hebben. Geen uitzondering. Als sommige beveiligingsinvoegtoepassingen enkele wijzigingen hebben aangebracht in de bestanden van uw website om deze te beschermen, kan elke hacker of schadelijke 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 beveiligd zijn. Geen uitzondering
  • We moeten alle standaardwaarden (map, cookies, loginpad, andere oriëntatiepunten) naar verschillende waarden wijzigen
  • We moeten geen plug-ins of thema's gebruiken die werken met en proberen PHP- of .htaccess-bestanden in de WordPress-mappen te wijzigen

Stap een. Installeren van WordPress

Gebruik het standaardvoorvoegsel wp_ voor databasetabellen. Gebruik in plaats hiervan twee of drie alfabet-symbolen. Sommige WordPress-specifieke aanvallen en aanvallers gaan ervan uit dat het wp_ . Het wijzigen van de prefix helpt ons om sommige SQL-injectieaanvallen te blokkeren.

Stap twee. Verharding van de website op WordPress-niveau

  1. Verplaats de map uploads één niveau omhoog, van de binnenkant van / wp-content / map naar de hoofdmap van uw WordPress installatiemap.
  2. Hernoem de map uploads naar media (of iets dergelijks, wat je maar wilt).
  3. Hernoem de map wp-content naar inhoud (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 , inhoud , mod te wijzigen in werkelijke waarden die u eerder hebt gekozen .
     define ('AUTOMATIC_UPDATER_DISABLED', waar); // ja, het is veilig om het handmatig te doen 
    define ('DISALLOW_FILE_EDIT', true); // we staan nooit toe dat iemand je bestanden aanraakt
    define ('DISALLOW_FILE_MODS', true); // ja, het is veilig om het handmatig te doen
    define ('FS_METHOD', 'direct'); // geen FTP natuurlijk
    define ('WP_HTTP_BLOCK_EXTERNAL', waar);
    define ('UPLOADS', ' media '); // we hebben uploads hernoemd en hebben het niveau hoger geplaatst
    define ('WP_CONTENT_DIR', '/ path / to / wordpress / dir / content '); // geen hostnaam, geen trash
    define ('WP_CONTENT_URL', 'http://example.com/ content ');
    define ('WP_PLUGIN_DIR', '/ path / to / wordpress / dir / content / mod '); // geen hostnaam, geen trash
    define ('WP_PLUGIN_URL', 'http://example.com/ content / mod ');
    ini_set ( 'display_errors', 0); // display PHP-fouten aan de voorkant uitschakelen

Stap drie. Verander standaard cookies naam.

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

 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 beveiligingsinvoegtoepassing onmiddellijk nadat WordPress is geïnstalleerd

Bescherm uw inlogpagina met WP Cerber Security . Zelfs met die beveiligingsstappen hierboven, zullen hackers brute force-aanvallen (inlogpogingen) toepassen om de deur van je WordPress-website te kraken. Verberg en sluit deze deur met WP Cerber.

Stap vijf. Verharden van de website op serverniveau.

Bij deze stap ga ik ervan uit dat u de server gebruikt met Apache als http-server. We moeten de eigenaar van alle WordPress-bestanden wijzigen, inclusief plug-ins en thema's. Standaard is deze gebruiker apache . We moeten dit wijzigen in een andere gebruiker die u eerder voor dit doel hebt gemaakt. Laten we zeggen dat deze gebruiker cerber is .

  1. Zet de .htaccess bestand naar de map media (de map nieuwe uploads) met de volgende richtlijn in het. Dat voorkomt dat de website geüploade kwaadaardige PHP-code kan uitvoeren.
     php_flag-motor uit 

    Opmerking: Het Apache-configuratiebestand moet de AllowOverride Options richtlijn bevatten voor uw AllowOverride Options of een van de bovenliggende mappen om deze richtlijn te laten werken.

  2. Voor de hele websitemap (/ pad / naar / wordpress / dir) wijzigt u de eigenaar en de machtigingen voor alle bestanden. Om dat te doen voer je de volgende commando's in de shell uit.
     find / path / to / wordpress / dir -exec chown cerber: root {} + 
    find / path / to / wordpress / dir -type d -exec chmod 755 {} +
    find / path / to / wordpress / dir -type f -exec chmod 644 {} +

  3. Voor de uploaddirectory (/ pad / naar / wordpress / dir / media ) moeten speciale machtigingen worden ingesteld. Laten we dat doen met exec-commando's in de shell
     find / path / to / wordpress / dir / media -exec chown cerber: apache {} + 
    find / path / to / wordpress / dir / media -type d -exec chmod 775 {} +
    find / path / to / wordpress / dir / media- type f -exec chmod 664 {} +

  4. Stel de permalink-structuur in de WordPress-instellingen in en wijzig vervolgens de machtiging voor het .htaccess- bestand om het te beschermen.
     chown cerber: root /path/to/wordpress/dir/.htaccess 
    chmod 644 /path/to/wordpress/dir/.htaccess

  5. Verplaats het bestand wp-config.php naar de map boven uw WordPress installatiedirectory.

Stap zes. Verharding van de website op het NGINX-serverniveau

Lees hier: Hardening WordPress met WP Cerber en NGINX

Stap zeven. De website verharden met Fail2Ban

Lees hier: Hoe WordPress te beschermen met Fail2Ban

Last posts from WordPress security blog


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.