contoh knockd.conf
knockd membaca /etc/knockd.conf: bagian [options] dan satu bagian untuk setiap pintu. Setiap bagian memiliki urutan, batas waktu, dan perintah yang dijalankan untuk alamat yang melakukan ketukan, %IP%. Pilih port Anda sendiri — jangan pernah menggunakan kembali port dari contoh.
Buka SSH selama beberapa detik
Pengaturan yang paling umum: satu ketukan membuka SSH, lalu knockd menutupnya kembali setelah cmd_timeout. Sesi yang sudah Anda buka tetap berfungsi jika firewall menerima koneksi yang telah terjalin.
[options]
UseSyslog
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT Urutan terpisah untuk membuka dan menutup
Tanpa timer, port tetap terbuka hingga Anda mengetuk urutan penutup. Praktis, tetapi mudah terlupakan — sebaiknya gunakan versi dengan batas waktu.
[options]
UseSyslog
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
[closeSSH]
sequence = 9133:udp,8822:tcp,7311:tcp
seq_timeout = 10
tcpflags = syn
command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT Urutan sekali pakai
Alih-alih satu urutan tetap, knockd dapat membaca file berisi urutan dan menerima setiap urutan hanya sekali, sehingga ketukan yang direkam tidak dapat diputar ulang. Secret Knock mempertahankan daftar yang sama dan beralih ke urutan berikutnya setelah ketukan yang membuka pintu.
[openSSH]
one_time_sequences = /etc/knockd/ssh_sequences
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
# /etc/knockd/ssh_sequences — one sequence per line, each used once
2222:udp,3333:tcp,4444:udp
5555:tcp,6666:udp,7777:tcp
8888:udp,9999:tcp,1111:tcp Dengan nftables
Pada sistem dengan nftables, biarkan knockd menambahkan alamat ke set dengan batas waktu; panduan menyembunyikan SSH menampilkan tabel nftables yang sesuai.
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s } Setelah mengedit
- 1Di Debian dan Ubuntu, atur antarmuka yang didengarkan knockd di /etc/default/knockd (KNOCKD_OPTS="-i eth0") dan mulai ulang knockd.
- 2Pantau prosesnya dengan journalctl -u knockd -f saat Anda melakukan ketukan.
- 3Di Secret Knock, + › Impor dari file mengubah setiap bagian dengan urutan menjadi pintu; masukkan daftar urutan sekali pakai secara manual.
Semua contoh di GitHub → Setiap konfigurasi di halaman ini, siap disalin: github.com/mobilcomm/secretknock-examples (domain publik).
Pertanyaan
Haruskah saya menggunakan langkah TCP atau UDP?
Keduanya dapat digunakan. Mencampurkan keduanya membuat urutan lebih sulit ditebak dari pemindaian port. Langkah UDP dapat membawa payload di Secret Knock jika pengaturan Anda memeriksanya.
Panduan untuk pengaturan Anda
- Penjelasan port knocking →
- knockd di iPhone, iPad, dan Mac →
- fwknop SPA di iPhone, Mac, dan Apple Watch →
- Port knocking MikroTik →
- Port knocking DrayTek Vigor →
- Sembunyikan SSH di balik port knocking →
- Port knocking di Apple Watch →
- Mengapa ketukan port tidak membuka →
- penyiapan server fwknop →
- Ketukan port, VPN, atau fail2ban? →