Linux İşletim Sistemi ile Güvenlik Duvarı ve Sanal Ağlar Oluşturulması
 
 Edit�r'den
 Linux ile G�venlik  Duvar� ve Sanal A�lar
 Web Sayfas� Haz�rlama  ï¿½pu�lar�
 Windows G�venli�i - II
 Bili�im Uzman� m�,  G�neyli mi?
 Milyarlarca Dolar ��pe  Gitti!
 B�ro ��inde Boyun - Bel  Sorunlar�
 CISN Ar�iv
 Anket
 Geribildirim
 
     
 

Geçen sayımızda BİDB olarak kütüphanemizde satışa sunduğumuz Linux dağıtımlarını incelemiştik. Bu incelemenin üzerinden fazla bir zaman geçmeden bütün dağıtımlar yeni sürümlerini duyurdu. Slackware 9.0, Mandrake 9.1 ve RedHat 9.0 sürümü ile yeni görüntülerine kavuştular. Dağıtımların yeni özelliklerini daha sonraki sayılarımızda tekrar değineceğiz.

Bu sayımızda, oldukça ihtiyaç duyulan ve kullanılan teknik içerikli bir konuyu inceleyeceğiz. Internet ortamında çalışan bilgisayar kullanıcılarının saldırılarla karşılaşma oranı gün geçtikçe artmaktadır. Bu olumsuzluk karşısında güvenlik duvarı (firewall) olarak adlandırılan pekçok yazılımın yanında işletim sistemleri de kendi içerisinde bazı çözümler sunmaktadır.

Linux işletim sistemleri güvenlik duvarı çözümünü çekirdek düzeyinde sağlamaktadır. Bunun için kullanılan çekirdeğe gömülü ya da modüler olarak desteğin sağlanması gerekir. Linux işletim sistemi 2.0.x çekirdek serisinde ipfwadm, 2.2.x serisinde ipchains ve 2.4.x serisinde iptables programları ile filtreleme işlemlerini gerçekleştirmektedir. Çekirdek derleme sırasında ilgili programların seçilmesi ya da daha sonradan modül olarak çekirdeğe eklenmesi gerekir.

Yeni Linux sürümleri 2.4 çekirdek serisini kullanığı için, bu yazımızda iptables programını inceleyeceğiz.

Linux çekirdeğinde, Networking options è IP: Netfilter Configuration è IP tables support (required for filtering/masq/NAT) altında güvenlik duvarının kullanım amacına göre kullanılacak modüller seçilmelidir.

Linux işletim sisteminin standart güvenlik duvarı olarak kullanılması:

Çekirdek içerisine gömülü değil ise (genellikle bu yöntem tercih ediliyor);

/sbin/insmod ip_tables
/sbin/insmod iptables_filter
komutları ile modüller yüklenir.

Linux işletim sisteminde, güvenlik duvarında üç ana zincir (chain) vardır: GİRİŞ (INPUT), YÖNLENDİRME (FORWARD) ve ÇIKIŞ (OUTPUT). Bu zincirlerin varsayılan ayarlarının tanımlanması gerekir. Güvenlik duvarlarında varsayılan ayar olarak bütün paketler reddedilir (DROP) ve sadece istenen paketlere izin verilir (ACCEPT). Bunun için ilk olarak kullanılan iptables programının tam konumu belirtilir:

IPTABLES=/sbin/iptables

Sonra üç temel zincir için varsayılan ayarlar belirlenir:

$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT DROP
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD

Daha sonra istenen paketlerin geçişi için kurallar belirlenir. Örneğin, 144.122.202.19 nolu IP'den gelen ve aynı IP'ye giden paketlere izin vermek için;

$IPTABLES -A INPUT -s 144.122.202.19 -j ACCEPT
$IPTABLES -A OUTPUT -d 144.122.202.19 -j ACCEPT
komutları girilir. Benzer şekilde tek bir IP tanımlanabileceği gibi blok IP'ler de tanımlanabilir: $IPTABLES -A INPUT -s 144.122.202.0/255.255.202.0 -j ACCEPT
$IPTABLES -A OUTPUT -d 144.122.202.0/255.255.202.0 -j ACCEPT
Bunun yanında paketin türü (tcp, udp, icmp vb.) ve port numarasına göre de sınırlamalar yapılabilir. Bu filtrelemenin doğru çalışabilmesi için programların kullandığı paket türlerinin ve port numaralarının bilinmesi gerekir. Bu konuda Linux işletim sistemlerinde /etc/services dosyasından standart servisler hakkında bilgi edinilebilir: ftp-data         20/tcp
ftp-data         20/udp
# 21 is registered to ftp, but also used by fsp
Ftp              21/tcp
ftp              21/udp         fsp fspd
ssh              22/tcp         # SSH Remote Login Protocol
ssh              22/udp         # SSH Remote Login Protocol
telnet           23/tcp
telnet           23/udp
# 24 - private mail system
smtp             25/tcp         mail
smtp             25/udp         mail
Örneğin web sunucuları 80.porttan tcp paketleri ile hizmet verirler. Web sunucuna her yerden erişilmesi isteniyorsa aşağıdaki kuralların girilmesi gerekir: $IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 80 -j ACCEPT
Benzer şekilde DNS sunucuları 53.porttan hem tcp hem udp paketlerini kullanır. Örneğin DNS sunucusuna sadece ODTÜ'ye tanımlı IP'lerden (144.122 bloğu) erişilmesi isteniyorsa aşağıdaki kurallar tanımlanmalıdır: $IPTABLES -A INPUT -p tcp -s 144.122.0.0/255.255.0.0 --dport 53 -j ACCEPT
$IPTABLES -A INPUT -p udp -s 144.122.0.0/255.255.0.0 --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -d 144.122.0.0/255.255.0.0 --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -d 144.122.0.0/255.255.0.0 --sport 53 -j ACCEPT
Çekirdek içerisindeki değişik seçenekler kullanılarak iptables programı ile üst düzey filtrelemeler ve kayıt (LOG) tutma özellikleri de kullanılabilir.

Iptables programı ile sanal ağların oluşturulması:

Uluslararası standartlarda;

10.0.0.0      10.255.255.255
172.16.0.0    172.16.31.255
192.168.0.0   192.168.255.255
IP blokları sanal ağlar için ayrılmış durumdadır.

Internet kafelerde, yeterince IP'si olmayan yerlerde ya da güvenlik gerekçesiyle, Internet erişimi içeride sanal ağlar oluşturarak bir ya da birkaç makina üzerinden sağlanmaktadır. Bu işlem için Internet erişiminin sağlanacağı makina üzerinde, gerçek IP'nin tanımlandığı ethernet kartı (ya da modem) ve içerdeki sanal ağ bağlantısını sağlayan ikinci bir ethernet kartının takılı olması gerekir. İşletim sistemi olarak IP MASQUERADE yapılabilmesi için çekirdeğe /sbin/insmod iptable_nat komutu ile ilgili modülün yüklenmesi gerekir.

Örneğin, gerçek erişimin birinci ethernet kartı (eth0) ve sanal ağ erişiminin ikinci ethernet kartı (eth1) ile sağlandığını ve içerde 10'lu sanal ağ yarattığımızı kabul edersek;

DISAG="eth0"
ICAG="eth1"
GERCEKIP="144.122.202.19"
SANALIP="10.0.0.1"
SANALAG="10.0.0.0/255.0.0.0"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
$IPTABLES -t nat -F
$IPTABLES -t nat -A POSTROUTING -o $DISAG -j MASQUERADE
tanımlamaları yapıldıktan sonra sanal ağ içerisindeki bilgisayarlara IP olarak 10.x.x.x, subnet mask olarak 255.0.0.0 ve gateway olarak 10.0.0.1 girildiğinde Internet erişimi sağlanmış olacaktır.

Iptaples programına ve daha fazla bilgiye http://www.netfilter.org adresinden erişebilirsiniz.

Linux işletim sistemi ile bilişim dünyasında güven dolu yarınlara...

Selçuk Han AYDIN

 
     
  - BAŞA DÖN -