nginx-ultimate-bad-bot-blocker ile sitenizi tarayan,sizin izin vermediğiniz veya kötü niyetli botları engelleyebilirsiniz.
İlk önce yükleyici dosyayı indirmemiz gerekiyor
sudo wget https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master/install-ngxblocker -O /usr/local/sbin/install-ngxblocker
sudo chmod +x /usr/local/sbin/install-ngxblocker
İndirdikten sonra
cd /usr/local/sbin/
sudo ./install-ngxblocker
ile çalıştırarak yapılacak olan değişikliklere bakıyoruz. /etc/nginx/conf.d
/etc/nginx/bots.d
/usr/local/sbin
gibi dizinlere dosyalar ekleyeceğini gösteriyor. Bir sorun yok ise
sudo ./install-ngxblocker -x
ile çalıştırarak daha önce belirttiği dizinlerde değişiklik yaptırtabilirsiniz. Bunları yaptıktan sonra dosyaları yüklemiş oluyoruz.
setup-ngxblocker dosyasını çalıştırarak sitelerinizin nginx ayarlarını yapabilirsiniz. Sadece bazı siteler için aktif etmek istiyorsanız kendiniz eklemek istediğiniz sitenin nginx config ayarlarında server bölümüne;
# Bad Bot Blocker
include /etc/nginx/bots.d/ddos.conf;
include /etc/nginx/bots.d/blockbots.conf;
ekleyerek yapabilirsizin.
Aşağıdaki örnekten bakabilirsiniz.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com;
include /etc/nginx/bots.d/ddos.conf;
include /etc/nginx/bots.d/blockbots.conf;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
server {
listen 80;
listen [::]:80;
server_name .example.com;
location / {
return 301 https://example.com$request_uri;
}
}
sudo nginx -t
ile ayarları test edebilir ve bir sorun yoksa sudo nginx -s reload
ile nginx restart atabilirsiniz.
Bunları yaptıktan sonra herşey çalışıyor olacak.
Son olarakta cron job ekleyerek belli aralıklarla engellenecek IP adreslerini güncellemeniz gerekiyor.
Bunun içinde sudo crontab -e
ile crontab açarak 00 22 * * * sudo /usr/local/sbin/update-ngxblocker -n
eklemeniz yeterli olacaktır.