Netstat Nedir ? — Nasıl Kullanılır ?
Netstat (network statistics) Network baglantilari, routing tablosu, ara birim istatistikleri ve benzeri ag baglantisi bilgileri ile ilgili ayrintili bilgiler verebilen bir konsol komutudur.
Netstat komutu cesitli parametrelerle kullanilmaktadir. Bu parametrelerin anlamlari sunlardir:
-a Tüm TCP ve UDP baglantilari ekrana basar
-e Gelen ve giden paket sayisini istatistiklerini görüntüler
-n Tüm baglantilari rakamsal olarak görüntüler
-o Tüm baglantilari PID numarasi ve uygulama adina göre listeler
-p Baglantilarin kullandigi uygulama ve PID numarasini ekrana basar
-s Kurallara göre istatistiksel verileri ekrana basar
-r IP Yönlendirme tablosunu icerigini görüntüler.
Netstat ciktisinda yer alan baglanti durumlarinin anlamlari da sunlardir:
ESTABLISHED : Soket baglanti gerceklestirmis durumdadir.
SYN_SENT : Soket baglanti kurmaya calisiyordur.
SYN_RECV : Agdan bir baglanti istegi gelmistir.
FIN_WAIT1 : Soket kapatilmis , baglanti sonlandirilmak üzeredir.
FIN_WAIT2 : Baglanti sonlandirilmistir. Soket karsi ucun baglantiyi sonlandirmasini beklemektedir.
TIME_WAIT : Soket kapndiktan sonra gelebilecek paketleri alabilmek icin beklemektedir.
CLOSED : Soket kullanilmamaktadir.
CLOSE_WAIT : Karsi uc baglantiyi kapatmistir. Soketin kapanmasi beklenmektedir.
LAST_ACK : Karsi uc baglantiyi sonlandirmis ve soketi kapatmistir. Onay beklenmektedir.
LISTEN : Soket gelebilecek baglantilar icin dinleme konumundadir.
CLOSING : Yerel ve uzak soketler kapatilmis fakat tüm verilerini göndermemis durumdadirlar. Tüm veriler gönderilmeden soketler kapanmazlar.
SSH üzerinde netstat ciktilarini almak icin bazi örnek komutlar..
netstat -ntu
tüm TCP ve UDP baglantilari listeler (rakamsal olarak)
netstat -ntu | grep SYN
tüm TCP ve UDP baglantilar icinde SYN_SENT ve SYN_RECV baglanti durumlarini ekrana basar
grep sonrasinda yer alan kismi kendi isteginize göre degistirebilirsiniz. Örnek komut yazacak olursak
netstat -ntu | grep ESTABLISHED
ekrana sadece ESTABLISHED olan baglanti durumlarini basar..
netstat -ntu | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -n | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0
Yukarida yer alan komut ffff tablosu ile ekrana basilan degerler dahil tüm ip listesini kücükten büyüye göre siralar. Yine komuta grep ekleyerek baglanti durumuna göre listeleme yapabiliriz.
for i in $(netstat -ntu | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -n | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0 | awk '{ if ($1 > 30) print $2 }'); do /usr/sbin/csf -d $i;done
Yukarida yer alan komut ise 30 rakamindan büyük baglanti sayisi olusturan tüm ipleri csf firewall yazilimi araciligi ile banlayarak sunucudan uzaklastirilir. Son awk yaziliminda yer alan 30 degerini yükselterek limiti arttirabilir yine netstat sonrasi grep ekleyerek siralamayi belirli baglanti durumlarina göre listeleyebilirsiniz.
netstat ile bunun disinda bircok yaziliminizin istatistik toplayarak kullanacagi en yararli ag komutlarindan biridir.