Eğer bir CWP (Control Web Panel) sunucusu yönetiyorsanız, cwpsrv erişim loglarınızın (access_log) sürekli 127.0.0.1 istekleriyle dolduğunu fark etmişsinizdir. Kötü niyetli botlar; .env, .git veya /wp-json/ gibi zafiyet arayan dosyaları sürekli tarar.
Bir bot, alan adınız yerine doğrudan sunucunuzun IP adresine istek attığında, Apache (CWP’nin varsayılan yönlendirmelerine bağlı olarak) bu isteği genellikle kendi içindeki CWP paneline iletir. İstek sunucunun kendi içinden (localhost) geldiği için loglara 127.0.0.1 olarak yazılır. Bu durum, log dosyalarınızın okunamaz hale gelmesine ve gerçek tehditlerin gözden kaçmasına neden olur.
Belirli kelimeleri (kara liste) engellemeye çalışmak sonu olmayan bir çabadır. En sağlam ve kesin çözüm, doğrudan IP adresine yapılan tüm istekleri Apache seviyesinde engellemektir.
İşte bu botları etkisiz hale getirecek ve CWP loglarınızı temizleyecek o adım adım Apache “Catch-All” (Yakalayıcı) rehberi:
1. Adım: Apache Yapılandırmanızın Yedeğini Alın
Sistem yönetiminin altın kuralı olarak, yapısal değişiklikler yapmadan önce her zaman bir yedek alın. Terminalinize şu komutu yapıştırın:
bash
cp /usr/local/apache/conf/httpd.conf /root/httpd.conf.bak
2. Adım: Özel Bir Catch-All Yapılandırma Dosyası Oluşturun
Apache, /usr/local/apache/conf.d/ dizinindeki yapılandırma dosyalarını alfabetik olarak okur. Oluşturacağımız kuralın diğer kurallar tarafından ezilmemesini garanti altına almak için başına zz- ekleyerek yeni bir dosya oluşturacağız.
bash
nano /usr/local/apache/conf.d/zz-catchall-ip.conf
3. Adım: IP Engelleme Kurallarını Ekleyin
Açılan boş dosyanın içine aşağıdaki yapılandırma bloğunu yapıştırın.
(Önemli Not: Aşağıdaki kodda yer alan 198.0.0.0 IP adresini, sunucunuzu canlıya alırken kendi gerçek sunucu IP adresinizle değiştirmeyi unutmayın).
apache
# --- 80 (HTTP) Portu Üzerinden Doğrudan IP Erişimini Engelle ---
<VirtualHost *:80>
ServerName 198.0.0.0
RewriteEngine On
# Eğer Host başlığı IP adresiyle eşleşiyorsa VEYA boşsa, 403 Forbidden döndür
RewriteCond %{HTTP_HOST} ^198\.0\.0\.0$ [NC,OR]
RewriteCond %{HTTP_HOST} ^$
RewriteRule ^ - [F,L]
</VirtualHost>
# --- 443 (HTTPS) Portu Üzerinden Doğrudan IP Erişimini Engelle ---
<VirtualHost *:443>
ServerName 198.0.0.0
SSLEngine on
# CWP'nin varsayılan self-signed sertifikası kullanılıyor. Özel sertifikanız varsa yolları güncelleyin.
SSLCertificateFile /etc/pki/tls/certs/hostname.crt
SSLCertificateKeyFile /etc/pki/tls/private/hostname.key
RewriteEngine On
# Eğer Host başlığı IP adresiyle eşleşiyorsa VEYA boşsa, 403 Forbidden döndür
RewriteCond %{HTTP_HOST} ^198\.0\.0\.0$ [NC,OR]
RewriteCond %{HTTP_HOST} ^$
RewriteRule ^ - [F,L]
</VirtualHost>
Bu neden işe yarar? Meşru ziyaretçiler ve arama motoru botları sitenize alan adınız üzerinden (örn: https://alanadiniz.com) erişir. Ancak zararlı bot tarayıcıları sıklıkla doğrudan IP adresini hedef alır (örn: http://198.0.0.0/.env) veya geçersiz Host başlıkları gönderir. Bu yapılandırma Apache’ye şunu söyler: “Eğer istek geçerli bir alan adına yapılmıyorsa, isteği anında 403 Forbidden hatası ile reddet.”
4. Adım: Yapılandırmayı Kontrol Edin ve Apache’yi Yeniden Başlatın
Yeniden başlatmadan önce, web sunucunuzu yanlışlıkla devre dışı bırakmamak için sözdizimi hatalarını kontrol edin:
bash
httpd -t
Eğer çıktıda Syntax OK (Sözdizimi Tamam) yazıyorsa, değişiklikleri güvenle uygulamak için Apache’yi yeniden başlatın:
bash
systemctl restart httpd
5. Adım: Test Edin ve Logları İzleyin
curl kullanarak bir bot isteğini simüle ederek kuralın çalışıp çalışmadığını test edin:
bash
curl -I http://198.0.0.0/.env
Çıktı olarak HTTP/1.1 403 Forbidden yanıtı almalısınız.
Son olarak, CWP loglarınızı gerçek zamanlı izleyin:
bash
tail -f /usr/local/cwpsrv/logs/access_log
127.0.0.1 kaynaklı bot çöplüğünün tamamen kaybolduğunu fark edeceksiniz. CWP loglarınız artık yalnızca gerçek yönetici girişlerini ve gerçek trafiği gösterecek.
💡 Bu Kural RustDesk veya Diğer Servisleri Etkiler mi?
Hayır. Bu yapılandırma yalnızca Apache’nin HTTP (Port 80) ve HTTPS (Port 443) trafiğini işleme şeklini etkiler. RustDesk (kendi özel portlarını kullanır), MySQL (3306) veya özel SSH servisleri gibi hizmetler kendi bağımsız portlarında çalışmaya devam eder ve Apache’nin web kurallarından kesinlikle etkilenmez.
Sonuç
Güvenlikte sadece belirli kelimeleri engellemeye dayalı bir yaklaşım yeterli değildir. Apache seviyesinde katı IP tabanlı reddetme kuralları uygulayarak, otomatik gürültünün %99’unu ortadan kaldırabilir, doğrudan IP’ye yönelik istismar girişimlerini durdurabilir ve CWP sunucu loglarınızı tertemiz tutabilirsiniz.