Włączyć WordPress w Fort Knox
Jak przekształcić WordPress w chronioną fortecę, taką jak Fort Knox
English version: Turn your WordPress into Fort Knox
W tym artykule założono, że chcemy uzyskać kuloodporną stronę chronioną przez WordPress. Niekoniecznie należy wykonać wszystkie poniższe kroki, słowo w słowo i punkt po punkcie, dokładnie tak, jak opisano. Ale polecam, jeśli chcesz stworzyć swój własny Fort Knox.
Niektóre z poniższych kroków mogą być przyczyną problemów z niekompatybilnością z niektórymi dziwnymi wtyczkami, które próbują modyfikować pliki bezpośrednio w folderach WordPress. Zalecam ignorowanie wszelkich wtyczek tego rodzaju, ponieważ ich używanie może prowadzić do wielu problemów i problemów z bezpieczeństwem natychmiast lub w przyszłości, gdy hakerzy przestudiowali dziury w wtyczkach lub motywie zainstalowanym na Twojej stronie. Stworzyłem ten artykuł w nadziei, że będzie przydatny, ale bez żadnej gwarancji.
Uwaga: ten artykuł nie ma zastosowania, jeśli korzystasz z hostingu współdzielonego. Musisz mieć przynajmniej hostowaną witrynę VPS.
Wymagania: dostęp root do serwera Linux, na którym znajduje się Twoja witryna. Jeśli nie masz dostępu do powłoki z uprawnieniami roota, nie możesz zrobić niczego użytecznego, aby stworzyć prawdziwą chronioną witrynę. Nie ma żadnego sposobu, aby wtyczka mogła chronić WordPressa i pliki w jego katalogach na poziomie PRO. Wszystkie wtyczki bezpieczeństwa mają taki sam poziom uprawnień (uprawnień) jak hakerzy i boty. Bez wyjątku. Jeśli jakaś wtyczka zabezpieczająca wprowadziła pewne zmiany w plikach witryny, aby je chronić, każdy haker lub złośliwy kod może ODŁĄCZYĆ te zmiany lub usunąć ochronę.
Oto kilka ważnych punktów dotyczących mojego podejścia
- Wszystkie pliki kodu (kod PHP) i wszystkie pliki .htaccess muszą być chronione przed zapisem. Bez wyjątku
- Musimy zmienić wszystkie wartości domyślne (folder, pliki cookie, ścieżka logowania, inne punkty orientacyjne) na różne wartości
- Nie wolno używać wtyczek ani motywów, które działają i próbują zmienić pliki PHP lub .htaccess w folderach WordPress
Krok pierwszy. Instalowanie WordPress
Nie używaj domyślnego prefiksu wp_
dla tabel bazy danych. Zamiast tego użyj kilku lub trzech symboli alfabetu. Niektóre ataki specyficzne dla WordPressa i atakujący zakładają, że prefiks tabeli to wp_
. Zmiana prefiksu pomaga nam zablokować niektóre ataki SQL injection.
Krok drugi. Utwardzanie strony na poziomie WordPress
- Przenieś folder przesyłania w górę o jeden poziom, z wnętrza folderu / wp-content / do katalogu głównego folderu instalacyjnego WordPress.
- Zmień nazwę folderu przesyłania na media (lub coś w tym stylu, cokolwiek chcesz).
- Zmień nazwę folderu wp-content na zawartość (lub coś podobnego, cokolwiek chcesz).
- Zmień nazwę folderu wtyczek na mod (lub coś takiego, cokolwiek chcesz).
- Dodaj następujące wiersze na początku pliku wp-config.php , nie zapomnij zmienić nośnika , treści , mod na rzeczywiste wartości, które wcześniej wybrałeś.
define ('AUTOMATIC_UPDATER_DISABLED', true); // tak, można to zrobić ręcznie
define ('DISALLOW_FILE_EDIT', true); // nigdy nie pozwalamy nikomu dotykać twoich plików
define ('DISALLOW_FILE_MODS', true); // tak, można to zrobić ręcznie
define ('FS_METHOD', 'direct'); // no FTP oczywiście
define ('WP_HTTP_BLOCK_EXTERNAL', true);
define („UPLOADS”, „ media ”); // zmieniliśmy nazwę przesyłania i przenieśliśmy go na wyższy poziom
define ('WP_CONTENT_DIR', '/ path / to / wordpress / dir / content '); // brak nazwy hosta, brak ukośnika końcowego
define ('WP_CONTENT_URL', 'http://example.com/ content ');
define ('WP_PLUGIN_DIR', '/ path / to / wordpress / dir / content / mod '); // brak nazwy hosta, brak ukośnika końcowego
define ('WP_PLUGIN_URL', 'http://example.com/ content / mod ');
ini_set ('display_errors', 0); // wyłącz wyświetlanie błędów PHP na froncie
Krok trzeci. Zmień domyślną nazwę ciasteczka.
Dodaj te linie na początek pliku wp-config.php
define ('USER_COOKIE', 'my_user_cookie'); // zmień to na coś innego
define ('PASS_COOKIE', 'my_pass_cookie'); // zmień to na coś innego
define ('AUTH_COOKIE', 'my_auth_cookie'); // zmień to na coś innego
define ('SECURE_AUTH_COOKIE', 'my_sec_cookie'); // zmień to na coś innego
define ('LOGGED_IN_COOKIE', 'my_logged_cookie'); // zmień to na coś innego
define ('TEST_COOKIE', 'my_test_cookie'); // zmień to na coś innego
Krok czwarty. Zainstaluj wtyczkę bezpieczeństwa natychmiast po zainstalowaniu WordPressa
Chroń swoją stronę logowania za pomocą WP Cerber Security . Nawet przy powyższych krokach ochrony hakerzy będą próbowali stosować ataki z użyciem brutalnej siły (próby logowania), aby złamać drzwi na swojej stronie WordPress. Ukryj i zamknij te drzwi WP WPber.
Krok piąty. Utwardzanie strony na poziomie serwera.
W tym kroku zakładam, że używasz serwera z Apache jako serwera http. Musimy zmienić właściciela wszystkich plików WordPress, w tym wtyczek i motywów. Domyślnie ten użytkownik to apache . Musimy go zmienić na innego użytkownika, utworzonego wcześniej w tym celu. Powiedzmy, że ten użytkownik jest cerber .
- Umieść plik .htaccess w folderze multimediów (nowy folder przesyłania) z poniższą dyrektywą. Zapobiega to uruchomieniu przez stronę internetową przesłanego złośliwego kodu PHP.
silnik php_flag wyłączony
Uwaga: Plik konfiguracyjny Apache musi zawierać dyrektywę
AllowOverride Options
dla folderu przesyłania lub dowolnego folderu nadrzędnego, aby ta dyrektywa działała. - Dla całego katalogu witryny (/ path / to / wordpress / dir) zmień właściciela i uprawnienia dla wszystkich plików. Aby to zrobić, wykonaj następujące polecenia w powłoce.
find / path / to / wordpress / dir -exec chown cerber: root {} +
find / ścieżka / do / wordpress / dir -type d -exec chmod 755 {} +
find / ścieżka / do / wordpress / dir -type f -exec chmod 644 {} + - W celu przesłania katalogu (/ path / do / wordpress / dir / media ) musimy ustawić specjalne uprawnienia. Zróbmy to za pomocą komend exec w powłoce
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 {} + - Skonfiguruj strukturę permalink w ustawieniach WordPress, a następnie zmień uprawnienie dla pliku .htaccess , aby go zabezpieczyć przed zapisem.
chown cerber: root /path/to/wordpress/dir/.htaccess
chmod 644 /path/to/wordpress/dir/.htaccess - Przenieś plik wp-config.php do katalogu nad katalogiem instalacyjnym WordPress.
Krok szósty. Utwardzanie strony na poziomie serwera NGINX
Przeczytaj tutaj: Hardening WordPress z WP Cerber i NGINX
Krok siódmy. Utwardzanie strony za pomocą Fail2Ban
Przeczytaj tutaj: Jak chronić WordPressa za pomocą Fail2Ban