Panel logowania WordPress (/wp-login.php) to częsty cel ataków typu brute-force. Jeśli Ty (lub Twoi klienci) logujecie się zawsze z tych samych lokalizacji, możesz znacznie zwiększyć bezpieczeństwo witryny, ograniczając dostęp do panelu tylko dla wybranych adresów IP.
Dlaczego warto?
- Zablokujesz boty próbujące logować się z tysięcy IP.
- Odciążysz serwer – mniej żądań do logowania.
- To szybkie i skuteczne zabezpieczenie, niewymagające dodatkowych wtyczek.
Jak to zrobić?
1. Zabezpieczenie przez .htaccess (dla serwera Apache)
Dodaj poniższy kod do pliku .htaccess w katalogu głównym WordPressa:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from XX.XX.XX.XX
Allow from YY.YY.YY.YY
</Files>
Zamień XX.XX.XX.XX i YY.YY.YY.YY na swoje rzeczywiste adresy IP (np. domowy, firmowy).
Aby sprawdzić swój IP, wejdź na https://whatismyipaddress.com/.
2. Zabezpieczenie przez nginx (jeśli używasz nginx)
Dodaj do konfiguracji serwera:
location = /wp-login.php {
allow XX.XX.XX.XX;
allow YY.YY.YY.YY;
deny all;
}
Po zmianach zrestartuj serwer nginx (sudo service nginx restart).
3. Alternatywa: Własna reguła w functions.php
Można też wprowadzić prostą blokadę w kodzie motywu:
add_action('init', function () {
if (strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false) {
$allowed_ips = ['XX.XX.XX.XX', 'YY.YY.YY.YY'];
if (!in_array($_SERVER['REMOTE_ADDR'], $allowed_ips)) {
wp_die('Dostęp zabroniony.');
}
}
});
Na co uważać?
- IP w sieciach mobilnych i korporacyjnych mogą się zmieniać – upewnij się, że Twoje IP nie jest dynamiczne.
- Zawsze testuj konfigurację – zablokowanie sobie dostępu może wymagać kontaktu z hostingiem.
- Pamiętaj o odblokowaniu IP jeśli ktoś z zespołu musi się zalogować z innego miejsca.
Podsumowanie
Ograniczenie dostępu do panelu logowania WordPressa na podstawie adresu IP to skuteczny sposób na zwiększenie bezpieczeństwa witryny. Nie wymaga instalacji wtyczek, a może zablokować większość ataków botów i skanowania.