Linux Güvenliği [2] – Güvenlik Araçları ve Güvenlik Duvarı

Linux Güvenliği [2] – Güvenlik Araçları ve Güvenlik Duvarı

Linux’ta güvenlik, ağ trafiğini kontrol etmek ve saldırılara karşı korunmak için güvenlik araçlarının ve güvenlik duvarı yönetiminin etkili kullanımıyla sağlanır. Bu bölümde, iptables ve firewalld kullanarak güvenlik duvarı yönetimini öğrenirken, brute force saldırılarını engellemek için Fail2Ban aracını yapılandırmayı göreceğiz.

Iptables ve Firewalld ile Güvenlik Duvarı Yönetimi

Iptables Temel Kuralları ve Konfigürasyonu

Iptables, Linux sistemlerinde gelen ve giden trafiği yönetmek için kullanılan güçlü bir güvenlik duvarı aracıdır. Ağdaki paketlerin hangi kurallara göre işleneceğini belirler. Örneğin, belirli IP adreslerini veya portları engelleyebilir ya da izin verebilir. Temel iptables komutlarını anlamak, ağ güvenliğini sağlamanın ilk adımıdır.

Temel Iptables Komutları:

  1. Tablolar ve zincirler:
    • Iptables, trafiği INPUT (gelen trafik), OUTPUT (giden trafik), ve FORWARD (yönlendirme) gibi zincirler üzerinden işler.
    • Örnek: Tüm gelen bağlantıları engellemek
      sudo iptables -A INPUT -j DROP
      • -A: Yeni bir kural ekler.
      • INPUT: Gelen trafiği temsil eden zincirdir.
      • -j DROP: Trafiği reddeder.
  2. Port yönetimi:
    • Belirli bir portu açmak
      sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      • -p tcp: Trafiğin TCP protokolünü kullandığını belirtir.
      • --dport 22: SSH için kullanılan 22 numaralı portu hedefler.
      • -j ACCEPT: Trafiğe izin verir.
  3. Durum takibi (Stateful filtering):
    • Yalnızca var olan ya da ilgili bağlantılara izin vermek
      sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
      • -m state: Paketlerin durumunu kontrol etmek için bir modül kullanır.
      • --state RELATED,ESTABLISHED: Yalnızca var olan ve ilgili bağlantılara izin verir (örneğin, bir web sunucusu yanıtı).

Firewalld ile Dinamik Güvenlik Duvarı Yönetimi

Firewalld, iptables’in dinamik ve daha kullanıcı dostu bir alternatifidir. Ağ trafiğini dinamik olarak yönetir ve iptables kurallarını arka planda çalıştırır. Ayrıca, ağ bölgeleri oluşturup her bölgeye farklı güvenlik ayarları uygulayabilirsiniz.

Firewalld Temel Komutları:

  1. Firewalld durumunu kontrol etmek
    sudo firewall-cmd --state
    • --state: Firewalld’nin çalışıp çalışmadığını kontrol eder.
  2. Bir servise izin vermek
    sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
    • --permanent: Kuralı kalıcı hale getirir.
    • --add-service=http: HTTP servisine izin verir.
    • --reload: Firewalld’yi yeniden yükleyerek değişikliklerin uygulanmasını sağlar.
  3. Belirli bir portu açmak
    sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
    • --add-port=8080/tcp: TCP üzerinden 8080 numaralı portu açar.

Fail2Ban ile Brute Force Saldırılarını Önleme

Brute force saldırıları, özellikle SSH gibi kritik servisler için ciddi bir tehdit oluşturabilir. Fail2Ban, bu tür saldırıları otomatik olarak engellemek için sunucu loglarını izler ve başarısız giriş denemelerini tespit ederek IP adreslerini geçici olarak yasaklar.

Fail2Ban Kurulumu ve Yapılandırılması

Fail2Ban’i kurmak ve yapılandırmak oldukça kolaydır ve çoğu Linux dağıtımında varsayılan paket yöneticileri ile birlikte gelir.

  1. Fail2Ban kurulumu
    sudo apt install fail2ban # Debian/Ubuntu için

    sudo yum install fail2ban # CentOS/RHEL için
    • apt veya yum: Paket yöneticisi komutları ile Fail2Ban’i indirir ve kurar.
  2. Fail2Ban servisini başlatma ve etkinleştirme
    sudo systemctl start fail2ban

    sudo systemctl enable fail2ban
    • systemctl start: Fail2Ban servisini başlatır.
    • systemctl enable: Sistemin her açılışında Fail2Ban’in otomatik başlamasını sağlar.

Jail Konfigürasyon Dosyaları ve Log İzleme

Fail2Ban’in güvenlik kurallarını jail.conf dosyası üzerinden yönetebilirsiniz. Brute force saldırılarına karşı SSH servisini korumak için jail.local dosyasını yapılandırabilirsiniz:

Jail yapılandırmasını oluşturmak

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

sudo nano /etc/fail2ban/jail.local

cp: jail.conf dosyasını kopyalar.
nano: Dosyayı düzenlemeye yarayan metin düzenleyici.

SSH için yasaklama yapılandırması:

[sshd]
enabled  = true
port     = ssh
logpath  = /var/log/auth.log
bantime  = 600
findtime = 600
maxretry = 3

enabled = true: SSH korumasını etkinleştirir.
port = ssh: SSH portu için güvenlik kurallarını uygulamak.
logpath = /var/log/auth.log: SSH giriş denemelerini kaydeden log dosyasını izler.
bantime = 600: IP adresinin yasaklanma süresi 600 saniyedir (10 dakika).
findtime = 600: 600 saniye (10 dakika) içinde belirlenen maksimum başarısız giriş sayısına ulaşıldığında yasaklama uygulanır.
maxretry = 3: Maksimum 3 başarısız giriş denemesine izin verilir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir