[LinuxFocus-icon]
Ev  |  Eri�imd�zeni  |  ��indekiler  |  Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

Vincent Renardias
taraf�ndan Vincent Renardias
<vincent(at)renardias.com>

Yazar hakk�nda:

1993'den beri GNU/Linux kullan�c�s� olan Vincent Renardias, 1996'da kendi geli�tirmelerine ba�lad�:Debian geli�tiricisi, GIMP ve GNOME'un Frans�zca �evirmeni, Marseille (PLUG)'daki Linux Kullan�c� Grubu'nun kurucusu...�u an EFB' �irketinde ARGE y�neticisi.GNU/Linux hakk�nda yazmaya devam ediyor.



T�rk�e'ye �eviri:
�zcan G�ng�r <ozcangungor(at)netscape.net>

��erik:

 

Linux ile Paket Filtreleme

[Illustration]

�zet:

Bu makale ilk defa Linux Magazine France'�n g�venlik �zerine olan b�l�m�nde yay�nlanm��t�r.Edit�r, yazarlar ve terc�manlar, bu konu hakk�ndaki her makalenin LinuxFocus'ta yay�nlanmas�na izin vermi�lerdir.LinuxFocus, bunlar� �ngilizce'ye �evirir �evirmez size sunar.Bu i�le ilgili b�t�n ki�ilere te�ekk�r ederim.Bu tan�t�m, bu k�kene ait b�t�n makalelerde yer alacakt�r.


Davetsiz te�ebb�slerden korunman�n iyi yolar�ndan biri, a�daki gereksiz her�eyi filtrelemektir.Bu i� genellikle firewall denilen makinalarla yap�l�r.
Bu makalede, b�yle bir sistemin gerekli temel uygulamalar�n� ve ayarlar�n� nas�l yapabilece�inizi g�sterce�iz.


_________________ _________________ _________________

 

A�ge�idi, Proxy-Arp yada Ethernet K�pr�s�(Bridge)

Filtreleme mekanizmas�, ba� istenmeyen paketleri yakalayan bir a� olarak d���n�lebilir.�nemli olan, uygun b�y�kl�kte bir ay bulmak ve onu uygun bir yere yerle�tirmektir.


A�da firewall'un yeri
Firewall location

Paketli iyi bir �ekilde filtrelemek i�in filtreleme mekanizmas�, korunacak a� ile "d�nyan�n geri kalan k�sm�" aras�na konmal�d�r.Bu genelde, biri i� a�a, di�eri d��ar�yla ba�lat� kuran router'a ba�l� iki a� aray�zleri(genellikle ethernet) ile yap�l�r.B�ylece veriler, i�eri�ine g�re veri ge�i�ine izin veren ya da vermeyen firewall i�inden ge�mek zorunda kal�r.
Filterleme mekanizmas�na sahip makina �� farkl� �ekilde ayarlanabilir:

- Basit" a�ge�idi: Bu en �ok kullan�lan ayarlamad�r.Makina, iki a� aras�na veya alta�lar aras�nda a�ge�idi olarak kullan�l�r.Yerel a�daki bilgisayarlar, varsay�lan route olarak router yerine bu a�ge�idini kullan�rlar.

- Proxy-Arp" a�ge�idi: Bir �nceki ayralama, a�� alta�lara b�ler.Bu da IP adreslerinin yar�s�n� yok eder ve biraz can s�k�c�d�r.A� ve broadcast adresleri kullanl�rken, 16 adresli(a�maskesi 28 bit olan) bir alta� �rne�inde sadece 14 adres kullan�labilir.Alta�a bir bit eklersek, 14 adresi 6'ya d���r�r�z(8 IP eksi a� ve broadcast adresleri).Bu IP kay�plar�n� istemeyece�iz i�in bu makalenin ileri b�l�mlerinde a��klanacak bir y�ntemi kullanabilirsiniz.Dahas�, bu y�ntemle, ne var olan makinalar�n a� ayarlar�nda ne de router'da bir de�i�iklik gerekmez.

- Ethernet K�pr�s�: bir ethernet a�ge�idi(IP a� ge�idi de�il) kurmak, filtereleme mekanizmas�n�n di�er makinalar taraf�ndan g�r�nmesini engeller.Bu t�r bir ayar, Ethernet aray�zlerine herhangi bir IP adresi vermeden yap�labilir.Bu makina, ping, traceroute gibi ara�larla bulunamaz.Bu y�ntemi ancak 2.2.x kernel ile yapabilirsiz.��nk� 2.4.x kernellerde bu �zellik hen�z tamamlanmad�.  

Temel Filtreleme Kurallar�

�imdi, filremizi nereye kuraca��m�z� biliyoruz ve neyi engelleyece�ini neyi kabul edece�ini tan�mlamal�y�z.
B�yle bir filtreyi ayarlama iki �ekilde yap�labilir:

- �yi olan�: Sadece kural�n kabul eti�i paketler ge�er di�erleri ge�emez.
- K�t� olan:(maalesef en s�k kullan�lan�) sadece istenmeyen paketler durdurulur ve di�erleri kabul edilir.

A��klamas� kolay:�lk durumda, bir kural�n unutulmas� servisin do�ru �al�mamas�na veya hi� �al��mamas�na sebep olur.Genellikle hemen farkedilir ve gerekli kural�n eklenmesi yeterlidir.
�kinci durumda, bir kural�n unutulmas�, bulunmas� zor olan bir a���a neden olabilir.

 

Netfilter

Linux 2.4 ile en �ok kullan�lan filtreleme yaz�l�m� Netfilter'dir.Linux kernel 2.2'deki 'ipchains'i de�i�tirir.Netfilter iki b�l�mden olu�ur:kernel ile derlenmesi gereken kernel deste�i ve sisteminizde kullan�labilir olan 'iptables' komutu.

 

�rnek Ayar

��inde a��lamas� olan bir �rnek, uzun bir konu�madan daha iyidir.Sonra filtreleme mekanizmas�n�n nas�l y�klenece�ini ve nas�l ayarlanaca��n� a��klayaca��z.�nce makina, Proxy-Arp kullan�larak bir a�ge�idi olarak �al��acak ve IP adreslerinin say�s�n� s�n�rlayacak.Sonra filtreleme mekanizmas�n� ayarlayaca��z.

Yazar, Debian da��t�m� i�in bir �nceli�e sahiptir ancak di�er da��t�mlarla da yap�l�r.

�nce, kernelinizde Netfilter deste�i olup olmad���n� kontrol edin.E�er varsa a��l�� iletilerinde �unu g�rmelisiniz:

ip_conntrack (4095 buckets, 32760 max)
ip_tables: (c)2000 Netfilter core team

Yoksa, Netfilter deste�ini se�tikten sonra kerneli tekrar derlemelisiniz.Aranan se�enekler, "Networking Options" alt�ndaki "Network Packet Filtering" altme�s�ndedir."Netfilter Configuration" b�l�m�nden, gerekli se�enekleri i�retleyin.��phe duydu�unuz se�eneklerde, hepsini se�ebilirsiniz.Dahas�, Netfilter'i kernel eklemek, mod�l olarak kullanmaktan daha iyidir.E�er herhngi bir sebeple Netfilter mod�llerinde bir �al��mazsa, filtreleme �al��maz.En iyisi olabilecel risklerden bahsetmeyelim.

Ayr�ca 'iproute2' paketini de y�klemelisiniz(Bu sonuncusu, zorunlu de�il ancak �rne�imizde kullanca��z ��nk� ayarlama scriptlerinin kolayla�mas�n� sa�layacakt�r).Debian ile, 'apt-get install iproute' komutunu vermeniz yeterlidir.
Di�er da��t�mlarda, kar�� gelen paketi bulun.Y�kleyin veya a�a��da kaynak kodu verilmi�tir.�ndirin ve derleyin:
ftp://ftp.inr.ac.ru/ip-routing/

�imdi iki Ethernet kart� ayarlanmal�d�r.Linux kernelinin, bir ethernet kart�n� bulduktan sonra di�erini aramay� b�rakt���n� belirtelim.Yani sadece ilk kart bulunacakt�r.
��z�m i�in �unu lilo.conf dosyas�na ekleyin:
append="ether=0,0,eth1"

�imdi Ethernet aray�zlerini ayarlayal�m.Kullanaca��m�z y�ntem, bir IP adresinden tasarruf edebilmemiz i�in her iki karta da ayn� adresi vermemize izin vermektedir.
�rne�in: 10.1.2.96/28 alta��na sahip olal�m.IP adreslerimiz 10.1.2.96 - 10.1.2.111 aral���ndad�r.Router, 10.1.2.97 adresine ve filtreleme makinas� 10.1.2.98 adresine sahiptir.eth0 aray�z�, e�er bir hub ya da switch kullan�lm�yorsa, router'a bir RJ45 cross ba�lant� ile ba�l�d�r. eth1 aray�z�, bir hub/switch'e ba�lan�p ordan yerel a�a ba�lan�r.

Her iki aray�z i�in de a�a��daki parametreler ge�erlidir:

address  : 10.1.2.98
netmask  : 255.255.255.240
network  : 10.1.2.96
broadcast: 10.1.2.111
gateway  : 10.1.2.97

Sonra, ayarlamalar� bitirmek i�in, a� kartlar�n�n ilk ayarlar�n�n yap�lmas�ndan sonra a�a��daki script kullan�l�r:

net.vars: ayarlama de�i�kenleri

PREFIX=10.1.2
DMZ_ADDR=$PREFIX.96/28
# Aray�z tan�mlamalar�
BAD_IFACE=eth0
DMZ_IFACE=eth1
ROUTER=$PREFIX.97


net-config.sh: a� ayarlar� scripti

#!/bin/sh
# Script �al���rken komutla�r  g�rebilmek i�in a�a��daki sat�r�n ba��ndaki diyezi silin
# set -x
# etc/init.d/net.vars dosyas�ndaki �nceden tan�mlanm�� de�i�kenleri okuruz
# Yerel a�dan �u anki rotalr� sileriz.
ip route del $PREFIX.96/28 dev $BAD_IFACE
ip route del $PREFIX.96/28 dev $DMZ_IFACE
# Yerel a�a eth1'den router'a eth0'da ulabilecek
# �ekilde ayarlar�z.
ip route add $ROUTER dev $BAD_IFACE
ip route add $PREFIX.96/28 dev $DMZ_IFACE
# Her iki aray�z�de de Proxy-Arp'� a�ar�z.
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
# Bir karta gelen verileri di�er karta iletebilmek
# i�in IP y�nlendirmesini a�ar�z.
echo 1 > /proc/sys/net/ipv4/ip_forward

Bizim ayarlamalar i�in gerekli olan Proxy-Arp mekanizmas�na geri d�nelim.
Ayn� a� i�erisindeki bir makina di�eriyle konu�urken, kendi IP adresine kar�� gelen Ethernet adresini(MAC adresini, donan�m adresini) bilmesi gerekmektedir.Sonra kaynak makina �u soruyu yay�nlar: 1.2.3.4 IP ardesine sahip aray�z�n MAC adresi nedir? ve kar�� makina cevap vermek zorundad�r.

Bu "konu�ma"n�n tcpdump ile al�nm�� bir �rne�i:
- istek: 172.16.6.72 IP'li makina, 172.16.6.10 IP'li makinan�n MAC adresini sormaktad�r:
19:46:15.702516 arp who-has 172.16.6.10 tell 172.16.6.72
- cevap: 172.16.6.10 IP'li makina kart adresini g�nderir:
19:46:15.702747 arp reply 172.16.6.10 is-at 0:a0:4b:7:43:71

Bu, bizi �u k�sa e��klmamaya g�t�r�r: ARP istekleri, yay�nlamalarla(broadcast) ile yap�l�r. B�ylece sadece bir fiziksel a� ile s�n�rl�d�r.router'�n MAC adresini ��renmeye �al��an korunan bir makinan�n iste�i, filtreleme makinas� ile kesilmelidir. Proxy-ARP �zelli�ini a�arak, sorunu ��zmemiye yar�m eder. ��nk� ARP istekleri sorar ve yay�lmak i�in bir karta gelenleri di�er karta g�nderir veya tam tersi.

Bu durumda, yerel a� ile d��ar�s� aras�ndaki tefi�i kontrol eden bir makina ile �al��an bir a��n�z olmal�.

Netfilter, dorudan paketler �zerinde oynamaz� sa�lar.Temel ayralamada, paketler 3 kural zinciri taraf�ndan y�netilir:
- INPUT: bir aray�ze gelen paketler i�in,
- FORWARD: bir aray�zden di�erine y�nlendirilen b�t�n paketler i�in,
- OUTPUT: bir aray�zden ��kan b�t�n paketler i�in.

'iptables' komutu ile herhangi bir zincire, filtreleme davran���n� etkileyen kurallar ekleyebiliriz, kurallar� silebiliriz veya de�i�tirebiliriz.
Dahas�, her zincir kendi varsay�lan poklitikas�na sahiptir. Yani herhangi bir kurala uyman paket geldi�inde ne yapaca��n� bilir.

�ok kullan�lan se�enekler �unlard�r:
- ACCEPT: paket ge�ebilir
- REJECT: paket reddedilir ve gerekli hata g�nderilir (ICMP port ula��lamaz, TCP S�f�rlama, duruma g�re)
- LOG: syslog'a paketle ilgili not yazar,
- DROP: paket reddedilir ve bir hata g�nderilmez.

Standart Zincirlerde Paket Ak���

Packet flow

Burada, iptables'�n b�t�n zincirleri de�i�tirebilecek se�enekleri bulunmaktad�r.Ayr�nt�lar�na daha sonra girece�iz:

-N: yani bir zincir olu�turur.
-X: bo� bir zinciri siler.
-P: bir zincirin varsay�lan ploitikas�n� de�i�tirir.
-L: bir zincirdeli kurallar� listeler.
-F: bir zincirdeki b�t�n kurallar� siler.
-Z: bir zincir i�inde ge�mi� b�t�n paket saya�lar�n� ve byte'lar�n� s�f�rlar.

Bir zinciri de�i�timek i�in a�a��daki komular kullan�labilir:
-A: bir zincirin sonuna bir kural ekler.
-I: zincirin belirtilen yerine bir kural ekler
-R: belirtilen kural�n zincir i�indeki yerini de�i�tirir.
-D: bir zincirde, tan�t�lm�� veya numaras� verilmi� bir kural� siler.

Pratik bir �rnek g�relim: Verilen bir makinadan gelen PING cevaplar�n� (yani 'echo-reply' tipindeki ICMP paketleri) engelleyelim.
�nce, verilen makinay� ping'leyebildi�imizi deneyelim:

# ping -c 1 172.16.6.74
PING 172.16.6.74 (172.16.6.74): 56 data bytes
64 bytes from 172.16.6.74: icmp_seq=0 ttl=255 time=0.6 ms

--- 172.16.6.74 ping statistics ---

1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.6/0.6 ms
�imdi, 172.16.6.74 IP'li makinadan gelen ICMP-Reply ('-p icmp --icmp-type echo reply') paketlerini engelleyecek kural� INPUT zincirine ekleyelim. Bu paketler, g�zard� edileceklerdir ('-j DROP').
# iptables -A INPUT -s 172.16.6.74 -p icmp --icmp-type echo-reply -j DROP

�imdi, bu makinay� ping'leyelelim:

# ping -c 3 172.16.6.74
PING 172.16.6.74 (172.16.6.74): 56 data bytes

--- 172.16.6.74 ping statistics ---

3 packets transmitted, 0 packets received, 100% packet loss

Bekledi�imiz gibi, cevaplar ge�emiyor. 3 cevab�n(252 byte'l�k 3 paket) ge�emedi�ini kontrol edebiliriz:

# iptables -L INPUT -v
Chain INPUT (policy ACCEPT 604K packets, 482M bytes)
 pkts bytes target     prot opt in    out     source       destination
  3   252   DROP       icmp --  any   any     172.16.6.74    anywhere

�lk duruma geri d�nmek i�in, INPUT zincirindeki ilk kural� silmeliyiz:

# iptables -D INPUT 1

�imdi, PING tekrar �el���yor:

# ping -c 1 172.16.6.74
PING 172.16.6.74 (172.16.6.74): 56 data bytes
64 bytes from 172.16.6.74: icmp_seq=0 ttl=255 time=0.6 ms

--- 172.16.6.74 ping statistics ---

1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.6/0.6 ms
#

��e yar�yor !

Var olan 3 zincire (bunlar hi�bir zaman silinemez) yenilerini ekleyebilrsiniz ve bunlar �zerinde de bir ak�� tan�mlayabilirsiniz.Bu, �rne�in, �e�itli zincirlerde ayn� kural� tekrarlaman�n�z� engeller.

�imdi, bir firewall i�in minimum kurallar� ayarlayal�m. SSH'e, DNS'e, http ve smtp'ye izin verir ve si�erlerini engeller.
Basitle�tirmek i�in, komutlar bir kabuk scriptinde yaz�lm��t�r. Script, yeni kurallar eklemeden �nce var olanlar� siler. Bu numara, kurallar�n ikinci kez yaz�lmas�n� engeller.

rc.firewall

#!/bin/sh

# Kurallar�n silinmesi
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD


# Zincir, do�rultuya g�re olu�turulur.
# bad = eth0 (d��ar�)
# dmz = eth1 (i�eri)
iptables -X bad-dmz
iptables -N bad-dmz
iptables -X dmz-bad
iptables -N dmz-bad
iptables -X icmp-acc
iptables -N icmp-acc
iptables -X log-and-drop
iptables -N log-and-drop

# Belirli zincir, paketleri engellemeden �nce onlar� kaydeder
iptables -A log-and-drop -j LOG --log-prefix "drop "
iptables -A log-and-drop -j DROP

# TCP bayraklar� kullan�lan paketler
# ve hi� kullan�lmam�� paketler engellenir.
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j log-and-drop
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j log-and-drop

# Bilinen IP adreslerinden gelen paketler engellenir.
iptables -A FORWARD -i eth+ -s 224.0.0.0/4 -j log-and-drop
iptables -A FORWARD -i eth+ -s 192.168.0.0/16 -j log-and-drop
iptables -A FORWARD -i eth+ -s 172.16.0.0/12 -j log-and-drop
iptables -A FORWARD -i eth+ -s 10.0.0.0/8 -j log-and-drop

# Kurulmu� ba�lant�lara ait paketler ge�irilir.
iptables -A FORWARD -m state --state INVALID -j log-and-drop
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# Paketin k�k�na ba�l� olarak, kar�� gelen zincir g�nderlir.
iptables -A FORWARD -s $DMZ_ADDR -i $DMZ_IFACE -o $BAD_IFACE -j dmz-bad
iptables -A FORWARD -o $DMZ_IFACE -j bad-dmz
# kalanlar engellenir.
iptables -A FORWARD -j log-and-drop

# Ge�irilen ICMPler
iptables -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
iptables -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
iptables -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A icmp-acc -j log-and-drop

# D��ar�s� -> ��erisi
# posta, DNS, http(s) ve SSH ge�irilir
iptables -A bad-dmz -p tcp --dport smtp -j ACCEPT
iptables -A bad-dmz -p udp --dport domain -j ACCEPT
iptables -A bad-dmz -p tcp --dport domain -j ACCEPT
iptables -A bad-dmz -p tcp --dport www -j ACCEPT
iptables -A bad-dmz -p tcp --dport https -j ACCEPT
iptables -A bad-dmz -p tcp --dport ssh -j ACCEPT
iptables -A bad-dmz -p icmp -j icmp-acc
iptables -A bad-dmz -j log-and-drop

# ��erisi -> D��ar�s�
# posta, DNS, http(s) ve telnet ge�irilir
iptables -A dmz-bad -p tcp --dport smtp -j ACCEPT
iptables -A dmz-bad -p tcp --sport smtp -j ACCEPT
iptables -A dmz-bad -p udp --dport domain -j ACCEPT
iptables -A dmz-bad -p tcp --dport domain -j ACCEPT
iptables -A dmz-bad -p tcp --dport www -j ACCEPT
iptables -A dmz-bad -p tcp --dport https -j ACCEPT
iptables -A dmz-bad -p tcp --dport telnet -j ACCEPT
iptables -A dmz-bad -p icmp -j icmp-acc
iptables -A dmz-bad -j log-and-drop

# Makinan�n kendisi i�in zincir
iptables -N bad-if
iptables -N dmz-if
iptables -A INPUT -i $BAD_IFACE -j bad-if
iptables -A INPUT -i $DMZ_IFACE -j dmz-if

# D�� aray�z
# Sadece SSH, bu makinaya ge�irilir
iptables -A bad-if -p icmp -j icmp-acc
iptables -A bad-if -p tcp --dport ssh -j ACCEPT
iptables -A bad-if -p tcp --sport ssh -j ACCEPT
ipchains -A bad-if -j log-and-drop

# �� aray�z
iptables -A dmz-if -p icmp -j icmp-acc
iptables -A dmz-if -j ACCEPT

Servis kalitesi hakk�nda birka� s�z. Linux, ToS(Type of service-servis tipi) alan�n� de�i�tirebilir ve pakete farkl� �ncelikler verebilir. �rne�in, a�a��daki komut, d��ar� giden SSH paketlerini, ba�lant� cevab�n� art�racak �ekilde de�i�tirir.

iptables -A OUTPUT -t mangle -p tcp --dport ssh -j TOS --set-tos Minimize-Delay

Ayn� �ekilde, '--set-tos Maximize-Throughput' ile FTP ba�lant�lar�n�n, oturumun interaktifli�inin zarar�na, veri aktar�m oran�n� art�rabilirsiniz.

Hepsi bu. Art�k etkili bir filtreleme sistemini ayarlamas�n�n temellerini biliyorsunuz. Yine de, g�venlik s�z konusunu oldu�unda firewall'un her derde deva olmad���n� ak�l�n�zdan ��karmay�n.Bu sadece bir �nlemdir. Firewall kurulumu, g��l� �ifreler kullanman�z�, son g�venlik yamalar�n� yapman�z�, sald�r� alg�lama sistemleri kullanman�z�, vs. engellemez.

 

Referanslar

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Vincent Renardias, FDL
LinuxFocus.org
�eviri bilgisi:
fr --> -- : Vincent Renardias <vincent(at)renardias.com>
en --> tr: �zcan G�ng�r <ozcangungor(at)netscape.net>

2003-04-23, generated by lfparser version 2.35