Blog

Home   /   blog   /   Debian / Ubuntu: Setting Port Knocking dengan Knockd dan Iptables

Debian / Ubuntu: Setting Port Knocking dengan Knockd dan Iptables

Port knocking merupakan suatu metode untuk memberikan akses secara remote tanpa membuka port tersebut secara permanen. Tekniknya yaitu dengan melakukan knock terhadap port server yang akan diakses. Dengan melakukan port knocking ini dapat menjaga server kita dari serangan port scanning dan script kiddie.

Instalasi Knockd

Buka terminal dan ketikkan perintah berikut:

$ sudo apt-get install knockd


Contoh output:

[sudo] password for user:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  knockd
0 upgraded, 1 newly installed, 0 to remove and 4 not upgraded.
Need to get 27.6 kB of archives.
After this operation, 168 kB of additional disk space will be used.
Get:1 http://mirrors.kernel.org/debian/ stable/main knockd amd64 0.5-3 [27.6 kB]
Fetched 27.6 kB in 1s (19.5 kB/s)
Selecting previously deselected package knockd.
(Reading database ... 352407 files and directories currently installed.)
Unpacking knockd (from .../knockd_0.5-3_amd64.deb) ...
Processing triggers for man-db ...
Setting up knockd (0.5-3) ...
knockd disabled: not starting. To enable it edit /etc/default/knockd ... (warning).

Konfigurasi

Edit file /etc/knockd.conf:

$ sudo vi /etc/knockd.conf

Update konfigurasi file tersebut dan set port yang akan kita gunakan adalah 2022, 3022, 4022:

[options]
#        UseSyslog
         logfile = /var/log/knockd.log
[openSSH]
        sequence    = 2022,3022,4022
        seq_timeout = 5
        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

[closeSSH]
        sequence    = 4022,3022,2022
        seq_timeout = 5
        command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

Simpan dan tutup filenya. Lalu Edit file /etc/default/knockd:

$ sudo vi /etc/default/knockd
Cari:
START_KNOCKD=0
Ganti dengan:
START_KNOCKD=1
Optional: set nama interfacenya (mis: eth0 atau wlan0 atau ppp0):
KNOCKD_OPTS="-i eth0"

Simpan dan tutup file tersebut.

Cara menjalankan knockd.

Untuk menjalankan knockd, ketikkan perintah berikut:

sudo /etc/init.d/knockd start #<-- start server
sudo /etc/init.d/knockd stop #<-- stop server
sudo /etc/init.d/knockd restart #<-- restart server
sudo /etc/init.d/knockd status #<-- see status server

Cara menggunakan/membuka port knock.

Untuk menggunakan port knock, dari komputer klien kita ingin membuka port 22 (ssh) pada IP 203.1.2.3, maka ketikkan perintah berikut:

$ knock -v 203.1.2.3 2022 3022 4022

Contoh output:

hitting tcp 203.1.2.3:2022
hitting tcp 203.1.2.3:3022
hitting tcp 203.1.2.3:4022

Cara menutup port knock

sintaksnya (kebalikan pada saat membuka port):

$ knock -v 203.1.2.3 4022 3022 2022

Cara mengetahui port yang terbuka pada server

Test dengan koneksi ssh dari klien:

$ ssh user@203.1.2.3

Atau pada server ketikkan perintah

# iptables -L INPUT -v -n
# iptables -L INPUT -v -n | grep :22

11 thoughts on “Debian / Ubuntu: Setting Port Knocking dengan Knockd dan Iptables

    1. Jika bunyi errornya “Command not found” atau “No such file or directory” berarti ada kesalahan ketik..pake aja editor yg mudah spt nano, sehingga perintahnya: sudo nano /etc/knockd.conf (perhatikan spasi & tulisannya).
      Semoga membantu..:-)

      1. ok sip mas ,,,
        saya mau tanya lagi sya sdang mmbuat skripsi ttng port knocking ,, satu kmpter sya bwt webservernya dengan apache2 dan port knocingnya ,,, bgaimna cara klient yang ingin msuk ke webservernya klo sudah di knock dr klient??? klo ingin tanya lagi ad email, ato facebooknya mas trmakasih ,,, mhon bntuanya

          1. sudah saya coba mas dari kient saya knock tp gk ad reaksi ap2 d kmpter servernya ,, ne saya memakai wifi yg sma ,, mhon solusinya mas ?? terimakasih

  1. saya sudah ikuti seperti yang diatas ketukanya juga sudah bisa dilihat di server tapi pas mau remote pkek ssh tetep gak bisa conektion refaused….

Leave a Reply

Your email address will not be published.