AraKullanıcı girişiGezintiEn son ağ günlüğü gönderileri
Son yorumlar
En Çok OkunanlarKimler yeni
İçerik paylaşımı |
Linux Iptables - Netfilter KurulumuInternete bağlanan her sistem potansiyel saldiri tehlikelerine gebedir.Bir saldirgan direkt olarak veya kendini gizleyerek sisteme sızmak isteyebilir.Güncel Linux çekirdeklerinde kullanılan firewall'larin son gözdesi iptables, paket filtrelemesi yaparak erişim yetkisini belli bir seviyede tutar.Bilinmelidir ki sistem kurulmaya başladigi andan itibaren, yönetim politikasinin belirlenmeye başlamasi ve firewall'un bu politika üzerine inşası şarttır.Netfilter ( iptables ) kurulmadan önce, kullanıcının gereksiz servisleri çalıştırmaması ve gerekli olanlarda daha seçici davranması gerekir. Daha seçici davranmasindan kasit bir servisin her zaman bir kaç tane daha alternatifi olmasıdır ( sendmail yerine postfix gibi).Sendmail eski günlerdeki verdiği güveni artık verememektedir. Linux da bilgilerinizi şifrelemek ve harici kullanıcılarin bunlara erişimini engellemek için SSH ( Secure Shelli ) kurmak, bununla birlikte telnet gibi hedef olarak görülen servisleri gerek olmadikça çaliştirmamak, zorunluluk halinde dahi root girişini açmamak, önde gelen ve sürekli kullanılan önlemler listesinde yer alır. Peki firewall bizi ne kadar korur? Firewall'ı kurduktan sonra hiç bir saldırgan bizim sistemimize giremez deyip içimiz rahat edebilir mi?Eğer Firewall'ı kurup makinamızı kapatıp hiç açmayacaksak bu doğrudur.Bunu yapmak için firewall kurmakta gerekmez zaten.Peki biz ne yapıyoruz. Tek başina firewall bir güvenlik görevlisi gibi çalişir.Bir şirketin koruma memurundan öteye gidemez.Yani içeri giren bir şahsın elini kolunu sallayak girmesine izin vermez.Belli bir aramadan geçirerek üzerinde tehlikeli madde bulunmadığına inandığı andan sonra içeri girmesine izin verir.Ama bulaşıcı bir hastalık taşıyıp taşımadığını bilemez çünkü bu görev ona ait değildir.Bu şu demektir firewall paket filitrelemesi yapar uygun bölgelere uygun paketleri geçirir.Ama paketlerin içindeki datalarla ilgilenmez.Tcp-IP protokolunu bilenlerin ne demek isteğimi net anladiğini umuyorum. Internete bağlanan her sistem potansiyel tehlike altindadir. Peki bağlanmayan sistem değil midir? Büyük şirketler çalişanlarina güvenirler ama içerden de tehlike gelebilir.IPtables arabirim filtremesi yapar.Yani sadece Internetten değil birkaç arabirim bulunduran büyük bir ağda da erişim yetkisi düzenlenebilir. (Arabirimden kasıt birkaç ethernet birimi içeren veya PPP vb. ara birimi içeren ağlardır)Büyük bir ağda gereklidir de. NETFILTER NASIL ÇALIŞIR? Resim 1 PREROUTING :Her paketin uğradığı ilk kural alandır.Paket bu alanda filitre işlemine girmez. NAT - AĞ ADRES ÇEVİRİMİ Iptables kurallar zinciri mantığı ile çalişir, bu zincirler INPUT,OUTPUT, FORWARD, olup paket adreslerini yönetmek ,için PREROUTING, POSTROUTING kullanılır.Kullanıcı isterse kendi tanımladığı bir zinciride ekleyebilir. TANIMLI ZİNCİRLER Netfilter(iptables) da kurallar oluşturmak için iptables komutu kullanılır.Herhangi bir zincire gelen paket kurallardan herhangi biriyle uyuşana kadar ilerleyerek zincirin sonuna kadar ulaşır.Herhangi bir kuralla uyuşmayan paket işleme sokulmaz. Netfilter zincir kurallari if-then-else mantiğinda çalişir. # Iptables -A INPUT -j ACCEPT -i eth1 -s 10.1.34.0/255.255.255.0 IPTABLES HEDEFLERİ IPTABLES PARAMETRELERİ IPTABLES SEÇENEKLERİ UDP,TCP,ICMP,ALL protokollerinden biri kullanılır.ALL hepsi içindir. Kaynak portu belirtir.etc/services da listelenen port isimleri olabilir ya da numarasıyla yazılabilir. --sport ile aynı Variş portudur. Iptables'da CIDR (Classless Inter-Domain Routing) adres biçimide kullanabilirsiniz Mesela: Artik iptables'in durumuna baktığımızda boştur.Bakmak için #iptables -A INPUT -j DROP -i eth1 ! -s 10.1.34.0/255.255.255.0 #iptables -A INPUT -j DROP -i ! eth1 -s 10.1.34.0/255.255.255.0 #iptables -A INPUT -j DROP ! -i lo -s 127.0.0.0/255.0.0.0 #iptables -A INPUT -j ACCEPT -i lo #iptables -A INPUT -j ACCEPT -p -tcp -i eth0 –dport 80 -s 192.168.1.1 #iptables -A INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j #iptables -A INPUT -m state –state ESTABLISHED,RELATED -i eth0 -p ! #iptables -A INPUT -m state –state NEW -i eth0 -j DROP #iptables -A INPUT -j ACCEPT -p all -i eth1 -s 10.1.34.0/255.255.255.0 #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type 0 -d #iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type 8 -d #iptables -A INPUT -j ACCEPT -p icmp -i eth0 –icmp-type 3 -d TÜM ICMP MESAJ TİPLERİ #iptables -A INPUT -p tcp -i eth0 --tcp-flags SYN,ACK,FIN,RST RST -m #iptables -A INPUT -p icmp -i eth0 --icmp-type 8 -m limit --limit 1/s -j echo 1 > /proc/sys/net/ipv4/ip_forward Daha sonra gerekebilir düşüncesi ile aşagidaki dosyayi firewall adı ile
#!/bin/sh # Iptables ile yazilmis Firewall'dir. # Linux Kernel 2.4.20-8 cekirdekte yazildiktan sonra denenmistir. # Sistemde DHCP,WEB serverlari calismaktadir. # Internete bakan yuz ara1 ic network'e bakan ara2 degiskenlerine atanmistir. # IPB="/sbin/iptables" LOCAL=127.0.0.0/8 WEBSERV=192.168.1.1 LAN=10.1.34.0/24 ara1=eth0 ara2=eth1 udp_port=67:68 echo 0 > /proc/sys/net/ipv4/ip_forward $IPB -F INPUT $IPB -F OUTPUT $IPB -F FORWARD $IPB -P INPUT DROP $IPB -P OUTPUT ACCEPT $IPB -P FORWARD ACCEPT $IPB -A INPUT -j DROP -i $ara2 ! -s $LAN $IPB -A FORWARD -j DROP -i $ara2 ! -s $LAN $IPB -A INPUT -j DROP -i ! $ara2 -s $LAN $IPB -A FORWARD -j DROP -i ! $ara2 -s $LAN $IPB -A INPUT -j DROP -i ! lo -s $LOCAL $IPB -A FORWARD -j DROP -i ! lo -s $LOCAL $IPB -A INPUT -j ACCEPT -i lo $IPB -A INPUT -j ACCEPT -p tcp -i $ara1 --dport www -s $WEBSERV $IPB -A INPUT -m state --state ESTABLISHED,RELATED -i $ara1 -p tcp --sport www -s $WEBSERV -d $LAN -j ACCEPT $IPB -A INPUT -i $ara2 -p udp --dport $udp_port --sport $udp_port -j ACCEPT $IPB -A OUTPUT -m state --state NEW -o $ara1 -p tcp --sport www -d $LAN -j DROP $IPB -A INPUT -m state --state ESTABLISHED,RELATED -i $ara1 -p ! icmp -j ACCEPT $IPB -A INPUT -m state --state NEW -i $ara1 -j DROP $IPB -A FORWARD -m state --state NEW -i $ara1 -j DROP $IPB -A INPUT -j ACCEPT -p all -i $ara2 -s $LAN $IPB -A INPUT -j ACCEPT -p icmp -i $ara1 --icmp-type 0 -d $WEBSERV $IPB -A INPUT -j ACCEPT -p icmp -i $ara1 --icmp-type 8 -d $WEBSERV $IPB -A INPUT -j ACCEPT -p icmp -i $ara1 --icmp-type 3 -d $WEBSERV $IPB -A INPUT -p tcp --syn -m limit --limit 1/second -j ACCEPT $IPB -t nat -A POSTROUTING -o $ara1 -j MASQUERADE $IPB -A INPUT -p tcp -i $ara1 --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/second -j ACCEPT $IPB -A INPUT -p icmp -i $ara1 --icmp-type 8 -m limit --limit 1/second -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward
#chmod +x firewall Yazdığımız script'in çiktisi aşagidaki gibi olacaktir.
# Generated by iptables-save v1.2.7a on Sun Sep 12 00:37:15 2004 *nat :PREROUTING ACCEPT [13:1727] :POSTROUTING ACCEPT [13:2030] :OUTPUT ACCEPT [36:5662] -A POSTROUTING -o eth0 -j MASQUERADE -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Sun Sep 12 00:37:15 2004 # Generated by iptables-save v1.2.7a on Sun Sep 12 00:37:15 2004 *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -s ! 10.1.34.0/255.255.255.0 -i eth1 -j DROP -A INPUT -s 10.1.34.0/255.255.255.0 -i ! eth1 -j DROP -A INPUT -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP -A INPUT -i lo -j ACCEPT -A INPUT -s 192.168.1.1 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 192.168.1.1 -d 10.1.34.0/255.255.255.0 -i eth0 -p tcp -m state -- state RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT -A INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT -A INPUT -i eth0 -p ! icmp -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i eth0 -m state --state NEW -j DROP -A INPUT -s 10.1.34.0/255.255.255.0 -i eth1 -j ACCEPT -A INPUT -d 192.168.1.1 -i eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -d 192.168.1.1 -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -d 192.168.1.1 -i eth0 -p icmp -m icmp --icmp-type 3 -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT -A INPUT -i eth0 -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT -A FORWARD -s ! 10.1.34.0/255.255.255.0 -i eth1 -j DROP -A FORWARD -s 10.1.34.0/255.255.255.0 -i ! eth1 -j DROP -A FORWARD -s 127.0.0.0/255.0.0.0 -i ! lo -j DROP -A FORWARD -i eth0 -m state --state NEW -j DROP -A OUTPUT -d 10.1.34.0/255.255.255.0 -o eth0 -p tcp -m state --state NEW -m tcp --sport 80 -j DROP COMMIT # Completed on Sun Sep 12 00:37:15 2004
IPTABLES KOMUTLARI Netfilter /etc/sysconfig/iptables dosyasina kaydedilir.Bu dosya açilişlarda #iptables -L -n komutu ile iptables'ın durumu aşağıda görülmektedir. #iptables -L -n komutu ile iptables'ın durumu aşağıda görülmektedir. Chain INPUT (policy DROP) target prot opt source destination DROP all -- !10.1.34.0/24 0.0.0.0/0 DROP all -- 10.1.34.0/24 0.0.0.0/0 DROP all -- 127.0.0.0/8 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 192.168.1.1 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 192.168.1.1 10.1.34.0/24 tcp spt:80 state RELATED,ESTABLISHED ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68 ACCEPT !icmp -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED DROP all -- 0.0.0.0/0 0.0.0.0/0 state NEW ACCEPT all -- 10.1.34.0/24 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 192.168.1.1 icmp type 0 ACCEPT icmp -- 0.0.0.0/0 192.168.1.1 icmp type 8 ACCEPT icmp -- 0.0.0.0/0 192.168.1.1 icmp type 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x16/0x02 limit: avg 1/sec burst 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8 limit: avg 1/sec burst 5 Chain FORWARD (policy ACCEPT) target prot opt source destination DROP all -- !10.1.34.0/24 0.0.0.0/0 DROP all -- 10.1.34.0/24 0.0.0.0/0 DROP all -- 127.0.0.0/8 0.0.0.0/0 DROP all -- 0.0.0.0/0 0.0.0.0/0 state NEW Chain OUTPUT (policy ACCEPT) target prot opt source destination DROP tcp -- 0.0.0.0/0 10.1.34.0/24 tcp spt:80 state NEW
Dokümanı pdf formatında aşağıdaki adresten çekebilirsiniz: Yazan : Soner SAĞ __________________________ (1 vote)
|
Benzer yazılarEtiketlerEn son forum mesajlarıYaklaşan Aktiviteler |
Tesekkur
Elinize saglık Hocam.