Iptables’in sınırlarını zorlamak – 1 milyon nat kuralı

frs

Bir projede şöyle bir ihtiyaç oldu: Bridge modda çalışıp belirli adreslere(1000.000 farklı ip adresi) giden istekler yereldeki bir proxy’e yönlendirilecek ve kullanıcıya uyarı gösterilecek.

 

Belirli adresler haricine gidecek paketlere hiç dokunulmayacak. Projede Linux kullandığımız için paket filtreleme/nat aracı olarak da Iptables(Linux ile birlikte gelen güvenlik duvarı yazılımı)kullanmak zorunda kaldık.

 

Proje sonucunun  başarılı olabilmesi için  iptables’a 1000.000 nat kuralı girmemiz gerekti, önce bir script aracılığıyla başarmaya çalıştık fakat iptables eş zamanlı olarak bir adet kural girilmesine izin verdi. Biz de 1000.000 ip adresini iptables-restore komutunun anlayacağı hale getirip

iptables-restore < black_list

komutuyla sisteme girmeye çalıştık. Bu arada sistem

“kernel: allocation failed: out of vmalloc space – use vmalloc=<size> to increase size.”

hatası vererek 100.000 den fazla kuralı kabul etmedi.

Çözüm:

grub.conf’da
kernel /vmlinuz-2..

satırının sonuna vmalloc=600MB(default’u 250MB miş gerektiği kadar arttırmak lazım) yapınca sorunumuz çözüldü ve istediğimiz sayıda kuralı iptables’a 40-50 saniye gibi kısa bir sürede girebildik.

Siz de firewall’un kural performansını test etmek isterseniz aşağıdaki rastgele ip üreteç scriptinden faydalanıp kendi kurallarınızı yazabilirsiniz.

Random ip adresi üretmek için kullandığım script:

#!/usr/bin/perl
use strict;
srand(time() ^ ($$ + ($$ << 15)));

for (1..1000000){
    print join (‘.’, (int(rand(255))
                     ,int(rand(255))
                     ,int(rand(255))
                     ,int(rand(255))))
          , “\n”;
}

Kaynak:http://www.perlmonks.org/?node_id=389028

This entry was posted in Firewalls, Linux Security. Bookmark the permalink.

3 Responses to Iptables’in sınırlarını zorlamak – 1 milyon nat kuralı

  1. zapatov says:

    harika olmuş ya. emekleriniz için teşekkürler

  2. zapatov says:

    yanlış konuya comment girmişim pardon (:
    güvenlik bülteni başlıklı konuya giricektim (:

  3. Açık kaynak ürünlerinin anlatmak için güzel bir çalışma örneği,
    Kullandığın donanım (RAM, CPU ve ethernet kartları) bilgisini;
    1.000.000 NAT kuralı sonucunda ulaşılan başarı oranı nedir? Paketlerin %kaçı natlanamadı? Bu bilgileride verebilirsen güzel olur.

Leave a Reply

Your email address will not be published. Required fields are marked *

1 × three =