Mengirim dan menerima paket UDP melalui Linux CLI | UNIX LINUX EXPLORE
Edit

Mengirim dan menerima paket UDP melalui Linux CLI

Anda pasti sudah mengetahui ada dua protokol internet yang berada dilapisan transport utama seperti TCP dan UDP. Untuk informasi lebih lanjut tentang TCP dan UDP, anda dapat membaca aartikel kami sebelumnya yang membahas lapisan internet. Meskipun pengiriman paket UDP/TCP dapat dikerjakan denan skrip perl/python, namun saya ingin mencoba mengirim pesan UDP dari baris perintah untuk menguji beberapa kode dengan cepat.

PAda sistem Linux, ada beberapa alat yang berguna untuk menguji apakah port UDP terbuka untuk koneksi atau tidak.  Cara yang efektif untuk mencapainya adalah dengan memeriksa port atau memindai port. Teknik pemindaian port menentukan port mana pada sistem yang terbuka dan mungkin menerima atau mengirimkan data. Kita dapat memindai status port pada sistem yang ditargetkan menggunakan salah satu alat ini.

Dalam artikel ini, kita akan mempelajari cara mengirim dan menerima paket UDP melalui antarmuka baris perintah (CLI) Linux. Tak hanya itu, kami juga akan menjelaskan, bagaimana ana dapat menggunakan beberapa utility Linux untuk menguji konektivitas port UDP dan mengirim paket UDP.



1. Menggunakan nmap

Network Mapper (disingkat menjadi nmap) adalah alat eksplorasi jaringan. Bergantung pada opsinya, nmap mengeluarkan daftar target yang dipindai dengan beberapa informasi tambahan. Faktanya, kita dapat menggunakan nmap untuk memeriksa status port UDP dengan menjalankan nmap melalui alamat IP target.

nmap command
$ nmap -sU -v 172.16.38.137

Starting Nmap 6.47 ( http://nmap.org ) at 2022-07-22 22:21 IST
Initiating Parallel DNS resolution of 1 host. at 22:21
Completed Parallel DNS resolution of 1 host. at 22:21, 0.01s elapsed
Initiating UDP Scan at 22:21
Scanning 172.16.38.137 [1000 ports]
                         ...                         
UDP Scan Timing: About 68.43% done; ETC: 22:23 (0:00:54 remaining)
Completed UDP Scan at 22:24, 189.80s elapsed (1000 total ports)
Nmap scan report for 172.16.38.137
Host is up (0.00011s latency).
Not shown: 997 closed ports
PORT      STATE          SERVICE
123/udp   open           ntp
631/udp   open|filtered  ipp
5353/udp  open|filtered  zeroconf

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 190.12 seconds
           Raw packets sent: 1075 (30.959KB) | Rcvd: 2145 (91.614KB) 
Opsi -sU pada perintah di atas digunakan untuk menentukan pemindaian UDP. Selain itu, kami menambahkan opsi -v untuk verbositas. Dari hasil pemindaian, kami melihat bahwa port UDP 123, 631, dan 5353 terbuka. Lebih jauh, dua di antaranya juga difilter.

Pemindaian port UDP menggunakan nmap bekerja dengan mengirimkan paket UDP yang sebagian besar tidak memiliki muatan ke setiap port pada sistem yang ditargetkan. Sebagai hasil, tabel mencantumkan nomor port dengan protokol, status port, dan nama layanan.

Port dapat memiliki status yang berbeda:
  • open – aplikasi pada mesin target mendengarkan koneksi pada port ini.
  • closed – tidak ada aplikasi yang mendengarkan pada port ini.
  • filtered – port merespons seolah-olah berada di balik firewall atau penghalang jaringan lainnya.
  • unfiltered – port responsif, tetapi nmap tidak dapat mengklasifikasikannya
Selain itu, terkadang outputnya merupakan kombinasi dari dua status seperti terbuka|terfilter atau tertutup|terfilter. Ini terjadi ketika nmap tidak dapat menentukan status mana dari kedua status tersebut yang dimiliki port.


2. Netcat Command

Netcat adalah utilitas jaringan unggulan yang membaca dan menulis data melalui koneksi jaringan, menggunakan protokol TCP/IP. Dirancang untuk menjadi alat "back-end" yang andal, Netcat dapat digunakan langsung dengan program dan skrip lain untuk mengirim file dari klien ke server dan sebaliknya. Pada saat yang sama, ini adalah alat penelusuran dan debugging jaringan yang kaya fitur yang dapat menentukan parameter jaringan sekaligus membuat koneksi ke host jarak jauh melalui terowongan.

Meskipun Netcat dapat melakukan banyak hal, tujuan utama dan fungsi yang paling banyak digunakan adalah:
  • Membuat soket awal untuk membuat koneksi dari server ke klien.
  • Setelah terhubung, Netcat akan secara otomatis membuat soket kedua untuk mengirimkan file dari server ke klien dan sebaliknya.
Untuk memeriksa konektivitas UDP, kita dapat menggunakan netcat dengan IP dan port yang ditargetkan.

netcat command
$ nc -vz -u 8.8.8.8 443
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 8.8.8.8:443.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds.
Sekarang coba anda perhatikan gambar di bawah ini.


Pada gambar di atas, terdapat komputer server dan client dengan alamt IP sebagai berikut:
Server: 192.168.1.102
client: 192.168.1.6

a. Jalankan Server

Untuk memulai server menggunakan perintah nc gunakan perintah di bawah ini di terminal server.


$ nc –u –l 9999
Perintah di atas tidak memiliki keluaran untuk ditampilkan saat ini. Perintah Ini hanya digunakan untuk mendengarkan pada port 9999.

b. Jalankan Client

Agar komputer client dapat terhubung ke komputer server, jalankan perintah "nc" di komputer client.

Hubungkan client ke server
$ nc -u 192.168.1.102 9999
Sekarang komputer client telah terhubung ke komputer server. Jadi kita membutuhkan alamat IP server dan nomor port server agar keduanya dapat saling berkomunikasi.

c. Periksa koneksi server - client

Setelah komputer server dan client terhubung, anda juga dapat memeriksa koneksi yang terjadi diantara kedua komputer tersebut.

Periksa koneksi
$ netstat | grep 9999

d. Mengirim paket UDP

setelah anda berhasil menghubungkan server dan client, kita coba mengirimkan paket UDP, yaitu suatu pesan singkat untuk menguji apakah paket tersebut terkirim. Untuk mencobanya anda jalankan perintah di bawah ini di komputer client.


$ echo 'hello world' | nc -u 192.168.1.102 9999
Di bawah ini adalah contoh baris perintah untuk mengirim paket UDP yang bisa anda coba.


$ echo -e "all" | nc -vvuw 1 localhost 9000
Connection to localhost 9000 port [udp/cslistener] succeeded!
$ echo -e "the" | nc -vvuw 1 localhost 9000
Connection to localhost 9000 port [udp/cslistener] succeeded!
$ echo -e "udp" | nc -vvuw 1 localhost 9000
Connection to localhost 9000 port [udp/cslistener] succeeded!
$ echo -e "packets" | nc -vvuw 1 localhost 9000
Connection to localhost 9000 port [udp/cslistener] succeeded!
Netcat merupakan alat penting yang harus dikuasai oleh administrator jaringan dan sistem karena memiliki banyak fitur pemecahan masalah koneksi dan kegunaan skrip. Dari latihan di atas, kita telah mempelajari mekanisme untuk mengirim beberapa pesan menggunakan protokol UDP. Dan metode terbaik adalah menggunakan baris perintah di Linux.