netstat (Network Statistics) untuk monitoring jaringan

By | April 2, 2025
269 Views

netstat (Network Statistics) adalah alat bawaan sistem operasi berbasis Unix dan Windows yang digunakan untuk menampilkan informasi tentang koneksi jaringan, port yang terbuka, dan statistik lalu lintas jaringan.

Saya biasa menggunakan netstat untuk monitoring VPS untuk mengetahui port dan IP mana saja yang sedang terhubung dan terbuka untuk memastikan tidak ada penyusup yang masuk. Maklum sekarang IP yang saya gunakan tidak sengaja ter publish di blog ini sehingga mereka melakukan brute force Alamat IP yang Brute Force SSH Server selain netstat untuk mempertahan diri juga saya install fail2ban Fail2Ban untuk melindungi Brute Force Login SSH

Netstat biasanya belum terinstal di Ubuntu versi terbaru (misalnya Ubuntu 20.04 ke atas). netstat adalah perintah untuk menampilkan informasi tentang koneksi jaringan, port yang terbuka, dan statistik lalu lintas di sistem Linux.

Untuk mengaktifkan kembali perintah netstat, instal paket net-tools dengan perintah berikut:

sudo apt update && sudo apt install net-tools -y

Contoh Perintah netstat dan Fungsinya

Menampilkan Semua Port yang Terbuka

netstat -tuln

  • -t → Hanya menampilkan koneksi TCP

  • -u → Hanya menampilkan koneksi UDP

  • -l → Menampilkan port yang sedang listening

  • -n → Menampilkan alamat IP dalam bentuk angka (tanpa resolusi DNS)

Gunanya: Melihat port yang sedang aktif dan terbuka di server.

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:7400            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:587           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8082            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3001            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:3009            0.0.0.0:*               LISTEN     
tcp6       0      0 :::21                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::7400                 :::*                    LISTEN     
tcp6       0      0 :::8090                 :::*                    LISTEN     
tcp6       0      0 :::8081                 :::*                    LISTEN     
tcp6       0      0 :::8080                 :::*                    LISTEN     
tcp6       0      0 :::8082                 :::*                    LISTEN     
tcp6       0      0 :::8085                 :::*                    LISTEN     
tcp6       0      0 :::8084                 :::*                    LISTEN     
tcp6       0      0 :::3001                 :::*                    LISTEN     
tcp6       0      0 :::3009                 :::*                    LISTEN     
udp        0      0 0.0.0.0:54280           0.0.0.0:*                          
udp        0      0 127.0.0.53:53           0.0.0.0:*                          
udp        0      0 0.0.0.0:5353            0.0.0.0:*                          
udp6       0      0 :::46283                :::*                               
udp6       0      0 :::5353                 :::*

Kalian bisa melihat port pada sisi server banyak yang terbuka siap menerima request dari

  • 22
  • 53
  • 7400
  • 25
  • 587
  • 8090
  • 8081
  • 8080
  • 8082
  • 8085
  • 8084
  • 3001
  • 3009
See also  Alamat IP dan Vulnerable nya bagus untuk uji pentest

Keterangan lebih lanjut mengenai IP 0 0.0.0.0.0 dengan 0 ::: yaitu

Perbedaan antara 0 0.0.0.0:3009 dan 0 :::3009 dalam output netstat atau ss terletak pada versi protokol IP yang digunakan:

1. 0 0.0.0.0:3009 (IPv4)

  • 0.0.0.0 berarti layanan ini mendengarkan (LISTEN) pada semua antarmuka jaringan yang tersedia menggunakan IPv4.

  • Artinya, koneksi ke port 3009 bisa datang dari alamat IP mana saja selama menggunakan protokol IPv4.

  • Contoh koneksi yang diterima:

    • 192.168.1.100:3009

    • 10.0.0.2:3009

    • 127.0.0.1:3009 (localhost)

2. 0 :::3009 (IPv6)

  • :: adalah bentuk singkat dari 0:0:0:0:0:0:0:0, yang berarti layanan ini mendengarkan di semua antarmuka jaringan dengan IPv6.

  • Artinya, koneksi ke port 3009 dapat dilakukan menggunakan IPv6.

  • Contoh koneksi yang diterima:

    • fe80::1%lo0:3009

    • ::1:3009 (IPv6 localhost)

Menampilkan Koneksi yang Aktif di Sistem

netstat -antp

  • -a → Menampilkan semua koneksi (aktif dan listening)

  • -n → Menampilkan alamat IP tanpa resolusi DNS

  • -t → Hanya menampilkan koneksi TCP

  • -p → Menampilkan proses yang menggunakan koneksi

Gunanya: Melihat aplikasi atau layanan yang menggunakan koneksi jaringan.

dari port diatas, kita akan cek menggunakan perintah antp yang established dari mana saja IP client yang sedang terhubung

netstat -antp | grep ESTABLISHED

hasilnya

tcp        0      0 113.127.134.175:8081    28.124.95.170:57126     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35162       ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:38794       ESTABLISHED -                   
tcp        0      0 113.127.134.175:8080    28.124.95.170:57219     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35190       ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:59548     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35232       ESTABLISHED -                   
tcp        0      0 113.127.134.175:8090    104.152.52.188:43132    ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:56082     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35166       ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:56715     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:37768       ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35188       ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35196       ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:59463     ESTABLISHED -                   
tcp        0    324 113.127.134.175:22      28.124.95.170:51039     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:35222       ESTABLISHED -                   
tcp        0      0 113.127.134.175:8080    28.124.95.170:57244     ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:60032     ESTABLISHED -                   
tcp        0      0 113.127.134.175:8080    28.124.95.170:57214     ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      218.78.80.243:50322     ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:56023     ESTABLISHED -                   
tcp        0      0 113.127.134.175:8081    28.124.95.170:56022     ESTABLISHED -

dari data diatas IP client yang sedang terhubung ke server dengan IP yaitu

  • 28.124.95.170
  • 38.88.8.194
  • 104.152.52.188
  • 218.78.80.243

Mari kita pelajari Mengapa IP client menggunakan port yang berbeda?

tcp        0      0 113.127.134.175:22      38.88.8.194:35162       ESTABLISHED -                   
tcp        0      0 113.127.134.175:22      38.88.8.194:38794       ESTABLISHED -                   

Mengapa IP client menggunakan port yang berbeda?

  • 113.127.134.175:22 → Ini adalah server yang mendengarkan koneksi di port 22 (SSH).

  • 38.88.8.194:35162 dan 38.88.8.194:38794 → Ini adalah client, yang menggunakan dua port berbeda (35162 dan 38794) untuk melakukan koneksi ke server.

See also  Cara Setting Login SSH Tanpa Password

Port yang berbeda ini disebut ephemeral ports (port sementara) dan dipilih secara acak oleh sistem operasi client untuk setiap koneksi keluar.

Mengapa Client Menggunakan Port Berbeda?

  1. Setiap Koneksi TCP Memiliki Identitas Unik
    TCP menggunakan kombinasi (IP sumber, port sumber, IP tujuan, port tujuan) untuk mengidentifikasi setiap koneksi. Karena client dapat membuka lebih dari satu koneksi ke server, maka setiap koneksi membutuhkan port sumber yang unik.

  2. Port Ephemeral Dipilih Secara Dinamis

    • Ketika client menginisiasi koneksi ke server, sistem operasi memilih port sumber secara acak dari rentang ephemeral (biasanya antara 32768–60999 pada Linux, atau 49152–65535 pada Windows).

    • Ini dilakukan untuk menghindari bentrokan dengan port lain yang mungkin digunakan oleh aplikasi lain.

  3. Multiple Connections dari Client ke Server

    • Jika client membuka lebih dari satu koneksi SSH ke server, maka setiap koneksi akan menggunakan port yang berbeda.

    • Contoh kasus:

      • Client membuka dua sesi SSH ke server → dua koneksi dengan port sumber berbeda.

      • Client mengalami koneksi tidak stabil dan sistemnya secara otomatis mencoba reconnect, menyebabkan penggunaan port baru.

  4. Load Balancing dan NAT

    • Jika client berada di belakang NAT (Network Address Translation), router atau firewall bisa menggunakan port yang berbeda untuk setiap koneksi.

Kesimpulan

  • Port 22 di server tetap sama karena itu port layanan SSH.

  • Port pada client berubah karena dipilih secara dinamis oleh sistem operasi untuk membedakan sesi koneksi yang berbeda.

  • Jika ada banyak koneksi dari satu client ke server yang sama, mereka akan menggunakan port sumber yang berbeda untuk menghindari konflik dan memastikan setiap koneksi dapat dikenali secara unik.

Menampilkan Koneksi yang Terhubung ke Server

netstat -an | grep ESTABLISHED

Gunanya: Menampilkan semua koneksi yang sedang aktif/terhubung ke server.

tcp        0      0 113.127.134.175:8080    28.124.95.170:56823     ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35162       ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:38794       ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35190       ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:59548     ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35232       ESTABLISHED
tcp        0      0 113.127.134.175:8090    104.152.52.188:43132    ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:56082     ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35166       ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:56715     ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:37768       ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35188       ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35196       ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:59463     ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:56830     ESTABLISHED
tcp        0      0 113.127.134.175:22      38.88.8.194:35222       ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:60032     ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:56023     ESTABLISHED
tcp        0      0 113.127.134.175:22      28.124.95.170:49910     ESTABLISHED
tcp        0      0 113.127.134.175:8081    28.124.95.170:56022     ESTABLISHED

 

Menampilkan Semua Koneksi dengan Nama Program

netstat -p

Gunanya: Menampilkan proses yang menggunakan koneksi (misalnya, apakah Apache atau MySQL yang memakai port tertentu).

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 ip-113-127-134-175.:ssh 36.88.8.193:35162       ESTABLISHED -                   
tcp        0      0 ip-113-127-134-175:8082 154.84.59.108:53673     FIN_WAIT2   -                   
tcp        0      0 ip-113-127-134-175.:ssh 36.88.8.193:38794       ESTABLISHED -                   
tcp        0      0 ip-170-134-127:http-alt 28.124.95.170::57219     ESTABLISHED -                   
tcp        0      0 ip-113-127-134-175.:ssh 36.88.8.193:35190       ESTABLISHED -                   
tcp        0      0 ip-113-127-134-175:tproxy 28.124.95.170::59548     ESTABLISHED -                   
tcp        0      0 ip-113-127-134-175:8082 154.84.59.108:53681     FIN_WAIT2   -     

mari kita pelajari

tcp 0 0 ip-113-127-134-175.:ssh 36.88.8.193:35162 ESTABLISHED - 
tcp 0 0 ip-113-127-134-175:8082 154.84.59.108:53673 FIN_WAIT2 -

pada baris pertama

See also  Install Metasploit di Ubuntu dan Modul Brute Force

tcp 0 0 ip-113-127-134-175.:ssh 36.88.8.193:35162 ESTABLISHED -

Interpretasi:

  • tcp → Koneksi menggunakan protokol TCP.

  • 0 0 → Tidak ada data yang tertunda untuk dikirim atau diterima.

  • ip-113-127-134-175.:ssh → Server dengan IP 113.127.134.175 menerima koneksi di port 22 (SSH).

  • 36.88.8.193:35162 → Client dengan IP 36.88.8.193 sedang terhubung menggunakan port sumber 35162.

  • ESTABLISHED → Koneksi aktif dan berjalan.

Kesimpulan:

  • IP 36.88.8.193 sedang melakukan koneksi SSH ke server 113.127.134.175.

  • Pengguna mungkin sedang mengakses server secara remote menggunakan SSH.

  • Jika koneksi ini mencurigakan, Anda bisa memeriksa dengan:

who
last -i
netstat -tnp | grep :22

ternyata saya cek, ada yang lagi bobol ssh server dengan IP dari 67.205.173.62

tcp        0      0 113.127.134.175:22      67.205.173.62:57824     TIME_WAIT   -

pada baris kedua yaitu

tcp 0 0 ip-113-127-134-175:8082 154.84.59.108:53673 FIN_WAIT2 -

Interpretasi:

  • tcp → Koneksi menggunakan TCP.

  • 0 0 → Tidak ada data yang tertunda untuk dikirim atau diterima.

  • ip-113-127-134-175:8082 → Server dengan IP 113.127.134.175 menerima koneksi di port 8082 (kemungkinan aplikasi web, proxy, atau API).

  • 154.84.59.108:53673 → Client dengan IP 154.84.59.108 mengakses server menggunakan port sumber 53673.

  • FIN_WAIT2 → Server sudah mengirim FIN (permintaan untuk menutup koneksi), tetapi masih menunggu FIN dari client.

Kesimpulan:

  • IP 154.84.59.108 sebelumnya terhubung ke port 8082 di server, lalu memutus koneksi tetapi belum sepenuhnya ditutup.

  • Status FIN_WAIT2 menunjukkan bahwa server sudah menutup koneksi, tapi client belum mengirim respons FINterakhir.

  • Jika koneksi dalam FIN_WAIT2 terlalu lama, bisa jadi client terputus tiba-tiba atau ada masalah dengan jaringan.

  • Jika ada banyak koneksi dalam FIN_WAIT2, Anda bisa mengurangi timeout dengan:

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

Jika koneksi di FIN_WAIT2 terlalu lama, bisa ada masalah di sisi client atau server. Jika perlu, Anda bisa memaksa menutupnya dengan:

netstat -tnp | grep FIN_WAIT2
kill -9 <PID>

Atau jika ingin memblokir IP yang mencurigakan:

iptables -A INPUT -s 154.84.59.108 -j DROP

Menampilkan Statistik Jaringan

netstat -s

Gunanya: Melihat statistik jaringan, seperti jumlah paket yang dikirim/dilakukan retransmisi.

Menampilkan Rute (Routing Table)

netstat -r

Gunanya: Menampilkan tabel rute jaringan di server (setara dengan route -n).