logo

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Kısaca bilgisayar ağındaki portları anlatacağız ve ayrıca Linux'ta açık olan her portu nasıl listeleyebileceğimizden bahsedeceğiz.

Bağlantı noktası, bilgisayar ağı ve yazılım terimlerinde mantıksal bir varlık olarak tanımlanabilir.

Belirli bir süreci veya uygulamayı tanımlamak için bir iletişim uç noktası görevi görür. Linux işletim sistemi . Bir liman bir 16 bit (o ila 65535) Tek bir uygulamayı çeşitli uç sistemlerdeki diğerlerinden ayıran numara.

En ünlü İnternet aktarım protokollerinden ikisi, Kullanıcı Datagram Protokolü (UDP) Ve İletim Kontrol Protokolü (TCP) ve diğer protokoller, birçok iletişim oturumu için bağlantı noktası numaralarını uygular (hedef ve kaynak IP adresleriyle birlikte hedef ve kaynak bağlantı noktası numaraları).

Gibi bir protokol, bağlantı noktası ve IP adresinin birleşimi TCP/UDP denir priz. Tüm hizmetlerin belirli bir sokete sahip olması gerekir.

struct dizi c programlama

Liman Kategorileri

Bu bağlantı noktaları, bağlantı noktalarının çeşitliliği fazla olduğundan kullanım kolaylığı açısından üç kategoriye ayrılmıştır. Tüm kategoriler bağlantı noktası değer aralığı olarak etiketlenmiştir:

0-1023: Bu bağlantı noktaları tanınmış ve aradım 'Sistem' limanlar. Çok çeşitli ağ hizmetleri sağlayan sistem süreçleri için ayrılmıştır. Bir süreç, herhangi bir işlemle bağlanmak için süper kullanıcı ayrıcalıklarına sahip olmalıdır. 'Tanınmış' liman.

1024-49151: Bu bağlantı noktaları 'Kayıtlı' ve aradı 'Kullanıcı' limanlar. aracılığıyla belirlenirler. IANA benzersiz hizmetler için. Bir işlemin istek üzerine kimlik doğrulaması olabilir. Çoğu sistem durumunda bu bağlantı noktalarını kullanmak için herhangi bir süper kullanıcı ayrıcalığına ihtiyaç duymaz.

49152-65535: Bu bağlantı noktaları 'Dinamik' ve aradı 'Özel' limanlar. Kayıt olamazlar IANA. Bu tür bağlantı noktaları, özelleştirilmiş ve özel hizmetler için kullanıma açıktır ve geçici bağlantı noktaları (olarak da bilinir) olarak da tahsis edilebilir. kısa ömürlü IP tarafından uygulanan bağlantı noktaları) otomatik olarak.

Linux'ta açık bağlantı noktalarını kontrol etmenin pek çok yolu vardır. Varsayılan olarak, herhangi bir uygulama uygulamadığı sürece bağlantı noktası kapanır. Bir bağlantı noktası açıksa bir işleme veya hizmete atanmalıdır.

Bağlantı Noktaları Listesini Aç

Hangi portun açık olduğunu bilmek yerine hangi portun kullanımda olduğunu bilmek daha kolaydır. Bu nedenle, aşağıdaki bölüm şu anda kullanımda olan her bağlantı noktasını listelemek için yöntemler sağlayacaktır.

Linux'ta bu görev için çeşitli araçlar mevcuttur. Çoğu mevcut yerleşik bir Linux dağıtımında.

Şu anda hangi bağlantı noktasının açık olduğunu öğrenmek birçok senaryoda yararlı olabilir. Garantili bir uygulama için özel bir bağlantı noktası belirlemek mümkündür. Açık bir bağlantı noktası, ağ içinde güçlü bir izinsiz giriş göstergesi olabilir.

Kullanılan yöntemler Ubuntu 20.04LTS aşağıda belirtilenler.

/etc/services dosyasını kullanarak açık bağlantı noktalarını ve protokolleri listeleyin

Dosya, yani, /etc/hizmetler Çalışan hizmetler (şu anda) hakkında ayrıntılar içerir. Büyük bir dosyadır.

 $cat /etc/services | less 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Netstat ile açık bağlantı noktalarını listeleme

netstat araç, yönlendirme tabloları, TCP ve çeşitli ağ arayüzleri için ağ bağlantılarını görüntüleyen bir yardımcı program olarak tanımlanabilir. Ayrıca ağ protokolünün istatistiklerini kolaylaştırır. Netstat aracını kullanarak bir sistemin tüm açık portlarını listeleyebiliriz.

Aşağıdaki komutu çalıştırabiliriz:

 $ netstat -atu 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Yukarıdaki komutta kullandığımız her bayrağın dökümünü hızlıca açıklayalım:

1 A: Bu bayrak netstat'a her bir soketin görüntülenmesi konusunda bilgi verir.

2.t: Bu bayrak netstat'a TCP bağlantı noktalarını listelemesi konusunda bilgi verir.

3. içinde: Bu bayrak netstat'a UDP bağlantı noktalarını listeleme konusunda bilgi verir.

netstat komutunun aşağıda belirtilen başka bir varyasyonu vardır:

 $ netstat -lntu 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Aşağıda açıklanan yukarıdaki komutta iki bayrak yenidir:

1. ben: Bu bayrak netstat'a yalnızca dinleme yuvalarını yazdırması konusunda bilgi verir.

2.n: Bu bayrak netstat'a port numarasını göstermesi konusunda bilgi verir.

Bir bayrak kullanabiliriz, yani, '-P' herhangi bir bağlantı noktasını kullanan işlem PID'sini göstermek için.

 $ netstat -lntup 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Açık bağlantı noktalarını yerel olarak kontrol edin

Netstat komutu, ağ bağlantılarını izlemek için her bilgisayar işletim sisteminde mevcuttur. Aşağıdaki komut, TCP protokolüyle her dinleme bağlantı noktasını görüntülemek için netstat'ı uygular:

 netstat -lt 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Yukarıdaki komutta bulunan flagları kısaca tanımlayalım:

1.-l: Dinleme bağlantı noktalarını listeler.

2.-t: TCP protokolünü belirtir.

Sonuç, protokolü, insan dostu, gönderilen ve alınan paketleri, bağlantı noktası durumunu, uzak ve yerel IP adreslerini görüntüleyen sütunlarda iyi bir şekilde sıralanmıştır.

UDP protokolü için TCP protokolünü değiştirirsek, çıktı yalnızca açık bağlantı noktalarını gösterecektir. Sonuç, TCP protokolüne aykırılık nedeniyle durumu açıklamadan gösterilecektir.

 netstat -lu 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Protokolleri açıklayanları göz ardı edebiliriz ve protokolü serbestçe dinleyen her bağlantı noktasının ayrıntılarını almak için yalnızca --listen veya -l seçeneğini uygulayabiliriz:

 netstat --listen 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Yukarıdaki seçenek Unix, UDP ve TCP soket protokollerinin ayrıntılarını gösterecektir.

Yukarıdaki her örnek, ayrıntıların yetkili bağlantılar olmadan dinleme bağlantı noktaları üzerinden nasıl yazdırılacağını gösterir. Aşağıdaki komutlar dinleme bağlantı noktalarının ve yetkili bağlantıların nasıl gösterileceğini gösterir.

 netstat -vatn 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Nerede:

1.-in: Ayrıntı için kullanılır.

2.-a: Aktif bağlantıları görüntüler.

3.-t: Tcp bağlantılarını görüntüler.

4.-n: Bağlantı noktalarını (sayısal değer) görüntüler.

Şehzad poonawala

Diyelim ki sistemimizde şüpheli bir süreç tespit ettik ve bununla ilgili portları kontrol etmek istiyoruz. İşlemlerle ilgili açık dosyaları listelemek için kullanılan lsof komutunu kullanabiliriz.

 lsof -i 4 -a -p 

Nerede,

1.-i: İnternet ile işbirliği yapan dosyaları listeler, 6 için seçenek mevcut IPv6, ve 4 seçenek yalnızca yazdırma talimatını verir IPv4.

2.-a: Sonucun olması talimatını verir Verdiğiniz.

3.-p: Kontrol etmek istediğimiz proses PID numarasını belirtir.

Açık portları ss ile listele

ss aracı, soketi araştırmak için bir yardımcı program olarak belirtilebilir. Bu aracın kullanımı aşağıdakilerle aynıdır. netstat emretmek.

Açık portları listelemek için aşağıdaki komutu çalıştırabiliriz:

 $ ss -lntu 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Yukarıdaki bayraklar aynı netstat emretmek. SS aracının tanımladığı işlevler de tamamen aynıdır.

1. ben: Bu bayrak ss'ye dinleme soketlerinin görüntülenmesi konusunda bilgi verir.

2.n: Bu bayrak ss'ye hizmet adlarını sonuçlandırmaya çalışmaması gerektiğini bildirir.

3.t: Bu bayrak, TCP yuvalarını görüntülemek için ss'yi bilgilendirir.

4. içinde: Bu bayrak, ss'yi UDP yuvalarını görüntüleme konusunda bilgilendirir.

lsof ile açık portları listele

Açık dosyaları listelemek için lsof komutu kullanılabilir. Ancak açık bağlantı noktalarını görüntülemek için de kullanılabilir.

Aşağıdaki komutu çalıştırabiliriz:

 $ lsof -i 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Belirli bir protokolün (UDP, TCP, vb.) açık bağlantı noktalarını almak için, bunu kullandıktan sonra belirtin. '-Ben' flag'ı kullanarak aşağıdaki komutu çalıştırabiliriz:

 $ lsof -i 

Nmap ile açık portları listele

Nmap komutu, bağlantı noktası/güvenlik taraması ve ağ araştırması için güçlü bir komut olarak tanımlanabilir. Ayrıca sistemdeki her açık portu raporlayabilir.

Açık olan TCP portlarını listelemek için aşağıdaki komutu çalıştırabiliriz.

 $ sudo nmap -sT -p- localhost 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Bu komutun yukarıda bahsedilen iki bölümü vardır:

1 inci: Nmap aracını tarama için bilgilendirir TCP limanlar.

2. -p-: Nmap aracına her tarama için bilgi verir. 65535 limanlar. Nmap aracı tarayacak 1000 bağlantı noktaları yalnızca kullanılmadığı takdirde varsayılan olarak kullanılır.

UDP'nin açık portlarını listelememiz gerekirse aşağıdaki komutu çalıştırabiliriz:

 $ sudo nmap -sU -p- localhost 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Hem UDP hem de TCP bağlantı noktalarını almak için aşağıdaki komutu da uygulayabiliriz:

 $ sudo nmap -n -PN -sT -sU -p- localhost 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

netcat ile açık portları listele

Netcat aracı, UDP ve TCP protokolleri üzerindeki birçok ağ bağlantısı üzerinden veri okumak ve yazmak için kullanılan bir komut satırı yardımcı programı olarak tanımlanabilir. Ayrıca açık portları listelemek için de kullanılabilir. Bu araç, belirli bir bağlantı noktası veya çeşitli bağlantı noktaları üzerinde testler uygulayabilir.

Bağlantı noktasını taramak için aşağıdaki netcat komutu kullanılır. 1-1000. Varsayılan olarak, taramayı TCP protokolü üzerinden uygulayacaktır:

 $ nc -z -v localhost 1-1000 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Ayrıca belirli bağlantı noktalarının tam listesine genişletilebilir:

 $ nc -z -v localhost 1-65535 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Gelin hızlıca bu bayrakların analizine geçelim.

1. nereden: Herhangi bir veri aktarmadan, yalnızca açık portların taranması için netcat komutunu bilgilendirir.

2. içinde: Ayrıntılı modda çalışması için netcat komutunu bilgilendirir.

dize boş

Sonucu grep yardımıyla bir terim için filtreleyebiliriz 'başarılı' bu listeden yalnızca açık bağlantı noktalarını almak için.

 $ nc -z -v 127.0.0.1 20-80 | grep succeeded 

Linux'ta açık bağlantı noktaları nasıl kontrol edilir

Taramayı UDP protokolü üzerinden uygulamak istiyorsak, şunları dahil edebiliriz: '-içinde' bayrak.

 $ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded