WordPress giriş sayfası ve xmlrpc.php saldırılarını engelleme

WordPress 64 görüntülenme Markdown

Erişim günlüğünüzde yüzlerce POST /wp-login.php ve POST /xmlrpc.php isteği görüyorsunuz; sunucu yavaşlıyor, hatta kullanıcı adınız kilitleniyor. Bunlar WordPress'i hedefleyen botlardır. İnternete açık her WordPress sitesi günde birkaç yüz kez denenir; parolanız güçlüyse içeri giremezler ama sunucunuzu yorarlar. Birkaç adımla ciddi biçimde azaltabilirsiniz.

Önce temel: güçlü parola ve iki adımlı giriş

  • Yönetici kullanıcı adı admin olmasın. Başka bir yönetici kullanıcı açıp admin'i silin ya da yetkisini alın.
  • Uzun ve benzersiz bir parola kullanın: güçlü parola.
  • İki adımlı doğrulama sağlayan bir güvenlik eklentisi kurun.

xmlrpc.php'yi kapatın

Eski bir uzaktan yönetim arayüzü olan xmlrpc.php, tek istekle yüzlerce parola denemesine izin verir. Mobil uygulama ya da Jetpack gibi bir bağımlılığınız yoksa kapatın.

  • Hosting paketimizde: Panelde WEB bölümünden alan adını düzenleyin, Gelişmiş Seçenekler'de Web Şablonu olarak wordpress-disable-xmlrpc seçin ve kaydedin. Bu hazır şablon WordPress için gereken kuralları içerir ve xmlrpc isteklerini engeller.
  • VDS'te Nginx: Site ayarınıza şu bloğu ekleyip sudo nginx -t && sudo systemctl reload nginx çalıştırın:
    location = /xmlrpc.php {
        deny all;
    }

wp-login.php isteklerini sınırlayın (VDS)

Nginx'in istek sınırlayıcısı, aynı adresten dakikada çok fazla giriş denemesini keser. http bloğuna (genelde /etc/nginx/nginx.conf) bir bölge tanımlayın:

limit_req_zone $binary_remote_addr zone=giris:10m rate=5r/m;

Site ayarında giriş sayfası için kullanın:

location = /wp-login.php {
    limit_req zone=giris burst=3 nodelay;
    include /etc/nginx/snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

Bu kural dakikada 5 isteğe izin verir (3 ek istek tolerans). Kendi giriş denemelerinizi bu hız sınırlamaz; botların denemelerini ise keser. Yapılandırmayı uygulamadan önce sudo nginx -t ile denetleyin.

Başarısız girişleri engelleyin: fail2ban

fail2ban, günlükte tekrar eden başarısız girişleri görüp IP adresini güvenlik duvarında engeller. WordPress için ek bir filtre gerekir (bir WordPress güvenlik eklentisi başarısız girişleri sistem günlüğüne yazabilir ya da Nginx erişim günlüğünü okuyan bir filtre yazılır). Genel kurulum için brute force koruması makalesine bakın.

Giriş sayfasını gizlemek

Bazı güvenlik eklentileri giriş adresini /wp-login.php yerine özel bir yola taşır. Botların büyük kısmını eler; ama tek başına güvenlik sağlamaz ve adresi unutursanız kendiniz de giremezsiniz. Yedekleyin.

Saldırı altında mıyım?

Günlükte en çok istek yapan adreslere bakın: erişim günlüğünü okuma. Site ele geçirildiyse: sitem hacklendi ve yetkisiz erişim kontrol listesi.

Sık sorulanlar

xmlrpc.php'yi kapatırsam hangi özellikler bozulur?

WordPress mobil uygulaması, Jetpack ve bazı yayın araçları xmlrpc ister. Bunları kullanmıyorsanız bir şey bozulmaz. Güncel WordPress'in REST API'si yeni uygulamalar için yeterlidir.

Hız sınırlayıcı beni de engeller mi?

Dakikada 5 isteğin altında kalan normal girişler etkilenmez. Çok sayıda yanlış parola denerseniz yavaşlarsınız; bu istenen davranıştır.

CAPTCHA işe yarar mı?

Giriş formuna CAPTCHA ekleyen eklentiler botları büyük ölçüde keser. Sunucu yükünü azaltmak için yukarıdaki sunucu önlemleriyle birlikte kullanın.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.