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
- Verplaats de map uploads één niveau omhoog, van de binnenkant van / wp-content / map naar de hoofdmap van uw WordPress installatiemap.
- Hernoem de map uploads naar media (of iets dergelijks, wat je maar wilt).
- Hernoem de map wp-content naar inhoud (of iets dergelijks, wat je maar wilt).
- Hernoem de map plug-ins naar mod (of iets dergelijks, wat je maar wilt).
- 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 .
- 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 uwAllowOverride Options
of een van de bovenliggende mappen om deze richtlijn te laten werken. - 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 {} + - 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 {} + - 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 - 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