Linux Ağ Komutları Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ

Download Report

Transcript Linux Ağ Komutları Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ

BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 224 AĞ İŞLETİM SİSTEMLERİ II DERSİ

Linux Ağ Komutları

Öğr. Gör. Mustafa SARIÖZ

Ağ ayalarının Etkin Kılınması

BİLG 223

 Linux işletim sisteminde ağ desteği de bir servis olarak çalışmaktadır.  Red Hat Linux sistemlerde servislerin çalıştırılması ile ilgili scriptler /etc/rc.d/init.d dizini içinde bulunmaktadır.  Ağ ayarlarının aktif hale getirilmesi veya ayarların aktif halden çıkarılması için bu dizin içinde bulunan network scripti kullanılmaktadır.

/etc/rc.d/init.d/network {start|stop|restart|reload|status|probe}

ifconfig komutu

BİLG 223

 Ifconfig komutu ağ arayüzünün IP ayarlarını yapmakta kullanılmaktadır. Bu ayarlar arasında aşağıdaki parametreler bulunur :  IP adresi : IP ayarlarının temel öğesidir. Bu parametrenin mutlaka verilmesi gerekmektedir.

 Ağ maskesi : Makinenin sahip olduğu alt ağı belirlemek için kullanılan maskedir.

 Yayın Adresi : Gönderilen paketin ağ üzerinde bulunan tüm makinelere ulaşması gerektiğinde paketin gönderilmesi gereken IP adresidir.

ifconfig komutu

               

[root@seawolf /root]# ifconfig eth0 Link encap:Ethernet HWaddr 00:10:5A:AC:4F:66 inet addr:160.75.100.40 Bcast:160.75.100.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:669410 errors:0 dropped:0 overruns:0 frame:0 TX packets:141875 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:10 Base address:0xfc00 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:13647 errors:0 dropped:0 overruns:0 frame:0 TX packets:13647 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

BİLG 223

ifconfig komutu

BİLG 223

 Önce makinamız kendisini bilsin, bulunduğu ağı bilsin. Örneğin ip adresimiz xxx.xxx.xxx.xxx, netmaskımız 255.255.0.0 olsun  ifconfig eth0 xxx.xxx.xxx.xxx netmask 255.255.20.0 up

Route komutu

BİLG 223

   route komutu makinenin yönlerndirme ile ilgili ayarlarını yapmak için kullanılan komuttur.

Bu komut sayesinde makinenin yönlendirme tablosu oluşturulur. Yönlendirme tablosu giden paketlerin hangi arayüz üzerinden , hangi makineye gideceği bilgilerini içerir.  

route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] route del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]

Route komutu

BİLG 223

     

[root@seawolf /root]# route Kernel IP routing table Destination 160.75.100.0 * 127.0.0.0 * default Gateway Genmask 255.255.255.0

Flags U 255.0.0.0

160.75.100.254

U 0.0.0.0

0 0 Metric 0 0 0 lo UG 0 Ref Use Iface 0 eth0 0 0 eth0

Route komutu

BİLG 223

 Paketlerimizin internete ağımızda hangi düğüm üzerinden çıkacağını belirtmek için default gateway ayarlaması yapmamız gerekir.  Ancak bunu ayarlayabilmek için sizin de gateway ip adresinizi bilmeniz gerekli    route add default gw xxx.xxx.xxx.xxx

[root@seawolf /root]# route add default gw 192.168.1.254 eth0

[root@seawolf /root]#

Netstat komutu

BİLG 223

netstat komutu ağ bağlantıları , yönlendirme tablosu , arayüz istatistikleri gibi ağ ile ilgili temel bilgileri göstermeye yarayan bir programdır. Temel olarak aşağıdaki gibi kullanılır : 

netstat [seçenekler]

 Hiç bir seçenek verilmediği takdirde netstat programı sistemde kullanımda olan soketler hakkında bilgi verecektir.

Netstat komutu

           

[root@atlas kurs_ornek]# netstat Active Internet connections (w/o servers) Proto Recv-Q tcp 0 0 Send-Q Local Address atlas.cc.itu.edu.t:2012 tcp tcp tcp tcp 0 0 0 0 0 1 0 0 atlas.cc.itu.edu.t:smtp atlas.cc.itu.edu:telnet atlas.cc.itu.edu.tr:www atlas.cc.itu.edu.t:pop3 tcp tcp tcp 0 0 0 0 0 0 atlas.cc.itu.edu.t:smtp atlas.cc.itu.edu.tr:www atlas.cc.itu.edu.t:pop3 Foreign Address State mail.cc.itu.edu.tr:auth ESTABLISHED mail.cc.itu.edu.tr:4021 ESTABLISHED 160.75.59.68:1292 ESTABLISHED 212.29.64.132:6309 ESTABLISHED bio3.bio.itu.edu.t:1523 TIME_WAIT 160.75.59.205:1252 TIME_WAIT gw-ehv01.pnl.phil:47459 TIME_WAIT cascade.geop.itu.e:1243 TIME_WAIT

BİLG 223

Netstat komutu

BİLG 223

Netstat komutu çıktısının “Active Internet Connections” bölümünde bulunan sutünlar ve anlamları aşağıdaki gibidir :       Proto : Soket tarafından kullanılan protokolü belirtir. Tcp , udp veya raw değerlerini içerebilir.

Recv-Q : Bu soketi kullanan programa kopyalanmayan verinin büyüklüğünü byte olarak belirtir.

Send-Q : Karşıdaki sistem tarafından alındığı onaylanmayan verinin büyüklüğünü byte olarak belirtir.

Local Adress: Soketin yerek uçtaki IP adresi ve port numarasını belirtir. Eğer netstat programı –n seçeneği ile çalıştırılmamış ise IP adresi ve port numarası için çözümleme yapılır.

Foreign Adress: Soketin uzak uçtaki IP adresi ve port numarasını belirtir. Eğer netstat programı –n seçeneği ile çalıştırılmamış ise IP adresi ve port numarası için çözümleme yapılır.

State: Durum Bilgisi.

Netstat komutu

BİLG 223

Soketler aşağıdaki durumlarda olabilirler :            ESTABLISHED : Soket bağlantı gerçekleştirmiş durumdadır.

SYN_SENT : Soket bağlantı kurmaya çalışıyordur.

SYN_RECV : Ağdan bir bağlantı isteği gelmiştir.

FIN_WAIT1 : Soket kapatılmış , bağlantı sonlandırılmak üzeredir.

FIN_WAIT2 : Bağlantı sonlandırılmıştır. Soket karşı ucun bağlantıyı sonlandırmasını beklemektedir.

TIME_WAIT : Soket kapndıktan sonra gelebilecek paketleri alabilmek için beklemektedir.

CLOSED : Soket kullanılmamaktadır CLOSE_WAIT : Karşı uç bağlantıyı kapatmıştır. Soketin kapanması beklenmektedir.

LAST_ACK : Karşı uç bağlantıyı sonlandırmış ve soketi kapatmıştır. Onay beklenmektedir.

LISTEN : Soket gelebilecek bağlantılar için dinleme konumundadır.

CLOSING : Yerel ve uzak soketler kapatılmış fakat tüm verilerini göndermemiş durumdadırlar. Tüm veriler gönderilmeden soketler kapanmazlar.

Netstat komutu

BİLG 223

   Eğer netstat –e seçeneği ile çalıştırılmış ise User sutunu ile soketi kullanan programın çalıştığı kullanıcı kimlik numarası veya kullanıcı ismi bilgisini içerir. Eğer netstat –p seçeneği ile çalıştırılmış ise “PID/Program name” sutunu soketi kullanan programın süreç kimlik numarası ve program ismini gösterecektir. Her kullanıcı sadece kendi programları için bu bilgiyi alabilmektedir. Root kullanıcısı ise tüm soketler için bu bilgiyi alma hakkına sahiptir.

İstendiği takdirde netstat programı sadece belli bir protokol için listeleme yapabilmektedir. TCP protokülü için –t , UDP için –u , RAW için –w ve UNIX soketleri için –x seçenekleri kullanılmaktadır.

Netstat komutu

BİLG 223

Netstat programı –i seçeneği ile çalıştırıldığında sistemdeki arayüzler ile ilgili istatistikler vermektedir. Bu istetistikler arasında gönderilen paket sayısı (TX-OK) , gönderilen paketlerde oluşan hata sayısı(TX-ERR) , gönderilen paketlerden çöpe atılan sayısı (TX-DRp) , giden paketlerde oluşan üstüne yazma hatası sayısı (TX-OVR) ve aynı bilgilerin gelen paketler (RX) için olanı bulunmaktadır.

     

[root@atlas baykale]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 67876270 0 0 0 119418625 0 0 5 BRU lo 3924 0 1698494 0 0 0 1698494 0 0 0 LRU

arp komutu

 

BİLG 223

Arp komutu sistemin arp önbelleği ile ilgili işlevlerin yapılmasını sağlar. Yapılabilecek temel işlemler arasında arp toblosunu incelemek , arp tablosundan kayıt silmek ve arp tablosuna kayıt eklemek vardır.

Sistemin arp tablosunda , IP adresi – fiziksel adres çiftleri için kayıtlar bulunmaktadır. Sistemde bulunan arp tablosunu görmek için sadece arp komutunun çalıştırılması yeterlidir.    

[root@seawolf /root]# arp Address Hwtype printserv.labs.itu.edu.ether

160.75.100.254

ether Hwaddress 00:10:5A:DB:65:87 00:90:86:A1:B4:00 Flags C C Mask eth0 eth0 Iface

arp komutu

BİLG 223

 –a parametresi kullanıldığı takdirde istenilen makinenin MAC adresi istenebilir.

 

[root@seawolf /root]# arp -a 160.75.100.254

? (160.75.100.254) at 00:90:86:A1:B4:00 [ether] on eth0

 Arp tablosuna kayıt eklemek için –s seçeneği kullanılır .  

arp –s makine_ismi MAC_adresi arp –s makine_IP MAC_adresi

arp komutu

BİLG 223

 Arp tablosundan kayıt silmek için –d seçeneği kullanılır. Kayıt silmek için kullanılan temel arp komutunun yapısı aşağıdaki gibidir :  

arp –d makine_ismi

arp –d makine_IP

arp komutu

BİLG 223

  Ping komutu ICMP protokolü üzerinden ECHO_REQUEST göndermek için kullanılır. Bu isteği alan sunucu isteğe cevap gönderir. Arada geçen zaman hesaplanarak kullanıcıya gösterilir.

Ping komutu çoğunlukla karşıdaki makinenin ayakta olup olmadığını kontrol etmek için kullanılır. Eğer ping isteğine cevap gelmiyor ise uzaktaki makine çalışmıyor olabilir. Aynı zamanda ping komutunun çıktısından iki makine arasındaki transferin ne kadar hızlı olabileceği hakkında tahmin yürütülebilir. Daha kısa sürede cevap veren bir makine ile yapılan haberleşme , daha uzun sürede cevap veren makine ile yapılan haberleşmeden coğu zaman daha hızlıdır.

Ping komutu

BİLG 223

 Ping komutu ile aşağıdaki seçenekler kullanılabilir :      -c sayı : Sayı ile belirtilen kadar ping paketi gönderdikten sonra programdan çıkılmasını sağlar. Bu seçenek kullanılmadığı takdirde ping programı kullanıcıdan kapatma isteği gelene kadar çalışacaktır. En basit kapatma isteği CTRL-C tuşları ile verilir.

-f : Çok hızlı olarak ping paketi üretilmesini sağlar. Sadece root kullanıcısı tarafından kullanılabilir. Ağ üzerinde yavaşlatıcı etken yapabileceğinden dikkatli kullanılması gerekmektedir.

-i süre : Her bir ping paketinin gönderilmesi arasında geçmesi gereken sürenin ayarlanması için kullanılır. Belirtilen süre saniye cinsindendir. Bu seçenek kullanılmadığı takdirde her bir saniyede bir ping paketi gönderilir. –f seçeneği ile uyumsuzdur.

-n : Bu seçenek kullanıldığı takdirde ping isteği gönderilen makineden gelen cevapların kullanıcıya gösterilmesi sırasında makinenin ismi yerine IP adresi kullanılır.

-s paket_büyüklüğü : Gönderilecek ping paketinin büyüklüğünün ayarlanması için kullanılır. Varsayılan paket büyüklüğü 56 byte’tır. 8 bytelık ICMP başlık bilgisi ile paket boyu 64 byte’a çıkar.

Ping komutu

      

BİLG 223

[root@seawolf /root]# ping 160.75.2.20

PING 160.75.2.20 (160.75.2.20) from 160.75.100.40 : 56(84) bytes of data.

Warning: time of day goes back, taking countermeasures.

64 bytes from 160.75.2.20: icmp_seq=0 ttl=254 time=801 usec 64 bytes from 160.75.2.20: icmp_seq=1 ttl=254 time=402 usec 64 bytes from 160.75.2.20: icmp_seq=2 ttl=254 time=365 usec 64 bytes from 160.75.2.20: icmp_seq=3 ttl=254 time=365 usec

   

--- 160.75.2.20 ping statistics -- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/mdev = 0.365/0.483/0.801/0.184 ms

traceroute komutu

BİLG 223

 traceroute komutu ile uzaktaki makineye giden yol hakkında bilgi alınır. Bu bilgilerden en temel olanı uzaktaki makineye giderken geçilen yönlendiricilerdir.

 Komutun temel kullanım şekli aşağıdaki gibidir:

traceroute [seçenekler] makine_ismi

Traceroute komutu

               

[root@seawolf /root]# traceroute www.metu.edu.tr

traceroute to www.metu.edu.tr (144.122.199.13), 30 hops max, 38 byte packets 1 160.75.100.254 (160.75.100.254) 3.737 ms 0.863 ms 1.001 ms 2 cis7500 (160.75.3.1) 3.061 ms 1.569 ms 1.139 ms 3 ATM0-0-48-itu-ayazaga.ulus.ulak.net.tr (193.255.0.33) 4.062 ms 14.875 ms 9.401 ms 4 193.140.10.249 (193.140.10.249) 11.420 ms 9.836 ms 8.823 ms 5 odtu-ulus-E1.ulak.net.tr (193.140.0.6) 21.681 ms 67.849 ms 26.746 ms 6 2.asn9000.atm.metu.edu.tr (144.122.155.3) 23.340 ms 19.979 ms 23.190 ms 7 ani.cc.metu.edu.tr (144.122.199.13) 22.039 ms 25.180 ms 24.370 ms [root@seawolf /root]# traceroute -f 3 www.metu.edu.tr

traceroute to www.metu.edu.tr (144.122.199.13), 30 hops max, 38 byte packets 3 ATM0-0-48-itu-ayazaga.ulus.ulak.net.tr (193.255.0.33) 229.305 ms 4.603 ms 256.893 ms 4 193.140.10.249 (193.140.10.249) 9.323 ms 21.810 ms 12.495 ms 5 odtu-ulus-E1.ulak.net.tr (193.140.0.6) 27.712 ms 19.829 ms 22.949 ms 6 2.asn9000.atm.metu.edu.tr (144.122.155.3) 39.968 ms 31.222 ms 29.063 ms ani.cc.metu.edu.tr (144.122.199.13) 19.757 ms 19.717 ms 45.454 ms

BİLG 223

tcpdump

BİLG 223

 Unix işletim sistemlerinde var.

 Komut satırında çalışır.

 Ağdaki paketleri ya da kaydedilmiş paket trafiği dosyasını izlemek amacıyla kullanılır  Paketlerin başlık bilgilerini alır (istenirse tüm paketi de alır)

tcpdump

 normal kullanım;

# tcpdump

17:18:21.531930 IP huzeyfe.32829 > erhan.telnet: S 3115955894:3115955894(0) win 5840 17:18:21.531980 IP erhan.telnet > huzeyfe.32829: R 0:0(0) ack 3115955895 win 0

BİLG 223

tcpdump

-n /İsim Çözümleme

Eğer tcpdump ile yakalanan paketlerin dns isimlerinin çözülmesini istemiyorsak -n parametresini kullanabiliriz,

BİLG 223

# tcpdump –n 17:18:53.802776 IP 192.168.0.100.32835 > 192.168.0.1.telnet: S 3148097396:3148097396(0) win 5840 17:18:53.802870 IP 192.168.0.1.telnet > 192.168.0.100.32835: R 0:0(0) ack 3148097397 win 0

tcpdump

BİLG 223

# tcpdump -nn

yukarıda (-n için)verdiğimiz örnekte -n yerine -nn koyarsanız hem isim hemde port çözümlemesi yapılmayacaktır,yani telnet yerine 23 yazacaktır.

tcpdump

BİLG 223

 kaynak ip si 10.1.0.59 hedef hostu 10.1.0.1 olan paketleri izlemek istersek

# tcpdump src host 10.1.0.59 and dst host 10.1.0.1

komutunu verebiliriz.

tcpdump

BİLG 223

 src ile kaynak portu dst ile hedef portu belirtebiliriz . dst ya da src önekini kullanmazsak hem kaynak hemde hedef portu alır.

# tcpdump port 23 # tcpdump dst port 23

ile hedef portu 23 olanlar

# tcpdump src port 23

ile de kaynak portu 23 olan paketler izlemeye alınır.

talk

BİLG 223

   Talk (bazı sistemlerde ntalk), internet üzerindeki iki kullanıcının aynı anda karşılıklı yazışmasını sağlayan bir protokol ve bu işi yapan programlara verilen genel addır.

Talk kullanmak için her iki tarafta da TALK DAEMON (Talk servis sağlayıcı) kurulu olmalıdır.

(# yum install talk-server )

Örnek:

talk [email protected]

finger

      

BİLG 223

Bir sistemde (domain) çalışan kişileri görebilmek için finger komutu kullanılabilir.

Örnek:

finger @hamlin.cc.boun.edu.tr

Finger servisini kullanabilmek için sorgulama yapılan sistemin buna izin vermesi gerekir.

Belirli bir kullanıcının, makinesinin o an açık olup olmadığını anlayabilmek için de finger komutu kullanılabilir.

Örnek:

finger [email protected]

Bu komutun cevabından kullanıcının hangi terminalde çalıştığı, eğer tanımlamışsa 'plan' dosyasında kendisi ile ilgili verdiği bazı bilgiler elde edilebilir.

who

 Sistemle etkilesime giren kullanicilari gosterir. Bu komut ile sistemdeki kullanicilar listelenir, nereden baglandiklari ve ne kadar sureyle bagli olduklari gosterilir. Karsiniza bilgilerin ayrinti seviyesini belirtmenizi saglayan ve agda ya da yerel bir sistemde calismasi gereken birkac parametre vardir. Bu parametrelerden -q, sistemde bulunan kullanicilari ve toplam kullanici sayisini gosterir.

BİLG 223

$ who $ who -q who komutunun diger kullanim sekilleri icin "who --help", daha ayrintili bilgi icin "man who" komutlarini kullaniniz.

host

 Bu komut ile aginiza bagli uzaktaki bir sistemin ag adresi bilgisine ulasabiliyoruz. Bu bilgi genellikle sistemin IP adresi, alan ismi, alan ismi takma adlari ve posta sunucusu ogelerini icerir. Bu bilgilerin tumu aginizdaki alan ismi sunucusundan elde edilir. Internet icin bu islem, internet uzerinden baglanabileceginiz tum sistemleri kapsar.

host komutu ,uzaktaki bir sistemin IP adresini elde etmeniz icin kullanabileceginiz etkili bir yontemdir. Sistemin IP adresine sahipseniz, host komutunu kullanarak bu sistemin alan isminin ne oldugunu ogrenebilirsiniz.

$ host 212.256.0.9

seklinde kullanilabilir.

BİLG 223

 SORULAR?

BİLG 223