linux ağ komutları

33
Linux Ağ Komutları Öğr. Gör. Mustafa SARIÖZ BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA BÖLÜMÜ BİLG 224 AĞ İŞLETİM SİSTEMLERİ II DERSİ

Upload: danae

Post on 22-Jan-2016

97 views

Category:

Documents


3 download

DESCRIPTION

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ı. Linux işletim sisteminde ağ desteği de bir servis olarak çalışmaktadır. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Linux Ağ Komutları

Linux Ağ Komutları

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

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

Page 2: Linux Ağ Komutları

BİLG 223

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

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}

Page 3: Linux Ağ Komutları

BİLG 223

ifconfig komutu

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.

Page 4: Linux Ağ Komutları

BİLG 223

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

Page 5: Linux Ağ Komutları

BİLG 223

ifconfig komutu

Ö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

Page 6: Linux Ağ Komutları

BİLG 223

Route komutu

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]

Page 7: Linux Ağ Komutları

BİLG 223

Route komutu

[root@seawolf /root]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 160.75.100.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 160.75.100.254 0.0.0.0 UG 0 0 0 eth0

Page 8: Linux Ağ Komutları

BİLG 223

Route komutu

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]#

Page 9: Linux Ağ Komutları

BİLG 223

Netstat komutu

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.

Page 10: Linux Ağ Komutları

BİLG 223

Netstat komutu

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

Page 11: Linux Ağ Komutları

BİLG 223

Netstat komutu

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.

Page 12: Linux Ağ Komutları

BİLG 223

Netstat komutu

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.

Page 13: Linux Ağ Komutları

BİLG 223

Netstat komutu

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.

Page 14: Linux Ağ Komutları

BİLG 223

Netstat komutu

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

Page 15: Linux Ağ Komutları

BİLG 223

arp komutu

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 Hwaddress Flags MaskIface printserv.labs.itu.edu. ether 00:10:5A:DB:65:87 C eth0 160.75.100.254 ether 00:90:86:A1:B4:00 C eth0

Page 16: Linux Ağ Komutları

BİLG 223

arp komutu

–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

Page 17: Linux Ağ Komutları

BİLG 223

arp komutu

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

Page 18: Linux Ağ Komutları

BİLG 223

arp komutu

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.

Page 19: Linux Ağ Komutları

BİLG 223

Ping komutu

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.

Page 20: Linux Ağ Komutları

BİLG 223

Ping komutu

[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

Page 21: Linux Ağ Komutları

BİLG 223

traceroute komutu

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

Page 22: Linux Ağ Komutları

BİLG 223

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

Page 23: Linux Ağ Komutları

BİLG 223

tcpdump

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)

Page 24: Linux Ağ Komutları

BİLG 223

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

Page 25: Linux Ağ Komutları

BİLG 223

tcpdump

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

# 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

Page 26: Linux Ağ Komutları

BİLG 223

tcpdump

# 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.

Page 27: Linux Ağ Komutları

BİLG 223

tcpdump

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.

Page 28: Linux Ağ Komutları

BİLG 223

tcpdump

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 23ile hedef portu 23 olanlar # tcpdump src port 23ile de kaynak portu 23 olan paketler izlemeye alınır.

Page 29: Linux Ağ Komutları

BİLG 223

talk

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]

Page 30: Linux Ağ Komutları

BİLG 223

finger

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.

Page 31: Linux Ağ Komutları

BİLG 223

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.

$ who $ who -q

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

Page 32: Linux Ağ Komutları

BİLG 223

host

Bu komut ile aginiza bagli uzaktaki bir sistemin ag adresibilgisine ulasabiliyoruz. Bu bilgi genellikle sistemin IPadresi, alan ismi, alan ismi takma adlari ve posta sunucusuogelerini icerir. Bu bilgilerin tumu aginizdaki alan ismisunucusundan elde edilir. Internet icin bu islem, internetuzerinden baglanabileceginiz tum sistemleri kapsar.

host komutu ,uzaktaki bir sistemin IP adresini elde etmenizicin kullanabileceginiz etkili bir yontemdir. Sistemin IPadresine sahipseniz, host komutunu kullanarak bu sisteminalan isminin ne oldugunu ogrenebilirsiniz.

$ host 212.256.0.9

seklinde kullanilabilir.

Page 33: Linux Ağ Komutları

BİLG 223

SORULAR?