netstat

Makinemizdeki portlar üzerinden veri iletimini tartıştık, şimdi bazı iyi bilinen portlara bakalım.

İyi bilinen portların bir listesini /etc/services dosyasına bakarak alabilirsiniz:

ftp             21/tcp
ssh             22/tcp
smtp            25/tcp 
domain          53/tcp  # DNS
http            80/tcp
https           443/tcp
..etc..

İlk sütun servis adıdır, ardından port numarası ve kullandığı transport layer protokolü gelir.

netstat

Ağınız hakkında ayrıntılı bilgi almak için son derece kullanışlı bir araç netstat’tır. Netstat ağ bağlantıları, routing tabloları, network interface bilgileri ve daha fazlası gibi çeşitli ağ ile ilgili bilgileri gösterir; networking araçlarının İsviçre çakısı gibidir. Netstat’in bir özelliğine, ağ bağlantılarının durumuna, odaklanacağız. Bir örneğe bakmadan önce, sockets ve portlar hakkında konuşalım. Bir socket, programların veri göndermesine ve almasına izin veren bir arayüzdür; bir port ise hangi uygulamanın veri gönderip alması gerektiğini belirlemek için kullanılır. Socket address, IP adresi ve port’un birleşimidir. Bir host ile hedef arasındaki her bağlantı benzersiz bir socket gerektirir. Örneğin, HTTP port 80’de çalışan bir servistir, ancak birçok HTTP bağlantımız olabilir ve her bağlantıyı sürdürebilmek için bağlantı başına bir socket oluşturulur.

pete@icebox:~$ netstat -at

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 icebox:domain           *:*                     LISTEN     
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 icebox.lan:44468        124.28.28.50:http       TIME_WAIT  
tcp        0      0 icebox.lan:34751        124.28.29.50:http       TIME_WAIT  
tcp        0      0 icebox.lan:34604        economy.canonical.:http TIME_WAIT  
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       1      0 ip6-localhost:35094     ip6-localhost:ipp       CLOSE_WAIT 
tcp6       0      0 ip6-localhost:ipp       ip6-localhost:35094     FIN_WAIT2

netstat -a komutu, network bağlantıları için listening ve non-listening socket’leri gösterir, -t flag’i yalnızca TCP bağlantılarını gösterir.

Sütunlar soldan sağa şu şekildedir:

  • Proto: Kullanılan protokol, TCP veya UDP.

  • Recv-Q: Alınmak üzere kuyruğa alınmış veri

  • Send-Q: Gönderilmek üzere kuyruğa alınmış veri

  • Local Address: Yerel olarak bağlı host

  • Foreign Address: Uzak olarak bağlı host

  • State: Socket’in durumu

Socket durumlarının bir listesi için man sayfasına bakın, ancak işte birkaç tanesi:

  • LISTENING: Socket, gelen bağlantılar için dinlemededir; bir TCP bağlantısı kurduğumuzda, bağlanmadan önce hedefimizin bizi dinliyor olması gerekir.

  • SYN_SENT: Socket, aktif olarak bir bağlantı kurmaya çalışmaktadır.

  • ESTABLISHED: Socket, kurulmuş bir bağlantıya sahiptir.

  • CLOSE_WAIT: Uzak host kapanmıştır ve socket’in kapanmasını bekliyoruz.

  • TIME_WAIT: Socket, ağda hâlâ bulunan packet’leri işlemek için kapanıştan sonra beklemektedir.

Last updated