Konsep LISTEN dalam network service

Layanan jaringan ( network service ) seperti web, database RDBMS, ssh, dan lain sebagainya, menganut mazhab konsep client-server. Client artinya peminta / pengguna layanan, dan server adalah penyedia layanan. Antara client dan server memiliki kesepakatan melalui sebuah jalur virtual yang dinamakan protokol. Protokol tersebut dilambangkan dengan angka port. Angka port yang tersedia adalah 1-65535. Beberapa jalur populer / penting telah diregisterkan memiliki port default seperti :

Web / HTTP port 80
SSH port 22
telnet port 23
FTP port 21
https port 443

dan lain sebagainya.

 

Server adalah penyedia layanan tersebut, melakukan pembukaan port dengan menggunakan program-program service. Seperti misal :

web/http apache webserver
SSH SSHD / OpenSSH-server
Telnet Telnetd
FTP ftpd / vsftpd

dan lain sebagainya

Program tersebut membuat operating system sanggup menerima request ( permintaan dari sisi client ) dengan metode LISTEN. Mendengarkan. Server akan mendengarkan pada port layanan yang dimilikinya. Misal: Web server akan melakukan LISTEN request pada port 80. Saat webserver menerima request, maka terjadilah kesepakatan transaksi lebih dulu (synchronous dan acknowledge). Setelah kesepakatan tercapai, si client akan segera dilayani. Saat itulah terjadi status connection ESTABLISHED. Si clientpun akan mendapatkan data sesuai dengan yang dia minta.

Dalam Linux, untuk memahami status network yang terjadi dapat menggunakan perintah netstat, diikuti dengan opsi-opsi pelengkapnya:

Hasilnya adalah seperti berikut :

listen-blog

Idealnya, dalam sebuah server tidak diperkenankan satu port yang sama muncul lebih dari satu. Jika terjadi dua port yang sama dalam satu server, maka yang akan terjadi adalah salah satu service pada port itu akan mati. Misal: terdapat dua apache webserver dalam satu server, dengan port yang sama, maka salah satu apache akan mati. Oleh karena itu, kadang karena suatu kebutuhan, dibuatlah dua apache, dengan beda port, dengan melakukan pengubahan port salah satunya. Port yang tidak default akan dipanggil dengan tambahan port pada nama domainnya. Seperti : http://demo.bimosaurus.com:8181/

Sebenarnya, tetap saja dalam satu system diperkenankan terdapat lebih dari satu port yang sama, namun diharapkan tetap menggunakan IP Address LISTEN yang berbeda. Dengan menggunakan IP Address listen yang berbeda, maka kedua program service akan tetap stabil tanpa mengganggu satu dengan yang lain. Contoh penggunaan port yang sama dalam satu server adalah seperti penggunaan Nginx sebagai loadbalancer yang bekerja pada port 80, dengan apache webserver yang bekerja pada port 80 juga. Kalangan webmaster sering melakukan kombinasi antara Nginx dan Apache dalam proses operasional web. Apache dikenal lengkap modul operasional webnya, digunakan untuk mengoperasikan bahasa server side. Sedangkan Nginx dipasang di depan apache untuk melayani request pertama dari client. Misal, suatu host memiliki IP Address 180.251.135.208 maka Nginx akan disetting LISTEN pada 180.251.135.208 port 80 dan Apache pada 127.0.0.1 port 80. Jadi apabila nginx tidak aktif, maka web tidak dapat diakses dari sisi IP luar.

Hal itu juga sering terlihat dalam operasional mysql database server ataupun postgresql. Saat mysql disetting pada my.cnf :

Maka port mysql tersebut tidak akan bisa discan dari sisi luar, meski dilakukan dari komputer itu sendiri. Misal dengan perintah :

Tetap akan memunculkan pesan : closed.

Untuk melihat service apa saja yang menyala dengan port dan ip listnnya, bisa dilakukan dengan perintah ini :

Hasilnya akan seperti berikut:
listen-blog1

Semua yang berlisten pada 0.0.0.0 berarti dapat diakses dari seluruh network yang terpasang pada server tersebut.

Bagaimana dengan Windows?
Maaf saya tak begitu faham dengan windows, namun dengan perintah :

Seluruh status service dan request dapat dilihat, hanya saja saya tidak tahu bagaimana cara memfilter LISTEN nya. Karena ‘grep’ sepertinya tidak ada dalam perintah command prompt windows.

2 thoughts on “Konsep LISTEN dalam network service

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">