GNU/Linux >> Belajar Linux >  >> Linux

Cara Memeriksa Port Terbuka di Linux dengan netstat, lsof, dan nmap

Artikel ini menjelaskan cara memeriksa port yang terbuka menggunakan perintah netstat, lsof, dan nmap untuk mengetahui layanan mana yang mendengarkan pada port mana.

Saat memecahkan masalah konektivitas jaringan atau masalah khusus aplikasi, salah satu hal pertama yang harus diperiksa adalah port apa yang sebenarnya digunakan pada sistem Anda dan aplikasi mana yang mendengarkan pada port tertentu.

Port jaringan diidentifikasi berdasarkan nomornya, alamat IP terkait, dan jenis protokol komunikasi, seperti TCP atau UDP. Di atas segalanya, port terbuka adalah port jaringan tempat aplikasi atau proses mendengarkan, bertindak sebagai titik akhir komunikasi.

Setiap port mendengarkan dapat dibuka atau ditutup (difilter) menggunakan firewall. Secara umum, port terbuka adalah port jaringan yang menerima paket masuk dari lokasi yang jauh.

Periksa Port Terbuka dengan netstat

netstat (statistik jaringan ) adalah alat baris perintah untuk memantau koneksi jaringan baik masuk dan keluar serta melihat tabel perutean, statistik antarmuka, dll. Alat ini sangat penting dan sangat berguna bagi administrator jaringan Linux serta administrator sistem untuk memantau dan memecahkan masalah jaringan mereka -masalah terkait dan menentukan kinerja lalu lintas jaringan.

Untuk membuat daftar semua port TCP atau UDP yang sedang didengarkan, termasuk layanan yang menggunakan port dan status soket, gunakan perintah berikut:

$ sudo netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN      24919/amavisd    
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      967/master   
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      800/tinyproxy       
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      967/master          
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      844/pure-ftpd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      768/sshd            
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      967/master          
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      1001/dovecot  
tcp6       0      0 :::3306                 :::*                    LISTEN      823/mysqld       
tcp6       0      0 ::1:783                 :::*                    LISTEN      24911/spamd.pid -d  
tcp6       0      0 :::80                   :::*                    LISTEN      781/httpd         
tcp6       0      0 :::21                   :::*                    LISTEN      844/pure-ftpd 
tcp6       0      0 :::22                   :::*                    LISTEN      768/sshd            
tcp6       0      0 :::25                   :::*                    LISTEN      967/master        
tcp6       0      0 :::993                  :::*                    LISTEN      1001/dovecot        
tcp6       0      0 :::995                  :::*                    LISTEN      1001/dovecot        
udp        0      0 0.0.0.0:47967           0.0.0.0:*                           460/avahi-daemon: r 
udp        0      0 127.0.0.1:123           0.0.0.0:*                           472/ntpd            
udp        0      0 0.0.0.0:123             0.0.0.0:*                           472/ntpd     
udp6       0      0 :::123                  :::*                                472/ntpd 

Opsi yang digunakan dalam perintah ini memiliki arti sebagai berikut:

  • -t :Menampilkan port TCP.
  • -u :Menampilkan port UDP.
  • -l :Hanya tampilkan port yang mendengarkan.
  • -n :Menampilkan alamat numerik alih-alih menyelesaikan host.
  • -p :Menampilkan PID dan nama proses listener. Informasi ini hanya ditampilkan jika Anda menjalankan perintah sebagai pengguna root atau sudo.

Kolom penting dalam kasus kami adalah:

  • Proto – Protokol yang digunakan oleh soket.
  • Alamat Lokal – Alamat IP dan nomor port yang didengarkan oleh proses.
  • PID/Nama program – PID dan nama proses.

Selain itu, jika Anda ingin memfilter hasilnya, gunakan grep memerintah. Misalnya, untuk menemukan proses apa yang mendengarkan pada port TCP 22 Anda akan mengetik:

$ sudo netstat -tulnp | grep :22
tcp     0      0 0.0.0.0:22        0.0.0.0:*         LISTEN      768/sshd            
tcp6    0      0 :::22             :::*              LISTEN      768/sshd

Jika output kosong berarti tidak ada yang mendengarkan di port.

Untuk informasi selengkapnya tentang netstat perintah di Linux, lihat halaman manualnya.

Periksa Port Terbuka dengan lsof

lsof artinya 'Buka Daftar File' digunakan untuk mengetahui file mana yang dibuka oleh proses mana. Di Linux, semuanya adalah file. Anda dapat menganggap soket sebagai file yang menulis ke jaringan.

Untuk mendapatkan daftar semua port TCP yang mendengarkan dengan lsof, ketik:

$ sudo lsof -nP -iTCP -sTCP:LISTEN
COMMAND     PID      USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
sshd        768      root    3u  IPv4    16112      0t0  TCP *:22 (LISTEN)
sshd        768      root    4u  IPv6    16114      0t0  TCP *:22 (LISTEN)
httpd       781      root    4u  IPv6    16328      0t0  TCP *:80 (LISTEN)
httpd       781      root    6u  IPv6    16336      0t0  TCP *:443 (LISTEN)
tinyproxy   800 tinyproxy    0u  IPv4    16750      0t0  TCP *:8080 (LISTEN)
tinyproxy   805 tinyproxy    0u  IPv4    16750      0t0  TCP *:8080 (LISTEN)
mysqld      823     mysql   20u  IPv6    17479      0t0  TCP *:3306 (LISTEN)
pure-ftpd   844      root    4u  IPv4    16289      0t0  TCP *:21 (LISTEN)
pure-ftpd   844      root    5u  IPv6    16290      0t0  TCP *:21 (LISTEN)
master      967      root   13u  IPv4    17225      0t0  TCP *:25 (LISTEN)
master      967      root  103u  IPv4    17319      0t0  TCP 127.0.0.1:10025 (LISTEN)
dovecot    1001      root   24u  IPv4    18600      0t0  TCP *:995 (LISTEN)
dovecot    1001      root   37u  IPv6    18623      0t0  TCP *:993 (LISTEN)
httpd     24344    apache    4u  IPv6    16328      0t0  TCP *:80 (LISTEN)
httpd     24344    apache    6u  IPv6    16336      0t0  TCP *:443 (LISTEN)
/usr/bin/ 24911      root    5u  IPv4 25208447      0t0  TCP 127.0.0.1:783 (LISTEN)
/usr/bin/ 24911      root    6u  IPv6 25208449      0t0  TCP [::1]:783 (LISTEN)
spamd     24913      root    5u  IPv4 25208447      0t0  TCP 127.0.0.1:783 (LISTEN)
spamd     24913      root    6u  IPv6 25208449      0t0  TCP [::1]:783 (LISTEN)
/usr/sbin 24919    amavis    5u  IPv4 25208583      0t0  TCP 127.0.0.1:10024 (LISTEN)
/usr/sbin 24919    amavis    6u  IPv6 25208584      0t0  TCP [::1]:10024 (LISTEN)
smtpd     28403   postfix    6u  IPv4    17225      0t0  TCP *:25 (LISTEN)
smtpd     28403   postfix    7u  IPv6    17226      0t0  TCP *:25 (LISTEN)

Opsi yang digunakan adalah sebagai berikut:

  • -n :Jangan mengubah nomor port menjadi nama port.
  • -P :Jangan menyelesaikan nama host, tampilkan alamat numerik.
  • -iTCP -sTCP:LISTEN :Hanya tampilkan file jaringan dengan status TCP DENGARKAN.

Untuk menemukan proses apa yang mendengarkan pada port tertentu, misalnya, port 3306 Anda akan menggunakan:

$ sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
COMMAND PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  823 mysql   20u  IPv6  17479      0t0  TCP *:3306 (LISTEN)

Output menunjukkan bahwa server MySQL menggunakan port 3306.

Untuk informasi selengkapnya tentang lsof perintah di Linux, lihat halaman manualnya.

Periksa Port Terbuka dengan nmap

nmap , atau Pemeta Jaringan , adalah alat baris perintah Linux sumber terbuka untuk eksplorasi jaringan dan audit keamanan. Dengan nmap, administrator server dapat dengan cepat mengungkapkan host dan layanan, menelusuri masalah keamanan, dan memindai port yang terbuka.

nmap perintah dapat digunakan untuk memeriksa satu port atau serangkaian port terbuka.

Berikut cara memindai port 80 pada sistem target:

$ sudo nmap -p 80 192.168.0.1
Nmap scan report for 192.168.0.1
Host is up (0.000073s latency).
PORT   STATE SERVICE
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds

Pindai port 1 hingga 200 pada sistem target:

$ sudo nmap -p 1-200 192.168.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2020-08-21 16:42 EEST
Nmap scan report for 192.168.0.1
Host is up (0.0000080s latency).
Not shown: 196 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
25/tcp open  smtp
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 1.45 seconds

Pindai (Cepat) port yang paling umum:

$ sudo nmap -F 192.168.0.1
Starting Nmap 6.40 ( http://nmap.org ) at 2020-08-21 16:44 EEST
Nmap scan report for 192.168.0.1
Host is up (0.000014s latency).
Not shown: 89 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
443/tcp  open  https
465/tcp  open  smtps
587/tcp  open  submission
993/tcp  open  imaps
995/tcp  open  pop3s
3306/tcp open  mysql
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 1.46 seconds

Intinya

Kesimpulannya, memeriksa port mana yang terbuka dan informasi apa yang dapat diperoleh dari layanan yang menerima koneksi pada port tersebut memberi Anda informasi yang Anda perlukan untuk mengunci server Anda.

Misalnya, setiap informasi asing yang bocor dari mesin Anda dapat digunakan oleh pengguna jahat untuk mencoba mengeksploitasi kerentanan yang diketahui atau mengembangkan kerentanan baru. Semakin sedikit yang mereka ketahui, semakin baik.


Linux
  1. Cara Memeriksa Mendengarkan / Membuka Port dengan Netstat di Linux

  2. Cara Memeriksa Port Terbuka pada Sistem Linux Jarak Jauh

  3. Periksa port mendengarkan dengan netstat

  1. Cara Memeriksa Port Terbuka di Linux dengan netstat, lsof, dan nmap

  2. Cara memeriksa Versi OS dan Linux

  3. Bagaimana cara memeriksa kata sandi dengan Linux?

  1. Cara Memindai &Menemukan Semua Port Terbuka dengan Nmap

  2. Cara memeriksa port yang terbuka di RHEL 8 / CentOS 8 Linux

  3. Cara menampilkan/memeriksa port terbuka di Ubuntu Linux