Linux Iptables - Netfilter Kurulumu



Benzer belgeler
Iptables. Deniz Özibrişim. Eylül, 2012

-D delete : Zinciri silmek için kullanılan komut; Silme işlemi için ya zincir numarası belirtilir ya da kuralın kendisi.

Linux Üzerinde İleri Düzey Güvenlik Duvarı Uygulamaları

C0R3 Bilişim Güvenliği Grubu

Kampüs Ağlarında Köprü-Güvenlik Duvarı (Bridge Firewall) ve Transparent Proxy

Netfilter + IPTables Güvenlik Duvarı. Sunan: Serdar KÖYLÜ

Saldırı Tespit ve Engelleme Sistemleri Eğitimi Ön Hazırlık Soruları

IpTables ve IpChains Ile Firewall. Mert ALTA

Ağ Nedir? Birden fazla bilgisayarın iletişimini sağlayan printer vb. kaynakları, daha iyi ve ortaklaşa kullanımı sağlayan yapılara denir.

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2. İçerik. IP ICMP MAC Tracert

Hping ile IP, ICMP ve UDP Paketleri Oluşturma

Gazi Üniversitesi Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü. Bilgisayar Ağları Dersi Lab. 2

NETFİLTER VE LİNUX TABANLI BİR FİREBOX TASARIMI

LINUX TA İNTERNET PAYLAŞIMI

Kurumsal Güvenlik ve Web Filtreleme

TCP / IP NEDİR? TCP / IP SORUN ÇÖZME

Kurumsal Güvenlik ve Web Filtreleme

ERİŞİM ENGELLEME DOS VE DDOS:

IPCop ile Ağ Güvenliği ve Yönlendirme. Kerem Can Karakaş.

İnternet ortamından iç ağa nasıl port yönlendirmesi yapılır (Virtual Host nasıl oluşturulur)

INHAND ROUTER LAR İÇİN PORT YÖNLENDİRME KILAVUZU

BİLGİSAYAR AĞLARI VE İLETİŞİM

Bölüm3 Taşıma Katmanı. Transport Layer 3-1

Free Cooling (Tibbo Ethernet Modüllü)

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

Web Servis-Web Sitesi Bağlantısı

NAT(Ağ Adresi Çeviricisi)

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

YAYGIN OLARAK KULLANILAN ADSL MODEMLER VE ROUTER AYARLARI

Ağ Topolojisi ve Ağ Yazılımları

TCP/IP. TCP (Transmission Control Protocol) Paketlerin iletimi. IP (Internet Protocol) Paketlerin yönlendirmesi TCP / IP

Güvenlik Duvarı ve İçerik Filtreleme Sistemlerini Atlatma Yöntemleri. Huzeyfe ÖNAL Bilgi Güvenliği AKADEMİSİ

SSH Tünelleme ile İçerik Filtreleyicileri Atlatmak

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 5. Yönlendiricilerde İşlem İzleme ve Hata Ayıklama

Knockd ile portlarinizi güvenli acin

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı EKi Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

Internetin Yapı Taşları

Bilgisayar Sistemleri ilk ortaya çıktığında...

LİNUX İŞLETİM SİSTEMİNİN KÖPRÜ MODUNDA ÇALIŞTIRILMASI VE GÜVENLİK DUVARI İŞLEMLERİ

Icerik filtreleme sistemlerini atlatmak icin kullanacağımız yöntem SSH Tünelleme(SSH in SOCKS proxy ozelligini kullanacagiz).

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı EKi Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

Bölüm 12: UDP ve TCP UDP (User Datagram Protocol)

ACR-Net 100 Kullanım Kılavuzu

Ağ Sızma Testleri ve 2. Katman Saldırıları Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

Wireshark Lab.: DNS. 1. nslookup

PALO ALTO FIREWALL NAT

Alt Ağ Maskesi (Subnet Mask)

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 8. Ağ Adresi Dönüştürme (NAT-Network Address Translation)

Cyberoam Firewall Kullanıcı ve Grup Oluşturma

Açık Kod VPN Çözümleri: OpenVPN. Huzeyfe ÖNAL

P-661HNU F1 ve P-660HNU F1 QoS Yönetimi

Bilgisayar Programcılığı

Ağ Temelleri. Murat Ozdemir Ondokuz Mayıs Üniversitesi Bilgi İşlem Daire Başkanı 15 Ocak Ref: HNet.23

Bilgisayar Ağları ve Ağ Güvenliği DR. ÖĞR. ÜYESİ KENAN GENÇOL HİTİT ÜNİVERSİTESİ ELEKTRİK-ELEKTRONİK MÜH.

Fedora Core Ağ Ayarları

IPv6 ve Güvenlik Duvarı

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

FTP ve Güvenlik Duvarları

Bilindik engelleme yöntemlerinin dışında olan, kurumsal web filitreleri nasıl aşılır?

ZyXEL Açilan ekranda ethernet baglantimizi bulalim ve yine sag tus-özellikler

TCPDUMP İLE TRAFİK ANALİZİ(SNİFFİNG)

EC-485. Ethernet RS485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

2. Use Dns lookup, Use relay server aralarında seçim yapınız. Biz Dns lookup ile SMTP-mizi çalıştırdık. DNS lookup kısmında domain adınızı yazınız.

Zilabs VoIP uygulaması için ADSL Ayarları

MCR02-AE Ethernet Temassız Kart Okuyucu

Internet in Kısa Tarihçesi

Gökhan AKIN ĐTÜ/BĐDB Ağ Grubu Başkanı - ULAK/CSIRT. Sınmaz KETENCĐ

Yrd. Doç. Dr. A. Burak İNNER

FreeBSD Ağ Uygulamaları

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

EC-232C. Ethernet RS232 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

Şekil 9.1 IP paket yapısı

Ssl Vpn konfigurasyonunda öncelikle Sslvpn yapmasına izin vereceğimiz kullanıcıları oluşturuyoruz.

Linux Çekirdeği 2.6 ve Güvenlik. Fatih Özavcı IT Security Consultant.

AHTAPOT Firewall Builder Kullanım Senaryoları

Elbistan Meslek Yüksek Okulu Güz Yarıyılı

Java ile geliştirdiğiniz web uygulamalarını yayınlamak için bir java sunucusuna ihtiyacınız vardır. Apache Tomcat server bunlardan birisidir.

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

Şekilden daha iyi anlaşılacağı gibi kırmızı veriler zararlı olup ateşi ifade ediyorlar. Ortadaki ateş duvarı da zararlı içeriği tanımlayıp ateşin

Bilgisayar Programcılığı

BİLGİSAYAR AĞLARI VE İLETİŞİM

Cisco 881 Router ve AirLink ES4X0, WAN Failover Tanımı

Kurumsal Ağlarda Kullanılan Güvenlik Sistemlerini Atlatma. Huzeyfe ÖNAL Bilgi Güvenliği AKADEMİSİ

TCPDump Kullanımı. Afşin Taşkıran. Tcpdump, Unix/Linux benzeri sistemler için vazgeçilmez paket yakalama ve analiz aracıdır.

OpenBSD Pf ve Squid ile Transparent Proxy Kurulumu.!!Bu yazıda OpenBSD 3.7 işletim sistemi kullanılmıştır.

Ağ Temelleri Semineri. erbil KARAMAN

AĞ HĠZMETLERĠ MODÜLÜ 1. TAŞIMA KATMANI PROTOKOLLERİ

Firewall Log Server. Kurulum Kılavuzu

DNS Nedir? HİKMET TÜYSÜZ

-Floating, Wan ve Lan arayüzleri için ayrı kural yazma alanı vardır.

FreeBSD Üzerinde VLAN Kullanımı

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

ProFTPD FTP Sunucusu. Devrim GÜNDÜZ. TR.NET Sistem Destek Uzmanı.

Transkript:

Linux Iptables - Netfilter Kurulumu Soner SAĞ sonersag@yahoo.com Internete 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 Shell ) 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 bulunmadigina inandığı andan sonra içeri girmesine izin verir.ama bulaşici bir hastalik taşiyip taşimadiğini 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? İptables paket başlık bilgisinin kontrolu ve değiştirilmesi gibi işlevleri yerine getirerek çalişir. PREROUTING R FORWARD POSTROUTING INPUT OUTPUT LOCAL PROCESS PREROUTING :Her paketin uğradığı ilk kural alandır.paket bu alanda filitre işlemine girmez. R :Çekirdeğin paket bilgisine bakarak yönlendirme yaptiğı alandır.local process'i ilgilendiren bir paketse INPUT alanına gönderilir. INPUT :Local process'i ilgilendiren paketler burada kontrol edilir.filitre işleminden geçirilebilir. FORWARD :iletilen paketler bu alandan geçer.paket filitre işlemine sokulabilir. OUTPUT :Local process'den gönderilen paketlerin uğradığı ilk alandır. POSTROUTING :Giden paketlerin son noktasidir.filtre alanı değildir.kural alanıdır. NAT - AĞ ADRES ÇEVİRİMİ Firewall'larin bir görevi de ağ adres çevrimidir.(nat-network Address Translation).NAT paketlerin kaynak host'unun değiştirilmesi ile uygun ağa aktarilacak hale getirilmesidir.iki farklı ağ arasinda bu şekilde haberleşme mümkün olur.genelde küçük ve orta ölçekli ağlarda kordinasyonu sağlayan linux sistemde iki ethernet arabirimi olur ve bu arabirimlerden ilki (eth0) Internet yüzüne diğeri (eth1) ise LAN tarafindadir.bu sistemlerde iptable_nat modülü yüklü olmalıdır.normalde sistemde yüklü gelir.kontrol etmek için #lsmod yazılarak yüklü modüllere bakılabilir.eğer yüklü değilse #modprobe iptable_nat yüklenir. Paket adreslerini yönetmek için PREROUTING, POSTROUTING zincirleri kullanılır. Sistemde paket yönlendirmesi yapılmış olmalidir. #echo 1 > /proc/sys/net/ipv4/ip_forward veya /etc/sysctl.conf dosyasının içindeki net.ipv4.ip_forward=1 şeklinde olmalıdir. #sysctl -w net.ipv4.ip_forward=1 komutu ile değişken değiştirilebilir.

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ımladiği bir zinciride ekleyebilir. TANIMLI ZİNCİRLER INPUT Gelen paketler için kurallar zinciri. OUTPUT Giden paketler için kurallar zinciri. FORWARD Yönlendirilen paketler için kurallar zinciri. PREROUTING Sadece NAT içindir.gelen paketlerin değiştirilmesi için. POSTROUTING Sadece NAT içindir.giden paketlerin değiştirilmesi için. Not : Bu zincirler silinemez. 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 eth1 arabiriminden gelen 10.1.34.0 ağına ve 255.255.255.0 netmask'ına ait paketler kabul ediliyor. IPTABLES HEDEFLERİ ACCEPT DROP REJECT RETURN QUEUE Paketlerin geçisine izin verilir. Paketlerin geçişine izin verilmez. Paketlerin erişimi reddedilir ve gönderen bilgilendirilir. Zincirin sonuna gönderilir. Paketler kullanıcı alanına gönderilir. IPTABLES PARAMETRELERİ -A ZİNCİR Zincire kural ekler. -E ZİNCİR Zinciri yeniden adlandırır. -D ZİNCİR Zincirden bir kural siler. -D ZİNCİR <no> Zincirden belirtilen numaradaki kurali siler. -L ZİNCİR Belirtilen zincirdeki kurallari gösterir. -E ZİNCİR Zinciri yeniden adlandirir. -l ZİNCİR <no> Zincirde belirtilen numaralı alana kuralı ekler. -R ZİNCİR Zincirde kuralın yerine başkasını koyar. -R ZİNCİR <no> Zincirde belirtilen numaralı alana bir başkasını koyar. -N ZİNCİR Yeni bir zincir oluşturur. -X ZİNCİR Kullanıcının eklediği bir zinciri siler. -F ZİNCİR Zincirdeki kuralların tümünü siler. -P ZİNCİR Zincire genel politika ekler. Not : Zincirler ( INPUT,OUTPUT,FORWARD ve POSTROUTING PREROUTING ) büyük harflerle yazılır.

IPTABLES SEÇENEKLERİ! Kuralı tersine çevirir. -s [!] <adres/mask> Kaynak adresini belirtir.127.0.0.1/255.0.0.0 gibi.. -p [!] <port> UDP,TCP,ICMP,ALL protokollerinden biri kullanılır.all hepsi içindir. --sport [!] <port> Kaynak portu belirtir.etc/services da listelenen port isimleri olabilir ya da numarasıyla yazılabilir. --source-port <port> --sport ile aynı -d [!] <adres/mask> Varış adresidir. --dport [!] <port> Variş portudur. --icmp-type <tip> ICMP (Internet Control Message Protocol)tipini belirtir. -i [!] arabirim eth1,ppp0 gibi... -j <hedef> Kural için belirtilen zincirde hedef belirtir.-j ACCEPT gibi.. --to-source <adres> Yeni kaynak ip'si yazar SNAT ile kullanılır. --to-destination <adres Yeni variş ip'si yazar.dnat ile kullanılır. -o [!] <arabirim> Çıkan ve yönlendirilen zincirlerde kullanılır.(-o ppp1 gibi) -t <tablo> Tabloyu belirtir.nat tablosu için -t nat şeklinde yazilir. -m <modül> Kullanılacak modülü belirtir.-m limit gibi --state State (durum) modülü içindir.new,invalid,related ve ESTABLISHED seçenekleri içindir. --tcp-flags TCP flag'laridir.ack,fin,rst,urg,syn,ps veya ALL. --syn --limit <no/saniye> SYN paketlerini kontrol etmek içindir. Saniye başina eşleşme hızını kontrol etmek için kullanılır. -V Iptables'ın versiyonunu öğrenmek için kullanılır. --mac-source[!]<adress> Belirtilen fiziksel adres için işleme alinir yada alinmaz. Iptables'da CIDR (Classless Inter-Domain Routing) adres biçimide kullanabilirsiniz 192.168.1.0/24 -------------------- 192.168.1.0/255.255.255.0 /8 255.0.0.0 (8 bitlik ağ alanı 24 bitlik host alanı) /16 255.255.0.0 (16 bitlik ağ alanı 16 bitlik host alanı) /24 255.255.255.0 (24 bitlik ağ alanı 8 bitlik host alanı) /26 255.255.255.192 (26 bitlik ağ alanı 6 bitlik host alanı) GENEL BİR SCRİPT İlk önce iptables komutunu yazar bir kural eklemek için -A yazıp hangi zincire uygulayacaksaniz onu yazarsiniz. Mesela: # iptables -A INPUT -s 10.1.34.1 -j ACCEPT 10.1.34.1 adresinden gelen tüm paketler kabul ediliyor.veya tam tersi #iptables -A INPUT -j ACCEPT! -s 10.1.34.1 10.1.34.1 adresinin dişinda gelen tüm paketler kabul ediliyor.

Tüm bir ağı kapsayan kurallar için ağ adreside belirtilebilir. #iptables -A INPUT -s 10.1.34.0/255.255.255.0 -j ACCEPT Anlaşildiği gibi 10.1.34.0 ağındaki paketler kabul edilebilir. Iptables'ı öğrenmenin en iyi yolunun bir kurallar bütününü bulup onu okumaktan geçtiğine inaniyorum. Yukaridaki iptables komutundaki ACCEPT 10.1.34.1 ağlari için paketin olumlu kabul edilerek bir sonraki zincire aktarilacağini göstermektedir. İptables yazilmaya başlanirken önce paket yönlendirme kapatilir.sontra tüm zincirlerdeki kurallar silinir. #echo 0 > /proc/sys/net/ipv4/ip_forward #iptables -F INPUT #iptables -F OUTPUT #iptables -F FORWARD Artik iptables'in durumuna baktiğimizda boştur.bakmak için #iptables -L -n parametreleri kullanılabilir yada Redhat sistemlerde #service iptables status yazılarak yazdığımız iptables'ın durumu görülebilir. Zincirlerin genel politikasını belirtmek için ise; #iptables -P INPUT DROP #iptables -P OUTPUT ACCEPT #iptables -P FORWARD ACCEPT Burada dişaridan bağlantı yapmak isteyen paketlere izin verilmemektedir. Çikan paketler ve iletilen paketlere izin verilmiştir. #iptables -A INPUT -j DROP -i eth1! -s 10.1.34.0/255.255.255.0 #iptables -A FORWARD -j DROP -i eth1! -s 10.1.34.0/255.255.255.0 eth1 arabiriminden gelen paketlerin kendi ağımıza ait olup olmadığı kontrol ediliyor. #iptables -A INPUT -j DROP -i! eth1 -s 10.1.34.0/255.255.255.0 #iptables -A FORWARD -j DROP -i! eth1 -s 10.1.34.0/255.255.255.0 eth1 dişinda gelen paketlerin kaynak ip adreslerinin bizim ağimizla aynı olup olmadiği kontrol edilerek böle paketler reddediliyor.ip Spoof olarak adlandırılan ip dolandırıcılığına engel olmak için önlem alınıyor. #iptables -A INPUT -j DROP! -i lo -s 127.0.0.0/255.0.0.0 #iptables -A FORWARD -j DROP -i! lo -s 127.0.0.0/255.0.0.0 loopback arabirimimiz için de aynı kontrolu yapıp bu paketleri reddediyoruz. #iptables -A INPUT -j ACCEPT -i lo Kendi sistemimizin haberleşmesi için gönderilecek ve alınacak paket trafiğine izin veriyoruz. #iptables -A INPUT -j ACCEPT -p -tcp -i eth0 dport 80 -s 192.168.1.1 #iptables -A INPUT -m state state ESTABLISHED,RELATED -i eth0 -p tcp sport 80 -s 192.168.1.1 -d 10.1.34.0/255.255.255.0 -j ACCEPT #iptables -A OUTPUT -m state state NEW -o eth0 -p tcp sport 80 -d 10.1.34.0/255.255.255.0 -j DROP

Dış ağdan web sunucumuza erişim izni veriyoruz.ikinci satirda ise kurulmuş bağlantılara izin vererek, web sunucumuzu kendi ağimizda çalişir hale getiriyoruz.web server'ımız 192.168.1.1'dir.İstersek başka bir arabirime yada başka bir makinayida web sunucu olarak çalıştırabiliriz.web sunucusu dışardan ve kendi ağımızdan gelen isteklere cevap vermekte fakat kendi ağımızla bağlantı kurmasına izin verilmemekte.web server üzerinden ağımıza mudahale etmek isteyen olabilir. #iptables -A INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j ACCEPT DHCP serverımızın varlığınıda kurallarımız arasına belirtiyoruz. #iptables -A INPUT -m state state ESTABLISHED,RELATED -i eth0 -p! icmp -j ACCEPT Dış ağlara netfilter üzerinden erişim izni vermek için kurulu bağlantılar korunarak ICMP paketleri dışındaki bütün paketler kabul ediliyor. #iptables -A INPUT -m state state NEW -i eth0 -j DROP #iptables -A FORWARD -m state state NEW -i eth0 -j DROP Dış ağdan gelecek SYN paketlerini reddediyoruz.dişardan bağlantı başlatılmasını bu sayede engelliyoruz. #iptables -A INPUT -j ACCEPT -p all -i eth1 -s 10.1.34.0/255.255.255.0 Ağımıza gelen tüm paketler kabul ediliyor. #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE eth1'de olan ağımızın (10.1.34.0) eth0 dan çıkışını ayarlayıp maskeleme oluşturuyoruz.(nat) #iptables -A INPUT -j ACCEPT -p icmp -i eth0 icmp-type 0 -d 192.168.1.1 #iptables -A INPUT -j ACCEPT -p icmp -i eth0 icmp-type 8 -d 192.168.1.1 #iptables -A INPUT -j ACCEPT -p icmp -i eth0 icmp-type 3 -d 192.168.1.1 ICMP paketlerine izin veriyoruz.icmp (Internet Control Message Protocol). TÜM ICMP MESAJ TİPLERİ 0 Echo Cevabı 3 Hedefe ulaşilamiyor. 4 SQ 5 Tekrar Yöneltme 8 Echo İsteği 11 Parametre Problemi 12 Zaman Aşımı 13 Zaman Damgası İsteği 14 Zaman Damgası Cevabı 15 Bilgi İsteği 16 Bilgi Cevabı 17 Adres Maske İsteği 18 Adres Maske Cevabı

#iptables -A INPUT -p tcp -i eth0 --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT Port taramalarından korunmak için eşleşmeyi 1 saniye veriyoruz. #iptables -A INPUT -p icmp -i eth0 --icmp-type 8 -m limit --limit 1/s -j ACCEPT Ping of Death ataklar'dan korunmak için eşleşmeyi 1 saniye veriyoruz. echo 1 > /proc/sys/net/ipv4/ip_forward Daha sonra gerekebilir düşüncesi ile aşagidaki dosyayi firewall adı ile kaydedebilirsiniz. #!/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. # # sonersag@yahoo.com 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 #./firewall #service iptables save veya #iptables-save > /etc/sysconfig/iptables 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 #iptables-save > /etc/sysconfig/iptables iptables-save komutu kuralları standart çiktıya gönderir. #iptables-restore < /etc/sysconfig/iptables iptables-restore komutu kuralları geri yüklemek için kullanılır. Netfilter /etc/sysconfig/iptables dosyasina kaydedilir.bu dosya açilişlarda ve service iptables start komutu verildiğinde kontrol edilecektir.

Ayrıca #service iptables save komutu ile /etc/sysconfig/iptables dosyasına değişiklikleri yansıtabilirsiniz. #service iptables stop iptables'ı durdurulur. #service iptables start iptables başlatir. Service iptables status iptables kurallarını gösterir. #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 Yazan : Soner SAĞ E-Mail : sonersag@yahoo.com