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

Etiketler

fail2ban güvenlik brute force ssh koruma