İPUCU

Linux Linux İle İlgili Bilgi Paylaşım Platformu

Seçenekler

Linux İşletim Sistemi ile Güvenlik Duvarı

19-09-2008 19:50
#1
Üyelik tarihi:
09/2008
Nereden:
BuRs4
Mesajlar:
1.490
Teşekkür (Etti):
0
Teşekkür (Aldı):
547
Konular:
1115
Ticaret:
(0) %
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 progr***** ve daha fazla bilgiye http://www.netfilter.org adresinden erişebilirsiniz.
Kullanıcı İmzası
§§§§§§§§§_§§§___§§§_§§§§§§§§§_§§§__§§§
___§§§____§§§___§§§_§§§___§§§_§§§_§§§_
___§§§____§§§___§§§_§§§§§§§§§_§§§§§§_
___§§§____§§§___§§§_§§§__§§§__§§§_§§§
___§§§____§§§§§§§§§_§§§___§§§_§§§__§§§


Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı