Fail2ban Kurulum ve Yapılandırma
Fail2ban kurar ve SSH, Apache, Nginx için otomatik koruma yapılandırır.
Yayınlanma: 10.04.2024
Detaylı Bilgi
Bu script, Fail2ban güvenlik aracını kurar ve SSH, Apache, Nginx için otomatik koruma yapılandırır. Fail2ban, başarısız giriş denemelerini izleyerek saldırgan IP adreslerini otomatik olarak engeller.
Script Ne İşe Yarar?
Bu script, Fail2ban kurulumunu ve yapılandırmasını otomatikleştirir:
- Fail2ban paketini kurar
- SSH koruması yapılandırır
- Apache koruması yapılandırır
- Nginx koruması yapılandırır
- Servisi başlatır ve etkinleştirir
Neden Kullanmalısınız?
Fail2ban, brute-force saldırılarına karşı kritik koruma sağlar:
- Otomatik Engelleme: Saldırgan IP'leri otomatik engeller
- Çoklu Servis Koruması: SSH, Apache, Nginx için koruma
- Yapılandırılabilir: Ban süresi ve deneme sayısı ayarlanabilir
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Scripti Çalıştırın
sudo chmod +x fail2ban_setup.sh
sudo ./fail2ban_setup.sh
2. Durumu Kontrol Edin
sudo fail2ban-client status
sudo fail2ban-client status sshd Gereksinimler
Gereksinimler
- Root Yetkisi: Script root olarak çalıştırılmalı
- Python: Fail2ban için gerekli (genellikle kurulu)
Kullanım Senaryoları
Kullanım Senaryoları
1. Brute-Force Koruması
SSH ve web sunucularına yönelik brute-force saldırılarını engelleyin.
2. Production Sunucu Güvenliği
Production sunucularında otomatik güvenlik koruması sağlayın.
Örnekler
Kullanım Örnekleri
Örnek 1: Temel Kullanım
sudo ./fail2ban_setup.sh Kod
#!/bin/bash
# Fail2ban Setup Script
if [ "$EUID" -ne 0 ]; then
echo "Please run as root"
exit 1
fi
echo "Installing Fail2ban..."
if command -v apt-get &> /dev/null; then
apt-get update
apt-get install -y fail2ban
elif command -v yum &> /dev/null; then
yum install -y epel-release
yum install -y fail2ban
fi
cat > /etc/fail2ban/jail.local << EOF
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
destemail = admin@localhost
sendername = Fail2Ban
action = %(action_mwl)s
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
[apache-auth]
enabled = true
port = http,https
logpath = /var/log/apache*/*error.log
[nginx-http-auth]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
[nginx-noscript]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log
[nginx-badbots]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log
[nginx-noproxy]
enabled = true
port = http,https
logpath = /var/log/nginx/access.log
EOF
systemctl enable fail2ban
systemctl start fail2ban
echo "✓ Fail2ban installed and configured!"
echo ""
echo "Check status: fail2ban-client status"
echo "Check banned IPs: fail2ban-client status sshd"
echo "Unban IP: fail2ban-client set sshd unbanip <IP>"
Kullanım
sudo chmod +x fail2ban_setup.sh
sudo ./fail2ban_setup.sh
# Durumu kontrol et
sudo fail2ban-client status
sudo fail2ban-client status sshd
Sorun Giderme
Sorun Giderme
Problem: Fail2ban çalışmıyor
Çözüm: Servisi kontrol edin:
sudo systemctl status fail2ban
sudo systemctl restart fail2ban