qarizma
12-07-2006, 10:51 AM
Internet'e Baglanma
Linux'u Internet'e baglamak ilk asamada biraz zor görünse de biraz teori, biraz pratik yardimiyla mantik kolayca anlasilabiliyor. Aglar, bilgisayar sistemlerinde hata olma olasiligi en yüksek, en çok sorunun çiktigi alandir. Bu bölüm, özelde bir ethernet karti ile baglanti yapildigi varsayilarak anlatilmistir. Ancak anlatilan birçok kavram herhangi bir yapidaki Internet baglantisi için geçerli olacaktir.
Öncelikle çekirdegi -daha önce yapmamissaniz- ag baglantisina destek verecek sekilde tekrar derleyin. Bunun için gerekli birkaç soruya "y" cevabi vermek yeterli olacaktir:
CONFIG NET ? [Y/n] y
...
TCP/IP networking (CONFIG_INET) [Y/n/?] y
...
Network device support (CONFIG_NETDEVICES) [Y/n/?]
...
Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [N/y/?] y
...
Other ISA cards (CONFIG_NET_ISA) [N/y/?] y
...
NE2000/NE1000 support (CONFIG_NE2000) [N/y/m/?] y
Yukaridaki örnekte ethernet kartinizin ne2000/ne1000 ya da uyumlu bir kart oldugu var sayiliyor. Kartinizin marka/modeline uygun seçenenege `y' cevabi vermelisiniz. Ethernet kartlarinin disinda baglanma yönteminize bagli olarak çekirdegi PPP, SLIP, Token Ring gibi bir destekle derlemeniz gerekebilir. Bunlari modül olarak derlemeniz de mümkün. Çekirdek derlemek konusunda daha ayrintili bilgiyi bu kitabin ilgili bölümünde bulabilirsiniz.
Tabi ki çekirdegi derlemek yetmiyor, derleme asamasindan sonra ag destegine sahip olan çekirdek ile makinanin açilmasi gerekir.
Baglantiyi gerçeklestirmek için ag sorumlusundan bazi önemli bilgileri almalisiniz. Makinanizin IP adresi bunlarin basinda gelir. Diger gerekli bilgiler de subnet mask ve broadcast adresidir.
DNS adres çözümleyici olarak çalisan DNS makinasi ve makinanizi Internet'e baglayacak olan yönlendiricinin IP adreslerini de biliyor olmalisiniz.
Bu asamadan sonra yapilandirma islemlerine geçilebilir.
Ag Yapilandirmasi
Bu bölümde anlatilan rc.* yapilandirma dosyalari Slackware dagitimina özeldir. Diger dagitimlarda da açilista çalisan benzeri rc dosyalari degistirilerek, ya da sistemle birlikte gelen sistem yönetim araçlari kullanilarak istediginiz yapilandirmayi gerçeklestirebilirsiniz.
Linux, açilirken bazi dosyalara bakarak düzgün çalismasi için gerekli yapilandirmayi yapar ve bazi yazilimlari çalistirir. Bu dosyalar /etc/rc.d dizini altinda yeralir. Internet baglantisi için sadece iki dosyaya gerek duyulur. Slackware dagitimi içinde bunlar, yapilandirmayi gerçeklestiren /etc/rc.d/rc.inet1 ve temel ag programlarini çalistiran /etc/rc.d/rc.inet2 dosyalaridir.
Bu dosyadaki degerleri gerektigi sekilde düzenleyerek Internet'e baglanacagiz. Öncelikle rc.inet1 dosyasinin içerigine göz atalim:
HOSTNAME=`cat /etc/HOSTNAME`
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0
IPADDR="144.122.71.55"
NETMASK="255.255.255.0"
NETWORK="144.122.71.0"
BROADCAST="144.122.71.255"
GATEWAY="144.122.71.1"
/sbin/ifconfig eth0 $IPADDR broadcast $BROADCAST netmask $NETMASK
/sbin/route add -net $NETWORK netmask $NETMASK
/sbin/route add default gw $GATEWAY metric 1
ifconfig komutu, ag baglantisi yapan kartin belirli parametreler ile yapilandirilmasini saglar. Kart kimligini bilgisayara tanitmak için bu komut kullanilir.
Ilk satirdaki ifconfig programi, makinanin kendisiyle haberlesmesini saglamak amaciyla kendi ag adresini (loopback device) 127.0.0.1 olarak tanitmistir. Internet üzerindeki her makinanin loopback adresi 127.0.0.1 'dir. 127 ile baslayan hiç bir adres, Internet üzerinde gerçek bir adres olarak kullanilamaz.
Her paket, gönderilecegi adrese gitmeden önce bir tabloya bakar. Bu tablo, paketin muhtemel rotasini içerir. route komutu yardimiyla bu tablo olusturulur veya kontrol edilir. Genellikle bir kart için bir ifconfig kullanilirken, paketin yollanacagi birden fazla rotanin olmasi durumunda rc.inet1 dosyasinda birden fazla route komut girdisi yapilacaktir.
Kullanilan her ag kartinin bir veya birden fazla internet adresi olabilir. Linux'a takilan birinci kart eth0 ismini alirken ikinci karta eth1, üçüncüye eth2 ... denir. Loopback cihazinin ismi lo dur. ifconfig komutunu parametre vermeden kullanirsaniz, Linux'a tanitilan ç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 makinasinin ifconfig bilgisi yukaridaki sekildedir. Bu makina üzerinde tek ethernet karti olup, ifconfig bilgisinde ikinci sirada yeraliyor. Kartla ilgili ayrintili bilgi (her kart özgü donanim numarasi, alinan ve verilen paket sayisi gibi) ifconfig çiktisinda var.
route komutunun genel kullanimi su sekildedir:
route [add | del] [-net | -host] varis_adresi [gw yonlendirici] secenekler...
host: paketin gidecegi yer baska bir makina
net: paketin gidecegi yer baska bir ag
varis_adresi: paketin gidecegi 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 satirindan yazin:
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
Örnek tabloda üç ayri yönlendirme girisi vardir. Birincisi, makinanin kendisi ile haberlesmesini saglayacak olan loopback. Ikinci satirda, yerel aga gidecek olan tüm paketlerin yönlendiriciye verilmeden aga yönlendirilmesi söylenmis. Son sirada ise (default) paket ilk iki satirda yeralan varis adresinden farkli bir adrese gidecekse, önce yönlendiriciden geçip sonra dis dünyaya açilacagindan yönlendiricinin IP adresi yazilmistir.
ifconfig, biraz karmasik bir komuttur. Sistem yöneticisinden ögrenmeniz gereken subnet maskesi, broadcast adresi ve IP adresini kullanip kartlari yapilandirir.
ifconfig eth0 144.122.71.55 netmask 255.255.255.0 broadcast 144.122.71.255
Yukarida ifconfig yardimiyla eth0 kartina hem bir IP adresi verilmis, hem de bilgisayarin bulundugu agin özellikleri tanitilmistir.
Bu andan sonra istendigi kadar route komutu ile makinadan çikacak paketler için yeni yollar tanimlanabilir.
route add -net ...
route add -host ...
Dosyanin içerigini sistem görevlisinin verdigi bilgiler dogrultusunda degistirdikten sonra komut satirindan çalistirmaniz, Internet'e baglanti için yeterli olacaktir.
# /etc/rc.d/rc.inet1
Baglantiyi kontrol etmek Internet adresini bilip çalistigindan emin oldugunuz bir makinaya telnet ile baglanti yapmaya çalisin:
$ telnet orca.cc.metu.edu.tr
Connected to orca.cc.metu.edu.tr
Escape character is ^]
Ethernet kartinin baglantisini yazilim yoluyla kesmenin yolu ifconfig 'in down seçenegidir. Örnegin tek ethernet karti üzerinden Internet baglantiniz var ve bunu hemen kesmek için asagidaki satiri yazin.
# ifconfig eth0 down
ethernet baglantisini yeniden açmak için
# ifconfig eth0 up
komutunu girmelisiniz. Bu islem sonrasinda yönlendirme bilgilerini yeniden girmeniz gerekebilir.
ping komutu, baglantilari ve ayni zamanda baglanti hizini ölçmek için kullanilan bir komuttur. Ping, ICMP protokolü yardimiyla hedef makinaya belirli uzunlukta paketler gönderir. Karsidaki makina bunlari aldigi anda bekletmeden geri yollar. Arada geçen zaman farkli, iki makina arasindaki baglanti hizi hakkinda fikir verir.
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
netstat komutu, makinanin ag karti üzerinden yapilan baglantilarin dökümünü çikarir.
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 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1943 despair.thebandit.c:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1424 despair.thebandit.co:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1932 ftp02.quicktime.app:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1407 165.113.58.253:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1392 165.113.58.253:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1377 ppp23.cc.metu.ed:telnet ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet pclabI_23.feas.met:7075 ESTABLISHED
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 ESTABLISHED
tcp 0 9495 cclub.metu.edu.t:telnet a5-03-asy27.bil-ro:1026 ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet pclabI_14.feas.me:15694 ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet stu21.math.metu.e:16158 ESTABLISHED
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
Ikinci önemli dosya olan /etc/rc.d/rc.inet2, belli basli tüm Internet sunucularini çalistirir. Asagida bu dosyanin bir kismi görülüyor.
#!/bin/sh
NET="/usr/sbin"
IN_SERV="lpd"
LPSPOOL="/var/spool/lpd"
echo -n "Starting daemons:"
# inetd calistiriliyor.
if [ -f ${NET}/inetd ]; then
echo -n " inetd"
${NET}/inetd
else
echo "no INETD found. INET cancelled!"
exit 1
fi
# degisik internet servisleri sirasiyla calistiriliyor.
for server in ${IN_SERV} ; do
if [ -f ${NET}/${server} ]; then
echo -n " ${server}"
${NET}/${server}
fi
done
Bu açilis dosyasi, ag üzerinden servs veren bir dizi sunucu programi çalistiriyor ve hatalari engellemek için programlarin yerinde olup olmadigina da bakiyor.
Kontrol Dosyalari
Yapilandirmayi tamamlamak için /etc dizini altinda yeralan bazi dosyalarin elden geçirilmesi gerekir. Bu dosyalar sistemin daha güvenli ve verimli çalismasina yardim eder. Bu dosyalarin belli basli olanlari ve ne ise yaradiklarini görelim. /etc/hosts dosyasinda makinalarin IP numaralari ve Internet adresleri yazilir. Buraya sürekli kullanilan belli basli önemli makinalarin girisi yapilabilir. Her makinanin uzun isimleri yerine kisa bir kelime yazilarak sözkonusu makinaya ulasilabilir. Örnek bir /etc/hosts dosyasi:
127.0.0.1 localhost
144.122.199.20 knidos.cc.metu.edu.tr knidos
Ilk satirda loopback IP numarasi ve buna karsilik gelen makina ismi vardir. Bu satiri silmemelisiniz. Ikinci satirda ise knidos.cc.metu.edu.tr makinasinin IP numarasini 144.122.199.20 olarak belirtilmis ve bu bilgisayara "knidos" ismi ile de ulasilabilmesi saglanmistir.
/etc/hosts.allow ve /etc/hosts.deny yapilandirma dosyalari, baska bir makinadan Linux'unuza yapilan baglantilari denetler. /etc/hosts.deny içine, sinirlandirilma getirmek istediginiz Internet servislerini ve hangi makinalar için sinirlandirma istediginizi yazabilirsiniz.
$ cat /etc/hosts.deny
#
in.fingerd: ALL except localhost, localhost : echo "request from %d@%h" >> /tmp/req;
in.telnetd : .net.tr
Yukaridaki hosts.deny dosyasinda disaridan gelebilecek finger istekleri filtreleniyor ve bu istekler hakkinda ayrintili bilgi (hangi kullanici, hangi makinadan) /tmp/req dosyasina ekleniyor.
Sonraki satir in.telnetd yazilimini çalistiran isteklerin *.net.tr adreslerinden gelmesi halinde bunlarin gözardi edilecegini belirtir.
hosts.allow dosyasinda, genellikle hosts.deny dosyasina gruplanan makina isimlerinin sinirlandirma istenmeyen bir veya birkaç tanesi yazilir. Eger bir makina ismi ve karsilik gelen Internet adresi her iki dosyada da varsa, sözkonusu servise izin verilir.
Daha fazla bilgiyi hosts_access(5) man sayfalarindan bulabilirsiniz.
/etc/resolv.conf dosyasinda alan adi ve alan adi sunucusunun IP numarasi yazilir.
$ cat /etc/resolv.conf
domain linux.org.tr
nameserver 144.122.199.20
Yukaridaki satirlardan üzerinde bulundugum makinanin alan adinin (domain name) linux.org.tr, alan adi sunucusunun ise 144.122.199.20 IP numarali knidos makinasi oldugu anlasiliyor.
Linux'u Internet'e baglamak ilk asamada biraz zor görünse de biraz teori, biraz pratik yardimiyla mantik kolayca anlasilabiliyor. Aglar, bilgisayar sistemlerinde hata olma olasiligi en yüksek, en çok sorunun çiktigi alandir. Bu bölüm, özelde bir ethernet karti ile baglanti yapildigi varsayilarak anlatilmistir. Ancak anlatilan birçok kavram herhangi bir yapidaki Internet baglantisi için geçerli olacaktir.
Öncelikle çekirdegi -daha önce yapmamissaniz- ag baglantisina destek verecek sekilde tekrar derleyin. Bunun için gerekli birkaç soruya "y" cevabi vermek yeterli olacaktir:
CONFIG NET ? [Y/n] y
...
TCP/IP networking (CONFIG_INET) [Y/n/?] y
...
Network device support (CONFIG_NETDEVICES) [Y/n/?]
...
Ethernet (10 or 100Mbit) (CONFIG_NET_ETHERNET) [N/y/?] y
...
Other ISA cards (CONFIG_NET_ISA) [N/y/?] y
...
NE2000/NE1000 support (CONFIG_NE2000) [N/y/m/?] y
Yukaridaki örnekte ethernet kartinizin ne2000/ne1000 ya da uyumlu bir kart oldugu var sayiliyor. Kartinizin marka/modeline uygun seçenenege `y' cevabi vermelisiniz. Ethernet kartlarinin disinda baglanma yönteminize bagli olarak çekirdegi PPP, SLIP, Token Ring gibi bir destekle derlemeniz gerekebilir. Bunlari modül olarak derlemeniz de mümkün. Çekirdek derlemek konusunda daha ayrintili bilgiyi bu kitabin ilgili bölümünde bulabilirsiniz.
Tabi ki çekirdegi derlemek yetmiyor, derleme asamasindan sonra ag destegine sahip olan çekirdek ile makinanin açilmasi gerekir.
Baglantiyi gerçeklestirmek için ag sorumlusundan bazi önemli bilgileri almalisiniz. Makinanizin IP adresi bunlarin basinda gelir. Diger gerekli bilgiler de subnet mask ve broadcast adresidir.
DNS adres çözümleyici olarak çalisan DNS makinasi ve makinanizi Internet'e baglayacak olan yönlendiricinin IP adreslerini de biliyor olmalisiniz.
Bu asamadan sonra yapilandirma islemlerine geçilebilir.
Ag Yapilandirmasi
Bu bölümde anlatilan rc.* yapilandirma dosyalari Slackware dagitimina özeldir. Diger dagitimlarda da açilista çalisan benzeri rc dosyalari degistirilerek, ya da sistemle birlikte gelen sistem yönetim araçlari kullanilarak istediginiz yapilandirmayi gerçeklestirebilirsiniz.
Linux, açilirken bazi dosyalara bakarak düzgün çalismasi için gerekli yapilandirmayi yapar ve bazi yazilimlari çalistirir. Bu dosyalar /etc/rc.d dizini altinda yeralir. Internet baglantisi için sadece iki dosyaya gerek duyulur. Slackware dagitimi içinde bunlar, yapilandirmayi gerçeklestiren /etc/rc.d/rc.inet1 ve temel ag programlarini çalistiran /etc/rc.d/rc.inet2 dosyalaridir.
Bu dosyadaki degerleri gerektigi sekilde düzenleyerek Internet'e baglanacagiz. Öncelikle rc.inet1 dosyasinin içerigine göz atalim:
HOSTNAME=`cat /etc/HOSTNAME`
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0
IPADDR="144.122.71.55"
NETMASK="255.255.255.0"
NETWORK="144.122.71.0"
BROADCAST="144.122.71.255"
GATEWAY="144.122.71.1"
/sbin/ifconfig eth0 $IPADDR broadcast $BROADCAST netmask $NETMASK
/sbin/route add -net $NETWORK netmask $NETMASK
/sbin/route add default gw $GATEWAY metric 1
ifconfig komutu, ag baglantisi yapan kartin belirli parametreler ile yapilandirilmasini saglar. Kart kimligini bilgisayara tanitmak için bu komut kullanilir.
Ilk satirdaki ifconfig programi, makinanin kendisiyle haberlesmesini saglamak amaciyla kendi ag adresini (loopback device) 127.0.0.1 olarak tanitmistir. Internet üzerindeki her makinanin loopback adresi 127.0.0.1 'dir. 127 ile baslayan hiç bir adres, Internet üzerinde gerçek bir adres olarak kullanilamaz.
Her paket, gönderilecegi adrese gitmeden önce bir tabloya bakar. Bu tablo, paketin muhtemel rotasini içerir. route komutu yardimiyla bu tablo olusturulur veya kontrol edilir. Genellikle bir kart için bir ifconfig kullanilirken, paketin yollanacagi birden fazla rotanin olmasi durumunda rc.inet1 dosyasinda birden fazla route komut girdisi yapilacaktir.
Kullanilan her ag kartinin bir veya birden fazla internet adresi olabilir. Linux'a takilan birinci kart eth0 ismini alirken ikinci karta eth1, üçüncüye eth2 ... denir. Loopback cihazinin ismi lo dur. ifconfig komutunu parametre vermeden kullanirsaniz, Linux'a tanitilan ç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 makinasinin ifconfig bilgisi yukaridaki sekildedir. Bu makina üzerinde tek ethernet karti olup, ifconfig bilgisinde ikinci sirada yeraliyor. Kartla ilgili ayrintili bilgi (her kart özgü donanim numarasi, alinan ve verilen paket sayisi gibi) ifconfig çiktisinda var.
route komutunun genel kullanimi su sekildedir:
route [add | del] [-net | -host] varis_adresi [gw yonlendirici] secenekler...
host: paketin gidecegi yer baska bir makina
net: paketin gidecegi yer baska bir ag
varis_adresi: paketin gidecegi 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 satirindan yazin:
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
Örnek tabloda üç ayri yönlendirme girisi vardir. Birincisi, makinanin kendisi ile haberlesmesini saglayacak olan loopback. Ikinci satirda, yerel aga gidecek olan tüm paketlerin yönlendiriciye verilmeden aga yönlendirilmesi söylenmis. Son sirada ise (default) paket ilk iki satirda yeralan varis adresinden farkli bir adrese gidecekse, önce yönlendiriciden geçip sonra dis dünyaya açilacagindan yönlendiricinin IP adresi yazilmistir.
ifconfig, biraz karmasik bir komuttur. Sistem yöneticisinden ögrenmeniz gereken subnet maskesi, broadcast adresi ve IP adresini kullanip kartlari yapilandirir.
ifconfig eth0 144.122.71.55 netmask 255.255.255.0 broadcast 144.122.71.255
Yukarida ifconfig yardimiyla eth0 kartina hem bir IP adresi verilmis, hem de bilgisayarin bulundugu agin özellikleri tanitilmistir.
Bu andan sonra istendigi kadar route komutu ile makinadan çikacak paketler için yeni yollar tanimlanabilir.
route add -net ...
route add -host ...
Dosyanin içerigini sistem görevlisinin verdigi bilgiler dogrultusunda degistirdikten sonra komut satirindan çalistirmaniz, Internet'e baglanti için yeterli olacaktir.
# /etc/rc.d/rc.inet1
Baglantiyi kontrol etmek Internet adresini bilip çalistigindan emin oldugunuz bir makinaya telnet ile baglanti yapmaya çalisin:
$ telnet orca.cc.metu.edu.tr
Connected to orca.cc.metu.edu.tr
Escape character is ^]
Ethernet kartinin baglantisini yazilim yoluyla kesmenin yolu ifconfig 'in down seçenegidir. Örnegin tek ethernet karti üzerinden Internet baglantiniz var ve bunu hemen kesmek için asagidaki satiri yazin.
# ifconfig eth0 down
ethernet baglantisini yeniden açmak için
# ifconfig eth0 up
komutunu girmelisiniz. Bu islem sonrasinda yönlendirme bilgilerini yeniden girmeniz gerekebilir.
ping komutu, baglantilari ve ayni zamanda baglanti hizini ölçmek için kullanilan bir komuttur. Ping, ICMP protokolü yardimiyla hedef makinaya belirli uzunlukta paketler gönderir. Karsidaki makina bunlari aldigi anda bekletmeden geri yollar. Arada geçen zaman farkli, iki makina arasindaki baglanti hizi hakkinda fikir verir.
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
netstat komutu, makinanin ag karti üzerinden yapilan baglantilarin dökümünü çikarir.
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 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1943 despair.thebandit.c:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1424 despair.thebandit.co:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1932 ftp02.quicktime.app:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1407 165.113.58.253:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1392 165.113.58.253:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1377 ppp23.cc.metu.ed:telnet ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet pclabI_23.feas.met:7075 ESTABLISHED
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 ESTABLISHED
tcp 0 9495 cclub.metu.edu.t:telnet a5-03-asy27.bil-ro:1026 ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet pclabI_14.feas.me:15694 ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet stu21.math.metu.e:16158 ESTABLISHED
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
Ikinci önemli dosya olan /etc/rc.d/rc.inet2, belli basli tüm Internet sunucularini çalistirir. Asagida bu dosyanin bir kismi görülüyor.
#!/bin/sh
NET="/usr/sbin"
IN_SERV="lpd"
LPSPOOL="/var/spool/lpd"
echo -n "Starting daemons:"
# inetd calistiriliyor.
if [ -f ${NET}/inetd ]; then
echo -n " inetd"
${NET}/inetd
else
echo "no INETD found. INET cancelled!"
exit 1
fi
# degisik internet servisleri sirasiyla calistiriliyor.
for server in ${IN_SERV} ; do
if [ -f ${NET}/${server} ]; then
echo -n " ${server}"
${NET}/${server}
fi
done
Bu açilis dosyasi, ag üzerinden servs veren bir dizi sunucu programi çalistiriyor ve hatalari engellemek için programlarin yerinde olup olmadigina da bakiyor.
Kontrol Dosyalari
Yapilandirmayi tamamlamak için /etc dizini altinda yeralan bazi dosyalarin elden geçirilmesi gerekir. Bu dosyalar sistemin daha güvenli ve verimli çalismasina yardim eder. Bu dosyalarin belli basli olanlari ve ne ise yaradiklarini görelim. /etc/hosts dosyasinda makinalarin IP numaralari ve Internet adresleri yazilir. Buraya sürekli kullanilan belli basli önemli makinalarin girisi yapilabilir. Her makinanin uzun isimleri yerine kisa bir kelime yazilarak sözkonusu makinaya ulasilabilir. Örnek bir /etc/hosts dosyasi:
127.0.0.1 localhost
144.122.199.20 knidos.cc.metu.edu.tr knidos
Ilk satirda loopback IP numarasi ve buna karsilik gelen makina ismi vardir. Bu satiri silmemelisiniz. Ikinci satirda ise knidos.cc.metu.edu.tr makinasinin IP numarasini 144.122.199.20 olarak belirtilmis ve bu bilgisayara "knidos" ismi ile de ulasilabilmesi saglanmistir.
/etc/hosts.allow ve /etc/hosts.deny yapilandirma dosyalari, baska bir makinadan Linux'unuza yapilan baglantilari denetler. /etc/hosts.deny içine, sinirlandirilma getirmek istediginiz Internet servislerini ve hangi makinalar için sinirlandirma istediginizi yazabilirsiniz.
$ cat /etc/hosts.deny
#
in.fingerd: ALL except localhost, localhost : echo "request from %d@%h" >> /tmp/req;
in.telnetd : .net.tr
Yukaridaki hosts.deny dosyasinda disaridan gelebilecek finger istekleri filtreleniyor ve bu istekler hakkinda ayrintili bilgi (hangi kullanici, hangi makinadan) /tmp/req dosyasina ekleniyor.
Sonraki satir in.telnetd yazilimini çalistiran isteklerin *.net.tr adreslerinden gelmesi halinde bunlarin gözardi edilecegini belirtir.
hosts.allow dosyasinda, genellikle hosts.deny dosyasina gruplanan makina isimlerinin sinirlandirma istenmeyen bir veya birkaç tanesi yazilir. Eger bir makina ismi ve karsilik gelen Internet adresi her iki dosyada da varsa, sözkonusu servise izin verilir.
Daha fazla bilgiyi hosts_access(5) man sayfalarindan bulabilirsiniz.
/etc/resolv.conf dosyasinda alan adi ve alan adi sunucusunun IP numarasi yazilir.
$ cat /etc/resolv.conf
domain linux.org.tr
nameserver 144.122.199.20
Yukaridaki satirlardan üzerinde bulundugum makinanin alan adinin (domain name) linux.org.tr, alan adi sunucusunun ise 144.122.199.20 IP numarali knidos makinasi oldugu anlasiliyor.