Bagaimana Menyenaraikan Port Terbuka di Linux?

How List Open Ports Linux



Dalam rangkaian, port adalah ciri menarik. Ini adalah cara untuk lalu lintas rangkaian untuk mengenal pasti aplikasi atau perkhidmatan destinasi. Setiap proses / perkhidmatan mendapat port yang unik. Port akan selalu dikaitkan dengan alamat IP host bersama dengan protokol.

Ini adalah metafora kegemaran saya untuk menggambarkan apa itu port. Bayangkan sebuah kapal sarat dengan muatan, yang akan bergerak ke negeri yang jauh. Maklumat apa yang diperlukan untuk sampai ke destinasi dengan betul? Demi kesederhanaan, katakan ia memerlukan negara (alamat IP) dan pelabuhan kapal akan berlabuh.







Dalam panduan ini, periksa cara menyenaraikan port terbuka di Linux.



Pelabuhan di Linux

Pelabuhan bertindak sebagai titik akhir komunikasi. Nombor 16-bit (0 hingga 65535 dalam perpuluhan). Walaupun jaraknya besar, untuk kemudahan penggunaan, port dikategorikan menjadi tiga kategori. Setiap kategori dilabelkan sebagai julat nilai port:



  • 0 hingga 1023: Ini adalah port terkenal, juga dikenali sebagai port System, yang disediakan untuk proses sistem yang menawarkan pelbagai jenis perkhidmatan rangkaian. Untuk mengikat dengan port yang terkenal, proses mesti mempunyai hak istimewa pengguna.
  • 1024 hingga 49151: Ini adalah port Berdaftar, juga dikenal sebagai port Pengguna, yang ditentukan oleh IANA untuk perkhidmatan tertentu. Atas permintaan, proses mungkin mempunyai akses kepada mereka. Bagi kebanyakan sistem, ia tidak memerlukan hak istimewa pengguna untuk menggunakan port ini.
  • 49152 hingga 65535: Ini adalah port Dynamic, juga dikenali sebagai port peribadi. Pelabuhan ini tidak dapat didaftarkan dengan IANA. Pelabuhan ini terbuka untuk digunakan untuk perkhidmatan peribadi atau disesuaikan dan mungkin juga secara automatik dialokasikan sebagai port sementara (port jangka pendek yang digunakan oleh IP).

Di Linux, terdapat pelbagai cara untuk memeriksa port terbuka. Secara lalai, port mana pun akan tetap ditutup melainkan aplikasi menggunakannya. Sekiranya port terbuka, maka ia mesti diberikan kepada perkhidmatan / proses.





Senaraikan Port Terbuka

Lebih mudah untuk mengenal pasti port mana yang digunakan daripada port yang terbuka. Itulah sebabnya bahagian berikut akan menampilkan kaedah untuk menyenaraikan semua port yang sedang digunakan. Di Linux, terdapat banyak alat yang tersedia untuk tugas tersebut. Sebilangan besar daripadanya terdapat dalam distro Linux.

Mempelajari port mana yang sedang dibuka boleh berguna dalam pelbagai senario. Ada kemungkinan untuk mengkonfigurasi port khusus untuk aplikasi tertentu. Port terbuka juga merupakan petunjuk kuat untuk menceroboh rangkaian.



Kaedah berikut ditunjukkan pada Ubuntu 20.04.1 LTS.

Senaraikan protokol dan port terbuka dari / etc / services

Fail / etc / services mengandungi maklumat mengenai perkhidmatan yang sedang berjalan. Ini adalah fail besar, jadi bersedia untuk merasa terbeban.

$kucing /dan lain-lain/perkhidmatan| kurang

Senaraikan port terbuka menggunakan netstat

Alat netstat adalah utiliti untuk menampilkan sambungan rangkaian untuk TCP, jadual routing, dan pelbagai antara muka rangkaian. Ia juga menawarkan statistik protokol rangkaian. Dengan menggunakan netstat, kita dapat menyenaraikan semua port terbuka sistem.

Jalankan arahan netstat berikut:

$netstat -atu

Mari kita perincikan dengan cepat semua bendera yang kami gunakan dalam arahan ini.

  • ke : Memberitahu netstat menunjukkan semua soket
  • t : Memberitahu netstat untuk menyenaraikan port TCP
  • awak : Memberitahu netstat untuk menyenaraikan port UDP

Berikut adalah satu lagi variasi arahan netstat:

$netstat -lntu

Terdapat dua bendera baru yang digunakan dalam perintah. Apa maksudnya?

  • yang : Memberitahu netstat untuk mencetak hanya soket pendengaran
  • n : Memberitahu netstat untuk menunjukkan nombor port

Untuk memaparkan PID proses yang menggunakan port, gunakan bendera -p:

$netstat -Pengambilan

Senaraikan port terbuka menggunakan ss

Alat ss adalah utiliti untuk menyiasat soket. Penggunaannya serupa dengan netstat.

Untuk menyenaraikan port terbuka, jalankan arahan ss berikut:

$ss-lntu

Bendera serupa dengan netstat. Fungsi yang mereka gambarkan juga serupa.

  • yang : Memberitahu ss untuk memaparkan soket mendengar
  • n : Memberitahu ss untuk tidak cuba menyelesaikan nama perkhidmatan
  • t : Memberitahu ss untuk memaparkan soket TCP
  • awak : Memberitahu ss untuk memaparkan soket UDP

Senaraikan port terbuka menggunakan lsof

Perintah lsof adalah menyenaraikan fail yang terbuka. Namun, itu juga dapat digunakan untuk menampilkan port terbuka.

Jalankan arahan lsof berikut:

$lsof-i

Untuk mendapatkan port terbuka protokol tertentu (TCP, UDP, dll.) Kemudian tentukannya setelah bendera -i, gunakan:

$lsof-i <protokol>

Senaraikan port terbuka menggunakan nmap

Alat nmap sangat berguna untuk penerokaan rangkaian dan pengimbasan keselamatan / port. Ia dapat melaporkan semua port terbuka dalam sistem.

Untuk menyenaraikan port TCP yang terbuka, jalankan perintah nmap berikut. Di sini, alamat IP adalah komputer hos:

$sudo nmap -sT -p-localhost

Di sini, terdapat dua bahagian dari argumen perintah.

  • -sT : Bahagian ini memberitahu nmap untuk mengimbas port TCP.
  • -p- : Ini memberitahu nmap untuk mengimbas semua port 65535. Sekiranya tidak digunakan, nmap akan mengimbas hanya 1000 port secara lalai.

Sekiranya anda perlu menyenaraikan port UDP yang terbuka, jalankan perintah nmap berikut:

$sudo nmap -sesuai -p-localhost

Untuk mendapatkan port TCP dan UDP terbuka, gunakan arahan berikut:

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

Senaraikan port terbuka menggunakan netcat

Alat netcat adalah utiliti baris perintah untuk membaca dan menulis data merentasi sambungan rangkaian melalui protokol TCP dan UDP. Alat ini juga dapat digunakan untuk menyenaraikan port terbuka. Ia dapat melakukan ujian pada port tertentu atau pelbagai port.

Perintah netcat berikut akan mengimbas port dari 1 hingga 1000. Perintah netcat akan melakukan imbasan pada protokol TCP secara lalai:

$nc-Dengan -vlocalhost1-1000

Ia juga dapat diperluas ke seluruh senarai kemungkinan port:

$nc-Dengan -vlocalhost1-65535

Mari kita pecahkan bendera dengan cepat.

  • Dengan : Memberitahu netcat untuk mengimbas hanya port terbuka tanpa menghantar data
  • v : Memberitahu netcat berjalan dalam mod verbose

Untuk mendapatkan hanya port terbuka dari senarai ini, tapis output dengan grep untuk istilah berjaya.

$nc-Dengan -vlocalhost0-65535 2> &1 | cengkamanberjaya

Sekiranya anda ingin melakukan imbasan pada protokol UDP, kemudian tambahkan bendera -u.

$nc-Dengan -v -ulocalhost0-65535 2> &1 | cengkamanberjaya

Pemikiran Akhir

Seperti yang ditunjukkan, ada banyak cara untuk mencari port terbuka di Linux. Saya cadangkan untuk mencuba semua kaedah sebelum anda memutuskan kaedah mana yang harus dikuasai. Sekiranya anda menggunakan alat tertentu seperti netcat atau nmap secara berkala, maka menguasai kaedah yang berkaitan akan menjadi yang paling bermanfaat.

Selamat pengkomputeran!