3.5 Ağ Konfigürasyonu



Benzer belgeler
Fedora Core Ağ Ayarları

NFS (Network File System) & NIS (Network Information System) H. Coşkun Gündüz cgunduz@cs.bilgi.edu.tr

LINUX TA İNTERNET PAYLAŞIMI

Türkiye Linux Kullanıcı Grubu NFS & NIS. Kerem ERZURUMLU. kerem@linux.org.tr. 1. Linux ve Özgür Yazılım Şenliği.

CHAPTER 12. AĞ BİLEŞENLERİ ve AĞ AYARLARI

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

FreeBSD Üzerinde VLAN Kullanımı

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.

Kurumsal Güvenlik ve Web Filtreleme

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

Kurumsal Güvenlik ve Web Filtreleme

FreeBSD Üzerinde VLAN Kullanımı

FreeBSD Ağ Uygulamaları

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

# ifconfig le netmask broadcast

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

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

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

Linux Dosya ve Dizin Yapısı

Ağ Temelleri Semineri. erbil KARAMAN

MCR02-AE Ethernet Temassız Kart Okuyucu

Alt Ağ Maskesi (Subnet Mask)

Hping ile IP, ICMP ve UDP Paketleri Oluşturma

CHAPTER 9. DHCP Server

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Yönlendirme. Yönlendirme Protokolleri

Web Servis-Web Sitesi Bağlantısı

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

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

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

EC-100. Ethernet RS232/422/485 Çevirici. İstanbul Yazılım ve Elektronik Teknolojileri

Internetin Yapı Taşları

BIND ile DNS Sunucu Kurulumu

AĞ TEMELLERI. İSİM SOYİSİM: EMRE BOSTAN BÖLÜM: BİLGİSAYAR PROGRAMCILIĞI ÜNİVERSİTE: NİŞANTAŞI KONU: Konu 5. TCP/IP

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

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

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

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

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

AirTies Kablosuz Erişim Noktası (Access Point) olarak kullanacağınız cihazı bilgisayarınıza bağlayarak ayarlarını yapabilirsiniz.

Tuğrul Boztoprak. 1 Haziran 2009 III. ULAKNET Çalıştay ve Eğitimi

DNS Nedir? HİKMET TÜYSÜZ

Ipv6 Egitimi. Mustafa Reşit Şahin. Software Engineer.

Serdar SEVİL. TCP/IP Protokolü

LİNUX. Dosyalar ve dizinler

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

Clonezilla Server ile Ağ Üzerinden Çoklu İmaj Yükleme

FTP ve Güvenlik Duvarları

Sunucu İşletim Sistemini Ayarlamak ve Yönetmek

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

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

SERNET ET485CAS x2 RS485/RS422 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

FortiGate IPSec VPN (Gateway-to-Gateway) v4.00-build /02

Sunucu İşletim Sistemini Ayarlamak ve Yönetmek. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Virtual Router Redundancy Protocol (VRRP)

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

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri

Ağ Protokolleri. Aysel Aksu. Nisan, 2016

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

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

FreeBSD Erişim Kontrol Listeleri

AntiKor Güvenlik Sunucumu nereye yerleştirmeliyim?

SERVİS MENÜSÜ KULLANIM REHBERİ

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

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

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

DRAYTEK VIGOR 3300V VPN Dial-out Fonksiyonu

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

ÖNDER BİLGİSAYAR KURSU. Sistem ve Ağ Uzmanlığı Eğitimi İçeriği

Hping kullanarak TCP/IP Paketleriyle Oynama Hping-I

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

Yönlendiriciler ve Yönlendirme Temelleri

HAFTA-3 ARP (Address Resolution Protocol) (Adres Çözümleme Protokolü)

DRAYTEK VIGOR 3300V VPN Dial-in Fonksiyonu

Linux altında komut satırında...

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

SAMBA Linux Dosya Sunucusu

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

5651 ve 5070 Sayılı Kanun Tanımlar Yükümlülükler ve Sorumluluklar Logix v2.3 Firewall. Rekare Bilgi Teknolojileri

SpamTitan CD'den kurulum

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

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

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

OSI REFERANS MODELI-II

DHCP kurulumu için Client/Server mimarisine sahip bir ağ ortamı olmalıdır ki bu da ortamda bir Domain Controller olmasını zorunlu kılar.

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : Tarih : Copyright 2008 AKINSOFT

Uzaktan Kurulum Kılavuzu

WiFi Relay Sayfa 1 / 11. WiFi Relay. Teknik Döküman

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)

İşletim Sistemlerine Giriş

VPN NEDIR? NASıL KULLANıLıR?

Windows 2000 veya XP kurarken dosya sistemini seçmeniz gerekir. Ya FAT32 dosya sistemini kullanırsınız ya da NTFS.

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

Aktif Dizin Logon/Logoff Script Ayarları Versiyon

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

Free Cooling (Tibbo Ethernet Modüllü)

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

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgisayar Programcılığı

Transkript:

3.5 Ağ Konfigürasyonu Linux sürümlerinin hepsinde ağ arayüzleri ile ilgili öntanımlı bilgiler çeşitli dosyalarda saklanır ve açılış esnasında çalışan betiklerle aktif hale getirilirler. Bu betiklerin kabaca yaptığı iş birazdan örneklerini göreceğiniz şekilde ifconfig, route gibi komutları öntanımlı değerlerle kullanarak ağ arayüzlerini aktif hale getirmekten ibarettir. Öntanımlı değerler dağıtımdan dağıtıma fark göstermekle birlikte genelde SuSE, Fedora gibi dağıtımlarda /etc/sysconfig/network(-scripts)/ifcfg-ethx (X=0,1,2 eth0, eth1, eth2) dosyasıdır debian tabanlı dağıtımlarda ise /etc/network/interfaces dosyalarında saklanmaktadır. Bu dosyaları değiştirdikten sonra /etc/init.d/network restart komutu ile yeni ağ ayarlarının aktif olması sağlanmaktadır. Statik ve dhcp modunda ayar yapmak istediğinizde kullanabileceğiniz örnek konfigürasyon dosyalarını aşağıda görebilirsiniz /etc/sysconfig/network(-scripts)/ifcfg-eth0; Statik ip konfigürasyonu BOOTPROTO='static' BROADCAST='160.75.90.255' IPADDR='160.75.90.189' MTU='' NETMASK='255.255.255.0' NETWORK='160.75.90.0' REMOTE_IPADDR='' STARTMODE='onboot' UNIQUE='ZcKW.ijdEnB5Xfy7' Dhcp konfigürasyonu BOOTPROTO='dhcp' MTU='' REMOTE_IPADDR='' STARTMODE='onboot' UNIQUE='1HdK.gMQgFXiJio1' /etc/network/interfaces;

iface lo inet loopback iface eth0 inet static address 160.75.90.195 netmask 255.255.255.0 broadcast 160.75.90.255 gateway 160.75.90.254 iface eth1 inet dhcp Bu konfigürasyonlardaki parametrelerin ne anlama geldiğine bakacak olursak; BOOTPROTO=<boot protokolü>; Açılışta kullanılacak olan protokolü belirler. Seçenekler aşağıdaki gibidir. static Herhangi bir açılış protokolü kullanma bootp BOOTP protokolü kullan dhcp DHCP protokolü kullan BROADCAST=<broadcast adresi>; Broadcast adresi kısmına subnet maskesi gözönüne alınarak broadcast adresi yazılmalıdır. örneğin; IP Adresi :160.75.90.110 Subnet Maskesi :255.255.255.0 Broadcast Adresi :160.75.90.255 DEVICE=<aygıt ismi>; Aygıt ismi kısmına ağ aygıtının fiziksel ismi yazılmalıdır. Örneğin eth0, eth1 gibi. SuSE'de bu opsiyon kullanılmamaktadır. IPADDR=<ip adresi>; Adres kısmına ip adresi yazılmalıdır. NETMASK=<subnet maskesi>; Bu kısıma subnet maskesi yazılmalıdır. NETWORK=<ağ adresi>; Bu kısma ağ adresi yazılmalıdır. Örneğin; IP Adresi :160.75.90.110 Subnet Maskesi :255.255.255.0 Ağ Adresi :160.75.90.0 MTU=<>; Her ip paketinin maksimum boyutunu belirler. Default değeri 1500'tür. STARTMODE=<mode>; onboot, hotplug ve manual seçenekleri ile aygıtın açılışta aktive edilip edilmeyeceğini belirler. ONBOOT=<answer>; Bu kısımda yes veya no parametresine göre aygıtın açılışta aktive edilip edilmeyeceği belirlenir. Bazı dağıtımlarda bulunmaktadır.

UNIQUE=<>; İşletim sisteminin aygıta verdiği unique id numarasıdır. Daha öncede bahsedildiği gibi bu konfigürasyon dosyalarındaki değerleri network betiği tarafından ifconfig ve route gibi komutlarla kullanılarak aktif hale getirilirler. Konfigürasyon dosyalarında herhangi bir öntanımlı değere sahip olmayan veya bir sebepten dolayı aktif halde olmayan ağ arayüzlerini ifconfig komutu kullanılarak aktif hale getirilebilir. Bu komutla yapılacak olan konfigürasyonlar hafızada saklandığı için makine kapatıp açıldığında kaybedilir. Kullanılan her ağ kartının bir veya birden fazla internet adresi olabilir. Linux'a takılan birinci kart eth0 ismini alırken ikinci karta eth1, üçüncüye eth2... denir. Loopback cihazının ismi lo dur. ifconfig komutunu parametre vermeden kullanırsanız, Linux'a tanıtılan çevresel birimlerin listesi ekrana gelir. $ ifconfig lo Link encap:local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:493 errors:0 dropped:0 overruns:0 TX packets:493 errors:0 dropped:0 overruns:0 eth0 Link encap:10mbps Ethernet HWaddr 48:54:33:00:E8:3A inet addr:144.122.71.55 Bcast:144.122.71.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:171956 errors:0 dropped:0 overruns:0 TX packets:113212 errors:3 dropped:0 overruns:0 Interrupt:3 Base address:0x300 cclub.metu.edu.tr makinasının ifconfig bilgisi yukarıdaki şekildedir. Bu makina üzerinde tek ethernet kartı olup, ifconfig bilgisinde ikinci sırada yeralıyor. Kartla ilgili detaylı bilgi (her karta özgü donanım numarası, alınan ve verilen paket sayısı gibi) ifconfig çıktısında var. route komutunun genel kullanımı şu şekildedir: route [add del] [-net -host] varış_adresi [gw yönlendirici] seçenekler... host : paketin gideceği yer başka bir makina net : paketin gideceği yer başka bir ağ varış_adresi : paketin gideceği yer yönlendirici : bu paketin gidebilmesi için geçmesi gereken yönlendirici add : tabloya ekle del : tablodan sil Tablonun genel durumunu kontrol etmek için route komutuna parametre vermeden komut satırından yazın: cclub:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface localnet * 255.255.255.0 U 0 0 67 eth0 loopback * 255.0.0.0 U 0 0 3 lo default router71.ceng.m 0.0.0.0 UG 1 0 404 eth0 Çıktıdaki kolonların ne ifade ettiğine bakacak olursak;

Destination Gateway Genmask Flags Metric Iface : Paketin yönlendirileceği hedef ağ adresi : Paketin hedef ağa gidebilmesi için yönlendirildiği adres,* herhangi bir ağ geçidi tanımı yapılmadığını gösterir : Hedef ağın alt ağ maskesi : Yönlendirme kaydı için çeşitli manalar içerir. Örneğin; U : yönlendirilen yol açık, ulaşılabilir(up) H : Hedef bir bilgisayar (Host) G : Hedefe ağ geçidi kullanarak ulaşılacak! : Yasaklanmış ağ yönlendirmesi : Hedefe olan uzaklık (Genellikle kaç router'dan geçerek hedefe ulaşıldığı). Güncel çekirdekler tarafından kullanılmazlar ama yönlendirme yapan daemon'ların ihtiyacı olabilir : Yönlendirme sırasında kullanılacak ağ arayüzü Örnek tabloda üç ayrı yönlendirme girişi vardır. Birincisi, makinanın kendisi ile haberleşmesini sağlayacak olan loopback. İkinci satırda, yerel ağa gidecek olan tüm paketlerin yönlendiriciye verilmeden ağa yönlendirilmesi söylenmiş. Son sırada ise (default) paket ilk iki satırda yeralan varış adresinden farklı bir adrese gidecekse, önce yönlendiriciden geçip sonra dış dünyaya açılacağından yönlendiricinin IP adresi yazılmıştır. ifconfig, biraz karmaşık bir komuttur. Sistem yöneticisinden öğrenmeniz gereken subnet maskesi, broadcast adresi ve IP adresini kullanıp kartların konfigüre eder. ifconfig eth0 144.122.71.55 netmask 255.255.255.0 broadcast 144.122.71.255 Yukarıda ifconfig yardımıyla eth0 kartına hem bir IP adresi verilmiş, hem de bilgisayarın bulunduğu ağın özellikleri tanıtılmıştır. Bu andan sonra istendiği kadar route komutu ile makinadan çıkacak paketler için yeni yollar tanımlanabilir. route add -net... route add -host... ifconfig ve route komutlarının yaptığı değişiklikler hemen gerçekleşirken konfigürasyon dosyalarında yapılan değişikliklerden sonra daha öncede bahsedildiği gibi aşağıdaki betik çalıştırılarak yeni konfigürasyon değerleri aktif hale getirilir. $ /etc/init.d/network restart Bağlantıyı kontrol etmek İnternet adresini bilip çalıştığından emin olduğunuz bir makinaya telnet ile bağlantı yapmaya çalışın : $ telnet orca.cc.metu.edu.tr Connected to orca.cc.metu.edu.tr Escape character is ^] Ethernet kartının bağlantısını yazılım yoluyla kesmenin yolu ifconfig 'in down seçeneğidir. Örneğin tek ethernet kartı üzerinden İnternet bağlantınız var ve bunu hemen kesmek için aşağıdaki komutlardan herhangi birisini yazın.

# ifconfig eth0 down # ifdown eth0 ethernet bağlantısını yeniden açmak için aşağıdaki komutlardan herhangi birisini kullanabilirsiniz # ifconfig eth0 up # ifdown eth0 Bu işlem sonrasında yönlendirme bilgilerini yeniden girmeniz gerekebilir. ping komutu, ağınızda bulunan bir makineye ağ üzerinden istediğiniz boyutta paketler yollayıp karşıdaki makineden aldığı cevaplara göre ağ hızı açısından istatistiki bilgi veren bir uygulamadır. Bu bilgi sayesinde sizin makinenizin veya karşıdaki makinenin ağ bağlantısının problemli olup olmadığını ağ üzerinde paket gönderme hızlarında herhangi bir problem olup olmadığını kontrol edebilirsiniz. cclub:~# ping knidos.cc.metu.edu.tr PING knidos.cc.metu.edu.tr (144.122.199.20): 56 data bytes 64 bytes from 144.122.199.20: icmp_seq=0 ttl=253 time=34.0 ms 64 bytes from 144.122.199.20: icmp_seq=1 ttl=253 time=487.7 ms 64 bytes from 144.122.199.20: icmp_seq=2 ttl=253 time=3.6 ms --- knidos.cc.metu.edu.tr ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 3.6/175.1/487.7 ms Normalde ping komutu siz Ctrl+C (^C) tuş kombinasyonu ile kesmediğiniz sürece paket yollamaya devam eder. Yukarıdaki çıktıya bakacak olursanız hedef makineye 3 paket yollandığı ve 3 paketinde paket kaybı olmadan hedefine ulaştığı görülüyor. Ayrıca paketin ne kadar sürede hedef makineye gittiğini ve cevabın döndüğünü(rtt: Round Trip Time) gösteren istatistiklerde görülmektedir Rtt minimum Rtt avg(average) Rtt maximum : 3.6 ms 175.1 ms : 487.7 ms ping komutunun bir diğer kullanımı ise ağ bağlantısının performans sınırlarını görmek içindir. ping komutu flood modda (-f parametresi) çalıştırılarak saniyede 100 adet icmp paketi göndermek mümkündür. Bu değer normalde saniyede 1 icmp paketidir. ping komutu flood moda çalıştığında her yolladığı paket için ekrana bir nokta basar ve cevap aldığında bu noktayı siler. Ekranda sabit kalan nokta sayısının artması ağ bağlantısının limitlerine ulaşıldığını gösterir silivri:~ # ping www.google.com f PING www.l.google.com (64.233.161.147) 56(84) bytes of data.... --- www.l.google.com ping statistics --- 39 packets transmitted, 29 received, 25% packet loss, time 1530ms rtt min/avg/max/mdev = 172.649/174.683/177.651/1.207 ms, pipe 12, ipg/ewma 40.276/174.752 ms traceroute komutu TCP/IP network'ü üzerinden hedef makineye yollanan paketlerin rotasını takip eden bir uygulamadır. Paket ağ üzerinde hareket ederken üzerinden geçtiği

yönlendirme(routing) işlemi yapan cihazlarla ilgili bazı bilgileri çıktı olarak ekrana yönlendirir. silivri:~ # traceroute www.google.com traceroute to www.google.com (216.239.59.104), 30 hops max, 40 byte packets 1 yonlendirici.mydomain.tr (160.75.90.254) 0.224 ms 0.172 ms 0.168 ms 2 160.75.126.34 0.620 ms 0.335 ms 0.477 ms 3 195.175.7.65 1.621 ms 2.036 ms 1.929 ms 4 getepem160-gtepem20-1.ttnet.net.tr (195.175.10.53) 2.310 ms 2.192 ms 10.498 ms......... 9 216.239.43.96 1245.401 ms 1245.960 ms 1245.812 ms 10 216.239.43.97 1245.919 ms 1244.563 ms 1244.287 ms Bu çıktıda görüldüğü üzere her satırda bir yönlendirici cihazın ters alan adı kaydı varsa bu ad yoksa ip adresi bulunmaktadır. Bunun yanı sıra aynı satırda 3 adet RTT (Round trip time) kaydı milisaniye cinsinden bulunmaktadır. RTT (Round Trip Time) tanımı bir paketin yönlendirici makineye gönderilmesi ve geriye yollanan cevabın gelmesi için harcanan süreyi göstermektedir. 3 paket yollandığı için 3 adet kayıt bulunmaktadır. 12 216.239.46.173 1229.819 ms * * Bazen bazı satırlarda bir veya iki asterisk görürsünüz. Bu durumda yönlendirici makine hayatta ve cevap verebilir durumdadır. Ancak bir sebeple yollanan bir veya iki paketin cevabı gelmemiştir. Bu bir problem olduğunu göstermez, aslında normal bile sayılabilir. Yönlendirici makine bir sebepten dolayı bu paketleri yoksaymıştır. Çoğu sistem bunu yapar. Bunlar genellikle yönlendirici olarak kullanılan bilgisayarlardır. Örneğin solaris kullanan yönlendirici makinelerde ikinci RTT değeri asterisk'tir. Cevap alınamayan paketleri paket kaybı olarak tanımlamak yanlış bir yaklaşımdır. 13 216.239.49.254 1280.061 ms 1279.167 ms 1279.863 ms 14 216.239.48.158 1281.644 ms 1281.442 ms 1280.971 ms 15 216.239.49.117 1249.204 ms 1250.134 ms 1249.717 ms 16 * * * 17 * * * Eğer traceroute çıktısı aşağıdaki gibiyse bunun anlamı ilk olarak hedef sisteme ulaşılamıyor olmasıdır. Daha doğrusu traceroute paketlerinin hedefe ulaşamadıklarını göstermektedir. Bu bir network problemini işaret edebileceği gibi güvenlik önlemleri ve firewall'lar yüzünden paketlerin engellenmiş olabileceği anlamına da gelebilir. Bu durumda hedef makineyle diğer yollarla iletişim kurulup kurulamadığını kontrol etmek gerekir. traceroute komutu bazen aşağıdaki gibi çeşitli hata uyarıları da verebilir 4 rbrt3.exit109.com (208.225.64.50) 35.931 ms!h * 39.970 ms!h!h : Hedef makineye ulaşılamıyor!n : Ağ'a ulaşılamıyor!p : Protokole ulaşılamıyor!s : Kaynak rotası isteği başarılamadı!f : Parçalama gerekmekte. Yanlış konfigüre edilmiş router!x : Haberleşme engellendi. Ağ yöneticisi bu yönlendiricide traceroute paketlerini bloke etti

Bazı durumlarda traceroute çıktılarında iç ağlar için ayrılmış ip adresleri yada arka arkaya aynı adresin geldiğini görürsünüz. Bu ağ yöneticilerinin kendi ağları hakkındaki bilgileri saklamak için kullandıkları bir yöntemdir. Tracerotue ve Ping uygulamalarını birlikte kullanan mtr (My traceroute) uygulaması da mtr komutunun çalıştırıldığı makine ile hedef makine arasında ağ bağlantısının kalitesini paket kayıpları ve ping sürelerinin istatistiki bilgileri cinsinden gerçek zamanlı olarak programı sonlandırana kadar vermeye devam eder. Mtr komutunun çıktısını aşağıda görebilirsiniz. netstat komutu, makinanın ağ kartı üzerinden yapılan bağlantıların dökümünü çıkarır. cclub:~# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 cclub.metu.edu.tr:1947 ftp02.quicktime.appl:20 tcp 0 0 cclub.metu.edu.tr:1943 despair.thebandit.c:ftp tcp 0 0 cclub.metu.edu.tr:1424 despair.thebandit.co:20 tcp 0 0 cclub.metu.edu.tr:1932 ftp02.quicktime.app:ftp tcp 0 0 cclub.metu.edu.tr:1407 165.113.58.253:20 tcp 0 0 cclub.metu.edu.tr:1392 165.113.58.253:ftp tcp 0 0 cclub.metu.edu.tr:1377 ppp23.cc.metu.ed:telnet tcp 0 0 cclub.metu.edu.t:telnet pclabi_23.feas.met:7075 tcp 1 0 cclub.metu.edu.t:telnet ppp23.cc.metu.edu.:1054 TIME_WAIT tcp 0 0 cclub.metu.edu.t:telnet labmonitor.feas.m:10345 tcp 0 9495 cclub.metu.edu.t:telnet a5-03-asy27.bil-ro:1026 tcp 0 0 cclub.metu.edu.t:telnet pclabi_14.feas.me:15694 tcp 0 0 cclub.metu.edu.t:telnet stu21.math.metu.e:16158 Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 1 [ ] STREAM CONNECTED 232

unix 1 [ ] STREAM CONNECTED 299 unix 1 [ ] STREAM CONNECTED 327 unix 1 [ ] STREAM 591 3.5.1 Kontrol Dosyaları Konfigürasyonu tamamlamak için /etc dizini altında yeralan bazı dosyaların elden geçirilmesi gerekir. Bu dosyalar sistemin daha güvenli ve verimli çalışmasına yardım eder. Bu dosyaların belli başlı olanları ve ne işe yaradıklarını görelim. /etc/hosts dosyası; İnternet üzerinde yada ağınızda bulunan makinelerin hepsi genellikle konuşabilmek için TCP/IP protokolünü kullandıkları için bir ip adresine sahiptirler. Ağ üzerinden haberleşmek için kullanılan paketler bu ip adreslerine makine_adı yada alan_adı atanmak istendiğinde alan adı sunucusu (DNS) kurmaya gerek kalmadan bu kayıtları makineler üzerindeki /etc/hosts dosyası içerisinde tutarak aynı dosyaya sahip makineler arasında sanki alan adı sunucusunda kayıtları varmış gibi makine_adı ile haberleşme sağlanabilir. Her makinenin uzun isimleri yerine kısa bir kelime yazılarak sözkonusu makinaya ulaşılabilir. Örnek bir /etc/hosts dosyası : 127.0.0.1 localhost 160.75.199.20 atlas.cc.itu.edu.tr atlas İlk satırda loopback IP numarası ve buna karşılık gelen makina ismi vardır. Bu satırı silmemelisiniz. İkinci satırda ise atlas.cc.itu.edu.tr makinasının IP numarasını 160.75.199.20 olarak belirtilmiş ve bu bilgisayara "atlas" ismi ile de ulaşılabilmesi sağlanmıştır. Bu yöntem ancak küçük sayıda makine içeren ağlarda kullanışlı olabilir. Belli bir sayının üzerinde makine bulunan ağlarda alan adı sunucusu kurmak hem konfigürasyon yükü açısından hem de performans açısından avantajlıdır. /etc/host.conf dosyası bilgisayarın ip kullanarak adres çözümlemesi yapması gerektiğinde çözümleme işlemi için hangi sırayı izlemesi gerektiğini gösteren bir sıralama içerir. Sisteminizdeki host.conf dosyasına bakacak olursanız order hosts,bind multi on şeklinde bir sıralamayla karşılaşırsınız. Buradaki sıralamaya göre sistem ip ile adres çözümlemesi yapacaksa ilk olarak /etc/hosts dosyasındaki kayıtları kontrol edecek, eğer istediği kayıdı bulamazsa alan adı sunucusuna sorma yoluna gidecektir. Multi seçeneği ise /etc/hosts dosyasında bulunan kayıtlarda bir makine adına birden fazla ip adresi atanıp atanamayacağını belirler. Öntanımlı olarak off gelir /etc/host.conf dosyası isim çözümleme kütüphanesi (resolver library) tarafından /etc/nsswitch.conf ile birlikte kullanırlar ve farklı konfigürasyonlar içerirlerse nsswitch.conf dosyasındaki ayarlar geçerli olur. Aşağıda /etc/nsswitch.conf dosyasının içeriğini görebilirsiniz passwd: files nisplus nis shadow: files nisplus nis

group: files nisplus nis hosts: files nisplus nis dns services: nisplus [NOTFOUND=return] files networks: nisplus [NOTFOUND=return] files protocols: nisplus [NOTFOUND=return] files rpc: nisplus [NOTFOUND=return] files ethers: nisplus [NOTFOUND=return] files netmasks: nisplus [NOTFOUND=return] files bootparams: nisplus [NOTFOUND=return] files netgroup: nispluspublickey: nisplus automount: files nisplus aliases: files nisplus nsswitch.conf dosyasına bakacak olursanız örneğin hosts satırında makine adı çözümlemesi yapılacağı zaman sırasıyla /etc/hosts dosyasından, NIS+ sunucusundan, NIS sunucundan ve de son olarak dns sunucusundan faydalanılacaktır. Herhangi bir kaynaktan cevap alındığında seçeneklerde daha ileriye gidilmeyecektir. /etc/host.conf dosyasındaki sıralamayı hatırlarsanız; order hosts,bind Eğer ip adresinden isim çözümlemesi yapılması gerektiğinde eğer aranan kayıt /etc/hosts dosyasında yoksa alan adı sunucusuna başvurulması gerekmektedir. Sistemde alan adı sunucusunun adresi /etc/resolv.conf dosyasında bulunmaktadır. Eğer bu dosya boş ise makinenin kendisine alan adı sorgulamaları gönderilir. Bu dosyanın formatı aşağıdaki gibidir; domain be.itu.edu.tr search be.itu.edu.tr nameserver 192.168.10.1 nameserver 192.168.12.1 itu.edu.tr /etc/resolv.conf dosyanız yukarıdaki gibi bir içeriğe sahip olduğunda sırasıyla Alan adınızı (domain) Bir makinenin tam değilde kısmi alan adını kullandığınızda bu adı tamamlaması için kullanılacak olan birincil ve ikincil eklentileri (search). Örneğin; ssh silivri eğer bu adres bulunamıyorsa ssh silivri.itu.edu.tr şeklinde komutlara alan adı eklenir Birincil ve ikincil alan adı sunucularının ip adresleri kayıtları (nameserver) /etc/services dosyası sistemde hizmet veren servis adları ile servis verdikleri port numaralarını eşleştirmektedir. Bu dosya üç kolondan oluşmaktadır; Servis adı Servis port numarası/servisin kullandığı protokol

Servis uzun adı Çoğu uygulama verdiği servisin hangi protokolü kullanacağını ve hizmet vereceği portu kendi konfigürasyon dosyalarında bulundurmaktadır. Bu tür uygulamalar bu dosyayı kullanmazlar. Ancak Inetd ve Xinetd sunucuları port numarası belirtilmediğinde bu dosyayı kullanır. Bu dosyadaki kayıtları değiştirerek örneğin telnet sunucusunun dinlediği portu değiştirebilirsiniz Bu dosyanın formatı aşağıdaki gibidir ftp-data 20/tcp # File Transfer [Default Data] ftp-data 20/udp # File Transfer [Default Data] ftp 21/tcp # File Transfer [Control] fsp 21/udp # File Transfer [Control] ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp # Telnet telnet 23/udp # Telnet smtp 25/tcp mail # Simple Mail Transfer smtp 25/udp mail # Simple Mail Transfer /etc/hosts.allow ve /etc/hosts.deny dosyaları tcpd tarafından çalıştırılan hizmetleri ve daemonlara olan erişimi ip adresi yada alan adı bazında kısıtlamak için kullanılan konfigürasyon dosyalarıdır ve sunuculara erişimi kısıtlamak için en çok kullanılan yöntemlerden biridir. Çoğu sunucu hizmetinin kendi konfigürasyonu içinde de bu tür kısıtlamalar mevcuttur. /etc/hosts.deny dosyası herhangi bir sunucu hizmetine dışarıdan erişimi engellenecek olan alan adlarının, ip uzaylarının yada ip adreslerinin tanımlandığı konfigürasyon dosyasıdır. /etc/hosts.allow dosyası ise hosts.deny dosyasında engellenmiş olan makine veya makine topluluklarından izin verilen alan adı, ip uzayı yada ip'lerin tanımının yapıldığı konfigürasyon dosyasıdır. /etc/hosts.deny dosyasının formatı aşağıdaki gibidir; # Hizmet : hizmete_erişimi_kısıtlanacaklar ALL : ALL ALL :.mydomain.com, 192.168.7., 192.168.8.12 ALL EXCEPT in.telnetd : 192.168.12., 192.168.5.12 ALL : ALL EXCEPT LOCAL in.telnetd : LOCAL sshd : ALL EXCEPT 160.75.90. /etc/hosts.allow dosyasının formatı da hosts.deny dosyası ile aynıdır; #Hizmet : hizmete_erişimine_izin_verilenler ALL : ALL ALL :.mydomain.com, 192.168.7. ALL EXCEPT in.telnetd : 192.168.12., 192.168.5.12 in.telnetd : ALL EXCEPT LOCAL sshd : LOCAL in.fingerd :.mydomain.com EXCEPT terminal.mydomain.com Örneğin hosts.deny dosyası aşağıdaki gibi düzenlenmişse bu sistemdeki tcpd kullanan tüm sunuculara tüm ulaşımın yasaklandığını gösterir; $ cat /etc/hosts.deny ALL : ALL $ cat /etc/hosts.allow

ALL :.mydomain.com, 192.168.2.21 Eğer yukarıdaki hosts.deny dosyasının yanı sıra hosts.allow dosyası da yukarıdaki şekilde düzenlenmişse bu makinedeki tüm hizmetlere sadece mydomain.com alan adına sahip makineler ve 192.168.2.21 makinesi ulaşabilir Farklı bir örnek olarak eğer hosts.deny ve hosts.allow dosyaları aşağıdaki gibi düzenlenmişse, $ cat /etc/hosts.deny ALL : ALL EXCEPT LOCAL $ cat /etc/hosts.allow ALL :.mydomain.com, 192.168.2.21 şeklinde ise makine üzerindeki hizmetlere makine üzerinden (LOCAL), mydomain.com alan adına sahip makineler ve 192.168.2.21 makinesi ulaşabilir. Aşağıdaki örnekte ise spesifik bir sunucu hizmetine (telnet sunucusu) mydomain.com üyeleri ve 192.168.2. ip uzayındaki makineler ulaşabilirken diğer hizmetlere sadece makine üzerinden ulaşılabilmektedir $ cat /etc/hosts.deny ALL : ALL EXCEPT LOCAL $ cat /etc/hosts.allow in.telnetd :.mydomain.com, 192.168.2. Genellikle hosts.deny ve hosts.allow dosyaları kullanımı esnasında yukarıdaki örneklerde de görüldüğü gibi hosts.deny dosyasında bütün sunucu hizmetlerine erişim yasaklanıp ardından bu sunucuların hizmet vermesi gereken makineler hosts.allow dosyasında belirtilir. Bu sayede istenmeyen makinelerin sunuculara erişmesinin önüne geçilmiş olur /etc/hosts.allow ve /etc/hosts.deny konfigürasyon dosyaları, başka bir makinadan Linux'unuza yapılan bağlantıları denetler. /etc/hosts.deny içine, sınırlandırılma getirmek istediğiniz İnternet servislerini ve hangi makinalar için sınırlandırma istediğinizi yazabilirsiniz. $ cat /etc/hosts.deny # in.fingerd: ALL except localhost, localhost : \ echo "request from %d@%h" >> /tmp/req; in.telnetd :.net.tr Yukarıdaki hosts.deny dosyasında dışarıdan gelebilecek finger istekleri filtreleniyor ve bu istekler hakkında detaylı bilgi (hangi kullanıcı, hangi makinadan) /tmp/req dosyasına ekleniyor.

Sonraki satır in.telnetd yazılımını çalıştıran isteklerin *.net.tr adreslerinden gelmesi halinde bunların gözardı edileceğini belirtir. hosts.allow dosyasında, genellikle hosts.deny dosyasına gruplanan makina isimlerinin sınırlandırma istenmeyen bir veya birkaç tanesi yazılır. Eğer bir makina ismi ve karşılık gelen İnternet adresi her iki dosyada da varsa, sözkonusu servise izin verilir. Daha fazla bilgiyi hosts_access(5) man sayfalarından bulabilirsiniz. /etc/resolv.conf dosyasında alan adı ve alan adı sunucusunun IP numarası yazılır. $ cat /etc/resolv.conf domain linux.org.tr nameserver 160.75.199.20 Yukarıdaki satırlardan üzerinde bulunulan makinanın alan adının (domain name) linux.org.tr, alan adı sunucusunun ise 160.75.199.20 IP numaralı atlas makinası olduğu anlaşılıyor. 3.5.2 Yönlendirme Daha önce de belirtildiği gibi birden fazla ağa fiziksel bağlantısı bulunan ve ağlar arası bilgi paketlerinin geçişine olanak tanıyan araçlara yönlendirici (router) adı verilir. İki ayrı ağda yeralan makinaların haberleşmesine imkan tanıyan yönlendiriciler, kendilerine gönderilen paketleri bir ağdan diğerine iletirler. Herhangi bir ağ içerisinde yer alan makinalar aynı IP ağ içerisinde bulunan makinalarla (ağ konfigürasyonları doğru olduğu sürece) haberleşebilirler. Başka adreslere ulaşabilmek için bulunulan ağ dışındaki ağlarla bağlantısı olan ve o ağ üzerinde bulunan bir makina ile haberleşmeleri gereklidir. Bu makina bilgisayar tanımlarında gateway (yönlendirici, arabirim, arayol) olarak verilir. Minimum yönlendirme, bir ağa bağlı olmayan makinalarda, ifconfig yardımıyla yapılan yönlendirmedir. En çok kullanılan statik yönlendirme çeşidinde, az sayıda arayol ile dışarıya bağlı olan bir makinada, route komutuyla yapılır. Aynı adrese ulaşan birden fazla arayol olması durumunda ise, kendi yönlendirme tablosunu ağın durumuna göre değiştirebilen dinamik yönlendirmeye başvurulabilir. Linux'un yönlendirici olarak kullanılmasına bir örnek verilebilir. Elimizde var olduğunu bildiğimiz iki ağ olsun. Bu ağlardan birincisini, 144.122.71.0 ağı, diğeri de 144.122.1.0 ağı olarak kabul edelim. 144.122.71.0 ağının İnternet'e bağlanabilmesi için 144.122.1.0 ağına ulaşması gereklidir. Yönlendirici olarak kullanılacak makinayı 71.0 ağında kurup gerekli yönlendirme talimatları verildiği anda bu ağa bağlı olan diğer makinalar da İnternet'e açılabilecektir. Örnek olarak 144.122.71.0 ağı üzerindeki bir makina için ifconfig satırı : ifconfig eth0 144.122.71.1 broadcast 144.122.71.255 netmask 255.255.255.0 olarak görünüyor. Bu makinanın yönlendirici görevi yapabilmesi için route komutu kullanılır. Bu sayede bu bilgisayar, diğerlerine ulaşacaktır.

route add -net 144.122.71.0 netmask 255.255.255.0 dev eth0 Bu, 144.122.71.0 ağında olan makinaların eth0 kartı üzerinden erişilebileceğini gösterir. Diğer adreslere erişebilmek için ise bir çıkışa (gateway) ihtiyaç duyulmaktadır. route add default gw 144.122.71.1 dev eth0 Bu satır sayesinde eldeki tablo yardımıyla çözümlenemeyen adreslere gitmesi gereken tüm paketler 144.122.71.1 üzerinden gönderilmektedir. Bu durumda bu makinanın paketleri nereye göndereceğini bildiği varsayılmaktadır. Bu makina içinde iki adet ethernet bağlantısı bulunmaktadır. Bunlardan biri yönlendiriciyi 144.122.71.0 ağına bağlarken diğeri 144.122.1.0 ağına bağlamaktadır. İlk olarak bu iki kart için gereken tanımlamalar network betiğinin içerisinde aşağıdakine benzer şekilde tanımlanmıştır. ifconfig eth0 144.122.71.1 broadcast 144.122.71.255 netmask 255.255.255.0 ifconfig eth1 144.122.1.200 broadcast 144.122.71.255 netmask 255.255.255.0 Birinci ethernet kartı için eth0, ikinci ethernet kartı için de eth1 kısaltmaları kullanılabilir. Doğal olarak her iki ağ için bir 'route' satırı gerekmekte : route add -net 144.122.71.0 netmask 255.255.255.0 dev eth0 route add -net 144.122.1.0 netmask 255.255.255.0 dev eth1 Bu sayede diğer makinalardan farklı olarak yönlendirici hem 144.122.1.0 ağı, hem de 144.122.71.0 ağı üzerindeki adreslere direk ulaşabilmektedir. Diğer adreslere ulaşabilmek için benzer bir yöntem ile 144.122.1.0 ağı üzerindeki arayola (gateway) yönlendirme yapılır. route add default gw 144.122.1.200 dev eth1 Bu çeşit yönlendirmeye statik yönlendirme adı verilir. Burada tüm bağlantılar bir tablo halinde verilmiştir. Birbiri arkasına ağ eklendiği zaman statik yönlendirme basitlik avantajını kaybetmeye başlar. Bu amaçla yönlendiricilerin kendi aralarında bildikleri yolları (yönlendirme bilgilerini) birbirlerine aktardıkları dinamik yönlendirme kullanılır. Ağa bağlanmak amacıyla birden fazla kart kullanıyorsanız, arp komutunu incelemenizi tavsiye edilir. arp komutu ile makinenin hafızasında tutulan arp tablolarıyla ilgili işlemler yapabilirsiniz. Arp tabloları aşağıda da görüldüğü gibi ağ üzerindeki diğer makinelerin ip adresleri ile tekil Ethernet (mac) adreslerini eşleştiren bir tablodur. TCP/IP kullanılarak yapılan haberleşme esnasında aynı ağ üzerindeki makineler birbirleriyle paket alışverişi yaparken karşı taraftaki makinenin mac adresine ihtiyaç duyarlar ve bilmedikleri zaman bunu tüm ağ ortamına broadcast yaparak yani tüm makinelere gidecek paketler yollayarak öğrenmeye çalışırlar. Eğer arp tabloları kullanılmasaydı ağ üzerindeki her paket yollanmadan önce ağda broadcast (arp request) şeklinde mesajlar dolaşacaktı ve performansı kötü yönde etkileyecekti. Bu yüzden arp tablolarının kullanılması ağ performansı açısından önem kazanmaktadır. Burada dikkat edilmesi gereken bir nokta da eğer ağ üzerinde bir ip adresi için ethernet kartı değişikliği yapıldıysa bu makineyle iletişimin arp tablolarının güncellenme anına kadar aksayacağıdır. Arp tablolarının kendi kendini güncellemesi çok uzun sürmeyecek olsa da elle yapmak her zaman daha sağlıklı olacaktır. Arp tablosunu görmek için; # arp -a

IP address HW type HW address 191.72.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1 191.72.1.2 10Mbps Ethernet 00:00:C0:90:B3:42 191.72.2.4 10Mbps Ethernet 00:00:C0:04:69:AA Arp tablosundan bir kayıt silmek için; # arp d kibele.be.itu.edu.tr 3.5.3 Birden Fazla Ethernet Kartının Tanıtılması Yukarıda örneğini verdiğimiz Linux yönlendirici üzerinde iki ethernet kartı bulunuyor. Bu sayede Linux makinası iki ethernet ağı arasında bir yönlendirici olarak kullanılabilmektedir. Bir Linux'a birden fazla ethernet kartı takmak mümkündür. Bu kartları takarken aşağıdaki maddelere dikkat etmek gerekir: 1. Çekirdek içerisinde her iki kart için destek bulunmalıdır. 2. Ethernet kartları sistemdeki diğer IO ve IRQ ayarlarını çakışmayacak şekilde ve farklı değerlerde olmalıdır. Birden fazla ethernet kartı (ya da herhangi iki veya daha fazla PPP, SLIP gibi ağ bağlantısı) olan makina bir yönlendirici olarak kullanılacaksa, çekirdek IP FORWARDING desteğiyle derlenmelidir. Bunun yanı sıra Linux'unuzun birinci görevi yönlendiricilik olacaksa optimize as router sorusuna da `y' yanıtı vermeniz yararlı olacaktır. IP: forwarding/gatewaying (CONFIG_IP_FORWARD) [N/y/?] y... IP: optimize as router not host (CONFIG_IP_ROUTER) [N/y/?] y Linux açılırken çekirdek tanıdığı donanımları teker teker arayarak bulmaya çalışır (probing). Birden fazla ethernet kartı kullanımına sık raslanmadığından Linux ilk ethernet kartını bulduktan sonra ikinci ve daha fazla ethernet kartı aramadığından iki kartınız bile olsa Linux sadece birini görecektir. Çekirdeğe ethernet kartı ile ilgili parametreler vererek birden fazla ethernet kartının açılışta bulunması sağlanabilir. LILO kullanıldığı zaman /etc/lilo.conf içinde : append="ether=0,0,eth1" Yukarıdaki parametre ile çekirdek ikinci bir ethernet kartını (eth1) da arayacaktır. Aynı şekilde arka arkaya ether=... parametreleri vererek varsa üçüncü, dördüncü ve daha fazla ethernet kartının aratılması da mümkündür. Ethernet kartlarınızın adreslerini biliyorsanız, kartların yanlış sırayla bulunması tehlikesini de önlemek için, append="ether=5,0x340,eth0 ether=15,0x300,eth1" gibi bir satır eklenmesi yeterli olacaktır. Burada eth0 isimli bağlantı IRQ 5 ve IOBASE 0x340 ve diğer ethernet bağlantısı eth1 IRQ 15 ve IOBASE 0x300 olacak şekilde ayarlanır, bu durumda çekirdek bir daha kartların hangi adres ve IRQ'da olduğuna dair tahmin yürütmez, girilen değerlerde bulunan kartları bulmaya çalışır. Sistem açıldıktan sonra gerçekten istenen kartların istenen adreste çalıştığına emin olmak için /var/adm/messages dosyasına bakabilirsiniz, ya da dmesg komutuyla çekirdek mesajlarını görebilirsiniz.

3.6 NFS Sun Microsystems tarafından geliştirilen NFS (Network File System), bir ağ üzerinden disklerin paylaşımını sağlamak üzere geliştirilmiştir. NFS sayesinde bir makinada yeralan belirli bir disk bölümü, başka makinalar tarafından okunabilir veya yazılabilir. Bu işleme özellikle büyük organizasyonlarda, disk alanından tasarruf etmek için başvurulur. Her makinada aynı dosyalar, çalıştırılabilir programlar olması yerine bunlar tek sunucuda toplanır, diğer bilgisayarlar bu alanı ortaklaşa paylaşırlar. Paylaşılan dizin, sanki yerel makinanın bir diziniymiş gibi davranır. Kendi disk alanını paylaştıran makinaya NFS sunucusu, bu diske erişim yapan makinalara da NFS istemcisi adı verilir. NFS kullanımının pek çok avantajı sayılabilir. Bunlar kısaca: Yerel bir işletmede tüm kullanıcılar tek bilgisayar üzerindeki aynı disk alanını paylaşabilirler. Diğer bilgisayarlar açıldıktan sonra bu diskleri kendi dosya sisteminlerine bindirebilirler. NFS'in NIS ile birlikte kullanımı sayesinde bir kullanıcı herhangi bir makinaya girip diğer kullanıcılarla birlikte aynı dosya yapısı ile çalışabilir. Paylaşım sayesinde büyük disk alanı isteyen programlar tek bir sunucuda toplanabilir ve bu sayede önemli miktarda diskten tasarruf sağlanabilir. Bir makina üzerinde yapılan değişiklik, her makinada yapılmış gibi olur. Böylece aynı yazılımı örneğin 20 bilgisayara yüklemek zorunda kalmazsınız. Veri depolama maliyetlerini düşük tutar NFS TCP/IP ağı üzerinden çalışır ve öntanımlı olarak UDP paketlerini kullanır. 2.4.19 ve sonraki çekirdek sürümlerinde NFS sunucusu için TCP desteği verilmiştir. Ancak performans maksatlı olarak UDP paketleri öntanımlı olarak kullanılır. Sunucu istemci mimarisiyle hizmet verir. NFS sunucuları ağ üzerinde rpc protokolü üzerinden hizmet verirler. hosts.allow ve hosts.deny dosyaları kullanılarak NFS hizmetine erişim kısıtlanabilir. 3.6.1 Ağ Üzerinde Paylaşım NFS'in çalışması, yerel bir diskin mount edilmesi kadar kolaydır. Örnek olarak NFS sunucusu olan aspendos makinasında yeralan /home dizinini, yerel makinadaki /users dizinine yerleştirmek için : # mount -t nfs <sunucu_adresi>:/<paylasim> <baglanacak_klasör> # mount -t nfs aspendos:/home /users kullanılır. mount, karşı makinanın erişim izinleri doğru olduğunu teyit ettiği anda bu işlemi gerçekleştirir. Sunucu ile istemci arasındaki mesaj alış-verişini mountd programı üstlenir. NFS kullanabilmek için çekirdekte NFS desteği olması şarttır. Çekirdeğin hangi dosya sistemlerini desteklediğini /proc dosya sistemi altındaki filesystems dosyasını okuyarak anlayabilmek mümkündür. Eğer aşağıdaki satırlarda nfs kelimesi geçmiyorsa çekirdeğe NFS desteği verilerek tekrar derlenmesi gerekir. $ cat /proc/filesystems minix ext2

nodev nodev msdos proc nfs NFS için mount programının genel kullanımı şu şekildedir : mount -t nfs <sunucu-adresi:paylasma-dizini> <yerel-dizin> -o <secenekler> Sistem açılırken /etc/fstab dosyasında yeralan bilgilerle uzak makinanın diski otomatik olarak paylaştırılabilir. Mount programı bazı seçenekleri destekler. Bu seçenekler -o yardımıyla komut satırında verilebildiği gibi /etc/fstab içinde de belirtilebilir. Her iki durumda da birden fazla seçenek kullanılırsa bunlar birbirlerinden virgülle ayrılırlar. Açılış sırasında news makinasındaki /usr/spool/news dosyasını yerel makinadaki /usr/spool/news dizini altına yerleştiren /etc/fstab satırı news:/usr/spool/news /usr/spool/news nfs timeo=20 şeklinde yazılır. NFS ile kullanılan timeo seçeneğinin karşısında yeralan sayı (saniyenin onda biri olarak), bağlantının kurulabilmesi için geçecek maksimum zamanı gösterir. Bu zamanın aşılması halinde sunucuyla bağlantı kesilir. 3.6.2 NFS Kurulumu Yerel makinanın sunucu olabilmesi için nfsd ve mountd programlarının çalıştırılması gerekir. Bu yazılımlar açılış esnasında aşağıda görülen /etc/rc.d/rc.inet2 dosyasından başlatılırlar. telnetd, fingerd ve benzeri süreçlerin aksine bu iki program inetd tarafından yönetilmezler. Dikkat etmeniz gereken bir durum da nfsd ve mountd programlarının rpc.portmap programından sonra çalıştırılması gerektiğidir : if [ -x /usr/sbin/rpc.mountd ]; then # (rpc.mountd programi var ve calistirilabilir mi?) /usr/sbin/rpc.mountd; echo -n " mountd" fi if [ -x /usr/sbin/rpc.nfsd ]; then # (rpc.nfsd programi var ve calistirilabilir mi?) /usr/sbin/rpc.nfsd; echo -n " nfsd" fi NFS sunucusunun kullandığı daemon'lar şunlardır; rpc.portmapper : İstemcinin isteklerini nfs sunucusuna yönlendirir rpc.nfsd : İstemci makinanın isteklerini lokal isteklere çevirir rpc.mountd : mount ve umount isteklerine cevap verir rpc.statd : Uzak makina yeniden başladığında kilitleme servislerini etkinleştirir rpc.lockd : Çöken sistemler için kaldığı yerden devam etme işlemini gerçekleştirir Sunucunun hangi dizinlerini, hangi istemci(ler) tarafından paylaşılabileceği /etc/exports dosyasında belirtilir. Örnek bir exports dosyasının görünümü aşağıdaki gibidir : <paylaştırılacak klasör> <istemci>(<seçenekler>) /home davul.cclub.metu.edu.tr, ordek.cclub.metu.edu.tr

/usr/ftp (ro) /cdrom *.edu.tr /home 192.168.12.0(rw) /mnt/cdrom *(ro,root_squash) /samba 192.168.12.1/24(rw,async) /media/floppy 192.168.12.5/255.255.255.255(rw) Exports dosyasında paylaşıma erişecek makineler ve ağlar aşağıdaki şekilde tanımlanabilir Ağ/Alt ağ maskesi o 192.168.81.0/24(ro), 192.168.81.0/255.255.255.0 Özel karakterlerle domain tanımlaması o *.arc.com --> arc.com domaindeki tüm makinelerle eşleşir. a.b.arc.com gibi. içeren makine adları ile eşleşmez o proj?.arc.com Tek makine o 192.168.81.12/32(rw),192.168.81.12/255.255.255.255(rw) o backup.arc.com(ro) backup2.arc.com(ro,async) Tüm dünyaya o Eğer hiç bir tanımlama yapmazsanız sunucuya ulaşabilen tüm makinelere (root_squash,all_squash,ro,nosetuid) seçenekleri ile dizini kullanma hakkı vermiş olursunuz o Silivri (ro) şeklindeki bir tanımlama silivri makinesine öntanımlı seçeneklerle tüm dünyaya read-only seçeneği ile dosyayı paylaşıma açar. Her satır, yerel makinedeki dizin ismi ile başlar, bu dizini mount etmeye izin verilen bilgisayar isimleri ile devam eder. Makina isimlerinde? veya * joker karakterleri kullanılabilir. Dosyanın üçüncü satırı, sonu.edu.tr ile biten tüm makinaların /cdrom dizinine ulaşabileceğini belirtir. Aynı dizini paylaşacak birden fazla makina adı, aralarında virgül konarak yazılabilir. Parantez içinde yeralan ro kelimesi, dizinlerin salt okunur mount edilmesi gerektiğini belirtir. NFS seçenekleri ro : salt okunur paylaşım. rw : istemciler paylaşıma yazabilir, paylaşımdan okuyabilir. sync : istemci yazma işlemi gerçekleştirdiğinde hemen sunucu üzerinde yazma işlemi gerçekleştirilmeye çalışılır ve işlemin bittiği onaylanana kadar işlem bitmedi varsayılır. Performansı düşürür ama veri kaybı ihtimali daha düşüktür. Öntanımlı değerdir. async : Yazma işlemi isteği yapıldıktan sonra kontrol işlemi gerçekleştirilmez. Performansı daha yüksektir ancak sunucuda problem yaşandığında verinin yazılıp yazılmadığı bilinemez. root_squash : paylaşıma root olarak erişildiğinde sunucu bunu 'nobody' kullanıcısına çevirir. Öntanımlı değerdir. Bu sayede istemci makinenin root kullanıcısının nfs paylaşımında root hakları ile erişmesi engellenir. no_root_squash : İstemci makinenin root kullanıcısının root hakları ile paylaşılan dosyalara ve dizinlere ulaşmasına izin verir. noaccess : paylaşılan dosyanın sadece haklarını ve dizin hakkında bilgilerine ulaşılabilir içerisindeki dosyalara ve alt dizinlere ulaşamaz. all_squash : istemci makinede dosyalara ulaşmak isteyen bütün kullanıcılara anonim kullanıcı olarak varsayılır. squash_uids, squash_gids : spesifik kullanıcı ve grup id'leri yada id aralıklarına sahip kullanıcı ve gruplarına anonim kullanıcı olarak davranılır.

o squash_uids=0-10,25,35-50 anonuid, anongid : anonim kullanıcı ve grup id'lerini spesifik id'lere ayarlayabilirsiniz. Daha geniş bilgi için mount programının man dosyasına göz atmanızı tavsiye ederim. 3.7 Linux'ta Örnek Ağ Uygulamaları Aşağıda, Linux ile gerçekleştirilebilecek birkaç örnek ağ uygulamaları yer almaktadır. Her konu ile ilgili ayrıntılı bilgileri HOWTO dosyalarından öğrenebilirsiniz. 3.7.1 IP Accounting IP accounting özelliği, çekirdeğin ağ üzerindeki trafiğin analizini yapmasını sağlar. Toplanan veriler, makinanın açıldığı andan itibaren kart üzerinden geçen paket ve toplam bayt sayısıdır. Bir konfigürasyon dosyası yardımıyla bu bilgiler belirli sınıflara ayrılabilir. ipfwadm komutu ile IP accounting işlemlerine başlanabilir. ipfwadm paketi standart Slackware dağıtımı ile beraber gelmektedir. 3.7.2 IP Aliasing Tek ağ arabirimi (örneğin ethernet veya seri bağlantı) kartı için birden fazla IP numarası gereken durumlarda IP Aliasing kullanılır. Genellikle İnternet Servis Sağlayıcıları, müşterilerinin ftp ve www sunucularını tek makina üzerinde toplamak için bu yola başvururlar. Bu sayede bir makinaya atanmış birden fazla www adresi ve herbirinin ayrı html dosyaları farklı makinalardaymış gibi kullanılabilir. Her sanal ağ adresi için bir arabirim (interface) tanımlamalısınız. Bu sayede aynı bilgisayarda 255 adede kadar sanal makinaya izin verilebilir. Her sanal arabirim, bağlı bulunduğu gerçek arabirim üzerinden işgörür. Örnek olarak, elimizde kullanabileceğimiz ikinci adres (örnek olarak 100.100.100.101) ve tek ethernet kartı bulunsun. İnternet üzerindeki diğer makinaların, bu iki adrese ulaşabilmeleri için şu satırlar yeterli olacaktır : # ifconfig eth0:0 100.100.100.101 netmask 255.255.255.0 up # route add -net 100.100.100.0 netmask 255.255.255.0 eth0:0 Sanal bir arabirimi kaldırmak için ise, ismin sonuna '-' karakteri getirmek yeterli olur. # ifconfig eth0:0-0 3.7.3 IP Masquerading IP Masquerading, bir ağın arkasındaki birden fazla makinanın bir Linux üzerinden dışarıya bağlanmasıdır. Tüm makinalar dışarıdan aynı IP adresi gibi görünürler.

Örnek olarak İnternet'e bağlandınız. İnternet Servis Sağlayıcınız size sadece bir IP numarası verdi ve odanızda İnternet'e bağlanmayı bekleyen birden fazla bilgisayar var. Servis Sağlayıcıya her makina için para ödeyip bir hesap ismi almaktansa odadaki tüm makinalar bir Linux ve telefon bağlantısı yardımıyla İnternet'e erişebilirler. IP Masquerading kullanabilmek için çekirdekte bu desteğin verilmesi gerekiyor. Bunun için IP Forwarding, IP Firewalling ve IP Masquerading seçeneklerini açık tutmalısınız. IP Masquerading için gerekli yazılımlar Slackware dağıtımı ile birlikte gelmektedir. 3.7.4 SAMBA (NetBEUI ve NetBios desteği) SMB, Windows 3.11, NT ve 95 tarafından kullanılan ve disk ve yazıcı paylaşımına olanak veren bir protokoldür. Linux, Samba desteği ile bu işletim sistemleri veya kendi üzerinde bulunan disk ve yazıcıların tüm makinalar tarafından paylaşılmasını sağlar. Samba ile 4 işlem gerçekleştirilebilir: Windows makinalarının Linux diskini paylaşmaları, Linux makinalarının Windows sistemi diskini paylaşmaları, Windows makinalarının Linux yazıcısını paylaşmaları ve Linux makinalarının Windows yazıcısını paylaşmaları. smbfs, SMB protokolünü tanıyan dosya sistemine verilen isimdir. smbfs servisi verebilmek için smbfs.tgz paketini indirip derlemelisiniz. 3.8 NIS NIS Network Information Service kelimelerinin baş harflerinden oluşmaktadır. Amacı bir ağ üzerindeki bütün makinalara, bütün ağ tarafından bilinmek kaydıyla bilgi akışı sağlamaktır. NIS tarafından dağıtılacak bilgiler, hesap isimleri, şifreler, kullanıcı dizinleri ve grup bilgileri olabilir. NIS yardımıyla, örneğin size ait şifre NIS veri tabanında kayıtlı ise, ağ üzerinde NIS istemci programlarını çalıştıran bütün makinalara girebilirsiniz. NIS'in biraz daha gelişmiş bir sürümü olan NIS+, verileri korumak amacıyla şifreleme yöntemi kullanır. Bu avantajına rağmen NIS+ 'ın kurulumu ve kullanımı daha zordur. NIS+ NIS'in bazı eksiklerini kapatmak ve hiyerarşik bir yapıya büründürmek maksadı ile yazılmış ancak amacına tam anlamıyla ulaşamamış bir sunucu sistemidir. Yönetiminin daha zor olması ve çok fazla avantaj sağlayamaması nedeniyle fazla yaygınlaşamamıştır. Şu anda geliştirilmesi tamamıyla durmuştur 3.8.1 NIS'in Çalışma Prensipleri Bir ağ üzerinde en az bir makina NIS sunucusu olmak zorundadır. İster herbiri farklı NIS ``domain'' lerine hizmet eden çoklu NIS sunucularına sahip olabilirsiniz, ya da beraber çalışan NIS sunucularınız olur. Bu durumda sunuculardan biri ana NIS sunucusu, diğerleri ise ikincil (slave) NIS sunucusu olabilirler.

İkincil sunucular sadece NIS veritabanının kopyalarına sahiptirler ve bu kopyaları ana NIS sunucusunda bulunan veri tabanlarında değişiklik yapıldığı zaman ana sunucudan alırlar. Ağ üzerinde bulunan makina sayısına ve ağ güvenliğine bağlı olarak bir veya daha fazla ikincil sunucu kurulabilir. Bir NIS sunucusu kapandığında veya çok yavaş cevap verdiğinde, diğer NIS istemcileri çalışan veya daha hızlı bir sunucu bulmaya çalışacaktır. NIS veritabanları DBM adı verilen yapıdadır ve bu yapı ASCII veritabanlarından çıkarılır. Ana NIS sunucusu hem ASCII veritabanlarını hemde DBM veritabanlarını içermelidir. NIS sunucusu, ASCII yapıdaki /etc/passwd gibi veri tabanlarını DBM veri tabanına çevirerek /var/yp dizini altında tutar. İkincil sunucular NIS haritalarında oluşacak değişikliklerden yppush programı aracılığıyla haberdar edilecek ve veritabanlarını senkronize etmek için otomatik olarak gereken değişiklikleri alacaklardır. NIS istemcilerinin bunu yapmasına gerek yoktur çünkü sunucudaki DBM veritabanlarında bulunan bilgileri okumak için devamlı olarak NIS sunucusu ile bağlantı kurmaktadır. İkincil sunuculara gayet büyük ağlar üzerinde ihtiyaç duyulur. 3.8.2 NIS İstemcisi NIS'i kurmak için herşeyden önce /usr/sbin/rpc.portmap programını çalıştırmanız gerekir. Bazı Linux dağıtımları (örneğin Slackware) bu daemon'u çalıştırmak için gereken kodu /etc/rc.d/rc.inet2 dosyasında barındırırlar. RPC portmapper (man 8 portmap) programı bir sunucu olup RPC program numaralarını TCP/IP (veya UDP/IP) protokol port numaralarına çevirir. RPC portmapper o makina üzerinde RPC çağrılarını (NIS istemci yazılımının yaptığı iş) RPC sunucularına (NIS sunucuları gibi) yapılabilmesi için çalışıyor olmalıdır. Bir RPC sunucusu başladığı zaman, portmap'a hangi port numarasını dinlediğini ve hangi RPC program numaralarına hizmet edeceğini bildirir. Bir istemci verilen bir program numarasına RPC çağrısı yapmak istediği zaman, ilk önce sunucu makina üzerindeki portmap ile bağlantı kurarak RPC paketlerinin nereye gönderileceğini belirler. Normal olarak, bazı RPC sunucuları inetd(8) tarafından başlatılır, bu yüzden portmap, inetd'den önce çalıştırılmalıdır. NIS kurmadan önce, yukarıda da belirtildiği gibi iki durumu değerlendirmek zorundasınız. Ya sizin makinanız halihazırdaki NIS sunucularının bulunduğu bir ağın parçası olacaktır, ya da henüz ağınızda herhangi bir NIS sunucusu yoktur. Birinci durumda, sadece istemci programlara (ypbind, ypwhich, ypcat, yppoll, ypmatch) ihtiyacınız vardır. En önemli program ypbind'dır. Bu programı her zaman çalıştırıyor olmalısınız. ypbind çalışır çalışmaz, makinanız bir NIS istemcisi durumuna gelir. İkinci durumda, eğer NIS sunucularınız yoksa, bir de NIS sunucu programına (ypserv) ihtiyacınız vardır. 3.8.3 NIS İstemcisi Kurulması