Eğer orta büyüklükte bir işletme sahibi iseniz yada ev ağınızdan internete çıkmak için piyasada bulunan router/firewall cihazlarına para vermek istemiyorsanız, bu makale sizin için yazılmıştır.
Evinizde bulunan eski bir bilgisayarınıza Fedora yükleyebilir, bu makine sayesinde internete çıkışınızı sağlayabilirsiniz.
Bu makalede bir Linux makinesinin bir router olarak nasıl ayarlanabileceğine bakacağız. ADSL bağlantısı ve Güvenlik Duvarı(Firewall) ayarları ile bilgileri ilerde yazacağım makaleler de yer vereceğim.
Bir Linux makinesinin router işlemini yerine getirebilmesi için paket yönlendirme fonksiyonun(packet forwarding) açık olması gerekmektedir. Basit olarak açıklamak gerekirse paket yönlendirme, Linux makinesini kullanarak kurulu ağlar arasında paketlerin yönlendirilmesi sağlamaktır..
Linux çekirdeğinde bu işlemi aktif hale getiren parametrenin adı net.ipv4.ip_forward’dır ve /etc/sysctl.conf dosyası içerisinde bulunur. Aktif hale getirmek için paket yönlendirme satırındaki # işaretini kaldırın ve net.ipv4.ip_forward = 0 değerini 1 ile değiştirin.
[root@erd-ltp-lynx-02 etc]# vi sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
Bu işlem paket yönlendirme işlemini bir sonraki sistemi başlatma durumunda aktif edecek ve /proc dizini altında özel bir dosya yaratacaktır. Bu özelliği hemen aktif hale getirmek için aşağıdaki komutu kullanabilirsiniz.
[root@erd-ltp-lynx-02 etc]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
[root@erd-ltp-lynx-02 etc]#
Eğer istemci aynı ağ üzerindeki bir arayüze paket göndermek isterse, ağ üzerinde ARP yayını yaparak göndermek istediği arayüzün MAC adresini sorar.
Eğer istemci bir başka ağa paket göndermek istiyorsa, o zaman işlemler biraz değişik yoldan yapılmak zorunda. Sunucu paketi göndermeden önce kendi yönlendirme tablosuna(Routing Table) bakaraki göndereceği paketi yönlendirebilecek en yakın router’ı bulur ve sunucu Router’ın IP adresine uygun ARP istemi gönderir. ARP istemi işlemi tamamlandıktan sonra sunucu router’ın MAC adresini kullanarak hedef IP adresinin bulunduğu paketi router’a gönderecektir.
Eğer ortamda bu görevi görebilecek bir router yoksa o zaman istemci ağa hedef IP adresi için bir ARP istemi gönderir. Bazı router’lar gelen bu ARP istemlerine cevap verirler ve bu router’lara proxy ARP denir.
Proxy ARP sunucularının bazı dezavantajları vardır. Bunlardan en sık görüleni bulunulan ağda iki adet Proxy ARP sunucusunun olmasıdır. Bu iki sunucudan bir tanesi istemcinin APR istemine cevap verecektir ki, eğer cevap veren sunucunun yönlendirme tablosu yanlış ise, hedef bilgisayara gidecek olan paketin kaybolma olasılığı yüksektir.
Router üzerinde Arp Proxy ayarlaması önerilen bir kurulum değildir(bknz. Linux Networking). Bunun yerine önerilen bir adet geçerli gateway kurulumu ve yönlendirme tablolarını router’lar üzerinde tutmanızdır. Bridging Mode’da çalışan bazı Güvenlik Duvarları(firewall) daha iyi çalışabilmeleri için ARP Proxy kurulumuna ihtiyac duyarlar.
Eğer Linux üzerinde ARP Proxy’i kurmak istiyorsanız /proc dizininde ayarlamalarda bulunmanız gerekir. Proxy ARP /proc/sys/net/ipv4/conf/ dizinindeki dosyalar tarafında kontrol edilir. Gerekli ayarlamalardan sonra bu dizin makinenize bağlı her network kartının fonksiyonlarına göre alt dizinlere bölünür. Her alt dizin içerisinde proxy_arp dosyası oluşturulur. Eğer bu dosya içerisindeki değer 0 ise o zaman bu network karı üzerindeki Proxy ARP iptal edilmiş demektir.
[root@erd-ltp-lynx-02 conf]# ls
all default eth0 lo
[root@erd-ltp-lynx-02 eth0]# ls -al
total 0
dr-xr-xr-x 0 root root 0 2008-06-14 21:56 .
dr-xr-xr-x 0 root root 0 2008-06-14 20:55 ..
-rw-r–r– 1 root root 0 2008-06-14 21:56 accept_redirects
-rw-r–r– 1 root root 0 2008-06-14 21:56 accept_source_route
-rw-r–r– 1 root root 0 2008-06-14 21:56 arp_accept
-rw-r–r– 1 root root 0 2008-06-14 21:56 arp_announce
-rw-r–r– 1 root root 0 2008-06-14 21:56 arp_filter
-rw-r–r– 1 root root 0 2008-06-14 21:56 arp_ignore
-rw-r–r– 1 root root 0 2008-06-14 21:56 bootp_relay
-rw-r–r– 1 root root 0 2008-06-14 21:56 disable_policy
-rw-r–r– 1 root root 0 2008-06-14 21:56 disable_xfrm
-rw-r–r– 1 root root 0 2008-06-14 21:56 force_igmp_version
-rw-r–r– 1 root root 0 2008-06-14 21:56 forwarding
-rw-r–r– 1 root root 0 2008-06-14 21:56 log_martians
-r–r–r– 1 root root 0 2008-06-14 21:56 mc_forwarding
-rw-r–r– 1 root root 0 2008-06-14 21:56 medium_id
-rw-r–r– 1 root root 0 2008-06-14 21:56 promote_secondaries
-rw-r–r– 1 root root 0 2008-06-14 21:56 proxy_arp
-rw-r–r– 1 root root 0 2008-06-14 21:56 rp_filter
-rw-r–r– 1 root root 0 2008-06-14 21:56 secure_redirects
-rw-r–r– 1 root root 0 2008-06-14 21:56 send_redirects
-rw-r–r– 1 root root 0 2008-06-14 21:56 shared_media
-rw-r–r– 1 root root 0 2008-06-14 21:56 tag
[root@erd-ltp-lynx-02 eth0]#vi proxy_arp
0
/etc/sysctl.conf dosyasını kullanarak proxy ARP sunucusu aktif hale getirebilir yada iptal edebilirsiniz. Aşağıdaki örneklerden birincisi tüm network kartları için, ikincisi ise sadece eth0 adlı network kartı için proxy ARP’ı aktif hale getirmektedir
# Proxy ARP fonksiyonunu tüm network kartlarında aktif hale getir
net/ipv4/conf/all/proxy_arp = 1
# Proxy ARP fonksiyonunu eth0 network kartı üzerinde aktif hale getir.
net/ipv4/conf/eth0/proxy_arp = 1
Daha sonra bu işlemi sysctl komutu ile etkinleşirin.
[root@erd-ltp-lynx-02 eth0]# sysctl -p
Şu ana kadar yaptığımız işlemler ile Linux makinemizi yönlendirici(router) ve bir adet proxy ARP sunucu olarak ayarladık. Ancak henüz işimiz bitmedi.
En son işlem olarak /etc/hosts dosyanızı ortamdaki sunucularınız için ayarlamanız gerecek. /etc/hosts dosyadı küçük ağlar için düzenlenmesi zor olmayan ve her türlü güncellemenin el ile yapıldığı dosyadır. Büyük ağlarda /etc/hosts dosyasının yerini DNS sunucuları alır.
#Benim makinem için /etc/hosts dosyası
127.0.0.1 erd-ltp-lynx-02 localhost.localdomain localhost
192.168.0.1 caucas.local
192.168.0.2 mail.caucas.local
host dosyasına giriş yaparken her satıra bir adet giriş yaptığınızdan emin olun. Eğer sunucunuza takma adlar ile ulaşılmasını istiyorsanız, IP adresi karşısına, sunucunuza ait tüm adları girebilirsiniz.
192.168.0.1 ali veli konya
Eğer her takma adı ayrı satırlarda girerseniz kullanıcılarınız sunucularınıza takma ad ile ulaşamayacaklardır. Çünkü Linux, host dosyasında bulduğu ilk adı kullanılır
#Host dosyası yanlış giriş
192.168.0.1 ali
192.168.0.1 veli
192.168.0.1 konya
Artık sizinde yönlendirme yapabilen bir adet Linux sunucunuz var. Bir sonraki makalede Linux ile network üzerinde sorun gidermeye çalışacağız.
Bir Başka Makalede Görüşmek Üzere…..
Erdal YAZICIOĞLU