Arptables ile İkinci Katman Güvenlik Duvarı

Eyl 06, 2013

Arptables bir linux çekirdek (kernel) modülüdür. Ağ paketleri üzerinde ikinci katman filtreleme yapmak amacıyla kullanılır. Arp spoofing tehdidi Arptables'ın en yaygın kullanıldığı durumlardan biridir. Arptables, arptables_jf paketinin içinde bulunmaktadır.

Chain (Kural Zinciri)

Belirtilecek kuralların hangi paketleri filtrelemek için kullanılacağı, kuralların içinde bulunduğu kural zinciri denilen gruplar ile ayırt edilebilmektedir. Arptables ile birlikte gelen hazır kural zincirleri aşağıdaki tabloda mevcuttur. Hazır kural zincirlerinin yanında kullanıcı tanımlı kural zincirleri de eklenebilir.

 Target (Hedef)   Açıklama
 IN (INPUT)  Gelen paketleri belirlenen kurallara göre filtreleyen kural zinciridir.          
 OUT (OUTPUT)  Giden paketleri belirlenen kurallara göre filtreleyen kural zinciridir.

Target (Hedef)

Kural oluştururken, kurala uyan pakete nasıl bir işlem uygulanacağı hedef denilen değerlerle belirtilir. Hedef değerleri sadece kurallara değil aynı zamanda hazır kural zincirlerine de (IN,OUT) Politika (Policy) olarak tanımlanabilir. IN ve OUT zincirlerinde eşleşme olmaması durumunda, zincirin politikası ne ise gelen yada giden pakete o işlem uygulanır. Hedefler ve kullanım amaçları aşağıdaki tabloda mevcuttur.

 Target  Açıklama
 ACCEPT  Kural ile eşleşen paketin kabul edileceğini belirtir.
 DROP  Kural ile eşleşen paketin düşürülmesini sağlar.
 RETURN  Kural ile eşleşen paketi sıradaki bir diğer kullanıcı tanımlı kural zincirine yönlendirirerek orada filtre edilmesini sağlar.

 Komutlar

 Komutlar                 Açıklama
 -L / --list

 Mevcut tüm arptables kural zincirlerini ve içinde barındırdığı kuralları listeler.

 -A / --append  Yeni bir kural oluşturur. Kural belirtilen kural zincirinin sonuna eklenir.
 -D / --delete  Mevcut kuralı siler.
 -I  / --insert  Yeni bir kuralı belirtilecek olan zincir ve sıraya yerleştirirerek kaydırma yapar.
 -R / --replace  Belirtilecek olan zincir ve sıradaki kuralı yenisiyle değiştirir.
 -P / --policy  Hazir kural zincirlerine (IN, OUT) genel hedef belirlemek için kullanılır.
 -F / --flush  Kural zincirinde bulunan tüm kuralları siler.
 -Z / --zero  Spesifik olarak belirtilmediyse tüm kurallar ve içinde bulundukları zincirlerin Byte ve Paket sayacını sıfırlar.
 -N / --new-chain  Yeni bir kural zinciri oluşturmak için kullanılır.
 -X / --delete-chain  Belirtilen kural zincirini siler.
 -E / --rename-chain  Belirtilen kural zincirinin adını değiştirir.

Parametreler

 Parametreler

 Açıklama

 -j / --jump  Kural ile eşleşen paket için belirtilen hedef değerinin uygulanmasını yada paketin belirtilen kullanıcı tanımlı kural zincirine yönlendirilmesini sağlar.
 -s / --source / --src  Kuralın belirtilen kaynak IP adresinden gelen paketi filtreleyeceğini tanımlar.
 -d / --destination / --dst  Kuralın belirtilen hedef IP adresine giden paketi filtreleyeceğini tanımlar.
 -z / --source-hw / --src-hw  Kuralın belirtilen kaynak MAC adresinden gelen paketi filtreleyeceğini tanımlar.
 -y / --destination-hw / --dst-hw  Kuralın belirtilen hedef MAC adresinden gelen paketi filtreleyeceğini tanımlar.

Arptables 'ta Kullanılan Başlıca Komutlar

  • Append

    # arptables -A [zincir_adı] [kural_değerleri] [hedef]
    # arptables -A IN --src 192.168.1.65 --src-hw 00:24:4A:4D:8F:C1 -j ACCEPT
    # arptables -A IN --src-hw 00:24:4A:4D:8F:C1 -j ACCEPT
    # arptables -A OUT --dst 192.168.1.65 --dst-hw 00:24:4A:4D:8F:C1 -j ACCEPT
    # arptables -A OUT --dst-hw 00:24:4A:4D:8F:C1 -j ACCEPT
  • Replace
    Append komut örneklerinde IP yi yanlış girdiğimizi varsayarsak değiştirmek için

    # arptables -R [zincir_adi] [kural_no] [kural_değerleri] [hedef]
    # arptables -R IN 1 --src 192.168.1.65 --src-hw 00:24:4A:4D:8F:C1 -j ACCEPT
    # arptables -R OUT 1 --dst 192.168.1.65 --dst-hw 00:24:4A:4D:8F:C1 -j ACCEPT
  • Policy

    # arptables -P [zincir_adı] [hedef]
    # arptables -P IN DROP
    # arptables -P OUT DROP

Yukarıdaki komut örneklerinin arptables -L komutununki çıktısı aşağıdaki gibidir. Bu örnekte, IN ve OUT zincirlerinin politikaları "DROP" olarak ayarlandığından 192.168.1.254 IP'si ve 00:24:4A:4D:0F:C1 MAC adresi dışındaki hiçbir paket alınamayacak ve gönderilemeyecektir.

Arptables Ayarlarının Kaydedilmesi ve Geri Yüklenmesi

Ayarları kaydetmek için;
 # /etc/init.d/arptables_jf save

Kaydedilmiş en son ayarları geri yüklemek için;
# /etc/init.d/arptables_jf reload 

Komutları kullanılmaktadır.