Netstat Nedir? Nasıl Kullanılır?

Netstat konusunda kısa giriş bilgileri vereceğim. Netstat (network statistics) Network bağlantıları, routing tablosu, ara birim istatistikleri ve benzeri ağ bağlantısı bilgileri ile ilgili ayrıntılı bilgiler verebilen bir konsol komutudur.

Netstat komutu çeşitli parametrelerle kullanılmaktadır. Bu parametrelerin anlamları şunlardır:

-a Tüm TCP ve UDP bağlantıları ekrana basar
-e Gelen ve giden paket sayısını istatistiklerini görüntüler
-n Tüm bağlantıları rakamsal olarak görüntüler
-o Tüm bağlantıları PID numarası ve uygulama adına göre listeler
-p Bağlantıların kullandığı uygulama ve PID numarasını ekrana basar
-s Kurallara göre istatistiksel verileri ekrana basar
-r IP Yönlendirme tablosunu içeriğini görüntüler.

Netstat çıktısında yer alan bağlantı durumlarının anlamları da şunlardır:

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.

SSH üzerinde netstat çıktılarını almak için bazı örnek komutlar..

netstat -ntu

tüm TCP ve UDP bağlantıları listeler (rakamsal olarak)

netstat -ntu | grep SYN

tüm TCP ve UDP bağlantılar içinde SYN_SENT ve SYN_RECV bağlantı durumlarını ekrana basar

grep sonrasında yer alan kısmı kendi isteğinize göre değiştirebilirsiniz. Örnek komut yazacak olursak

netstat -ntu | grep ESTABLISHED

ekrana sadece ESTABLISHED olan bağlantı durumlarını 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

Yukarıda yer alan komut ffff tablosu ile ekrana basılan değerler dahil tüm ip listesini küçükten büyüye göre sıralar. Yine komuta grep ekleyerek bağlantı 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

Yukarıda yer alan komut ise 30 rakamından büyük bağlantı sayısı oluşturan tüm ipleri csf firewall yazılımı aracılığı ile banlayarak sunucudan uzaklaştırılır. Son awk yazılımında yer alan 30 değerini yükselterek limiti arttırabilir yine netstat sonrası grep ekleyerek sıralamayı belirli bağlantı durumlarına göre listeleyebilirsiniz.

netstat ile bunun dışında birçok yazılımınızın istatistik toplayarak kullanacağı en yararlı ağ komutlarından biridir.

Beğeniler: 0
Favoriler: 0
İzlenmeler: 5916
favori
like
share
karince Tarih: 30.12.2008 00:12
sagol