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:
netstat -tapn
Hasilnya adalah seperti berikut :
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 :
bind-address = 127.0.0.1
Maka port mysql tersebut tidak akan bisa discan dari sisi luar, meski dilakukan dari komputer itu sendiri. Misal dengan perintah :
nmap 180.251.135.208 -p3306
Tetap akan memunculkan pesan : closed.
Untuk melihat service apa saja yang menyala dengan port dan ip listnnya, bisa dilakukan dengan perintah ini :
netstat -tapn|grep LISTEN
Hasilnya akan seperti berikut:
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 :
netstat -a
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.
Pak Bimo apa kabar.. saya mantan muritnya di Fasnet.. Semoga tetap semangat menulis pak..