
Ketika berbicara tentang keamanan server, kebanyakan orang langsung terpikir soal firewall, SSH key, atau fail2ban. Namun, ada satu teknik keren dan cerdas yang masih jarang diketahui banyak orang: Port Knocking. Teknik ini bisa diibaratkan sebagai “ketukan rahasia” untuk membuka pintu server secara diam-diam. Bayangkan kamu ingin buka pintu rumah yang terkunci, tapi kuncinya bukan kunci biasa—melainkan urutan ketukan di pintu: ketuk tiga kali pelan, dua kali cepat, lalu sekali lagi pelan. Kalau ketukannya benar, pintunya terbuka.. Port knocking itu teknik keamanan jaringan yang bisa dibilang seperti “kode rahasia” untuk membuka akses ke port tertentu—biasanya SSH.
Port knocking bekerja dengan cara yang sama di jaringan:
-
Semua port pada server ditutup (misalnya port SSH
22
disembunyikan). -
Untuk “membuka” port SSH, kamu harus mengirimkan urutan koneksi ke port tertentu, misalnya:
knock 7000, 8000, 9000 (dalam urutan tertentu)
-
Kalau urutannya benar, server akan membuka port SSH sementara untuk IP pengirim.
-
Setelah selesai, port akan tertutup lagi secara otomatis.
Tujuannya?
Contents
-
Menyembunyikan port dari pemindaian (scan) bot.
-
Mencegah brute force karena portnya tidak terbuka sampai kamu “mengetuknya” dengan benar.
-
Cocok untuk melindungi SSH, RDP, atau port sensitif lain.
Cara kerjanya (secara teknis):
-
Server menjalankan daemon (contoh:
knockd
) yang memantau koneksi masuk. -
Klien kirim “knock” menggunakan tools seperti
knockd
,nmap
, atautelnet
. -
Jika urutan benar, firewall (misalnya iptables) membuka port.
-
Port terbuka untuk jangka waktu tertentu atau sampai sesi selesai.
Contoh alur sederhana:
-
Semua port ditutup. SSH tidak kelihatan (diblokir di firewall).
-
Kamu kirim urutan koneksi ke:
-
Port 1111 → Port 2222 → Port 3333
-
-
Server mengenali kombinasi ini → membuka port 22 untuk IP-mu.
-
Kamu login ke SSH.
-
Setelah beberapa menit, port 22 ditutup lagi otomatis.
Kelebihan:
-
Menyembunyikan port penting dari publik.
-
Mengurangi risiko brute-force dan scanning.
-
Ringan dan simpel.
Kekurangan:
-
Setup agak teknis.
-
Bisa terganggu oleh NAT/firewall ISP.
-
Jika urutan “knock” diketahui, bisa disalahgunakan.
-
Bisa ribet kalau banyak user atau butuh integrasi dengan sistem otentikasi lain.
Contoh Implementasi Port Knocking (Linux)
1. Install knockd
sudo apt install knockd
2. Edit konfigurasi /etc/knockd.conf
[options] logfile = /var/log/knockd.log [openSSH] sequence = 7000,8000,9000 seq_timeout = 15 command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 9000,8000,7000 seq_timeout = 15 command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn
3. Aktifkan knockd
sudo systemctl enable knockd sudo systemctl start knockd
4. Kirim ketukan dari klien
knock your.server.ip 7000 8000 9000
Port knocking adalah teknik “silent security” yang cocok untuk kamu yang ingin membuat server seperti ninja digital—tidak terlihat, tapi siap menyerang balik. Meskipun bukan pengganti keamanan standar seperti SSH key atau VPN, port knocking bisa menjadi lapisan pertahanan ekstra yang sulit ditembus oleh bot dan pemindai otomatis.