Contoh knockd.conf
knockd membaca /etc/knockd.conf: satu bahagian [options] dan satu bahagian bagi setiap pintu. Setiap bahagian mempunyai jujukan, had masa dan perintah untuk dijalankan bagi alamat yang mengetuk, %IP%. Pilih port anda sendiri — jangan sekali-kali gunakan semula port daripada contoh.
Buka SSH selama beberapa saat
Persediaan yang paling biasa: satu ketukan membuka SSH, dan knockd menutupnya semula selepas cmd_timeout. Sesi yang telah anda buka terus berfungsi jika firewall menerima sambungan yang telah diwujudkan.
[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 Jujukan berasingan untuk membuka dan menutup
Tanpa pemasa, port kekal terbuka sehingga anda mengetuk jujukan penutupan. Mudah, tetapi senang terlupa — gunakan versi dengan had masa.
[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 Jujukan sekali guna
Daripada satu jujukan tetap, knockd boleh membaca fail jujukan dan menerima setiap satunya sekali sahaja, supaya ketukan yang dirakam tidak boleh dimainkan semula. Secret Knock mengekalkan senarai yang sama dan beralih ke jujukan seterusnya selepas 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 pada set dengan tamat masa; panduan sembunyikan SSH menunjukkan jadual nftables yang sepadan.
[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 } Selepas mengedit
- 1Pada Debian dan Ubuntu, tetapkan antara muka yang didengari oleh knockd dalam /etc/default/knockd (KNOCKD_OPTS="-i eth0") dan mulakan semula knockd.
- 2Pantau ia berfungsi dengan journalctl -u knockd -f semasa anda mengetuk.
- 3Dalam Secret Knock, + › Import daripada fail menjadikan setiap bahagian dengan jujukan sebagai pintu; masukkan senarai jujukan sekali guna secara manual.
Semua contoh di GitHub → Setiap konfigurasi pada halaman ini, sedia untuk disalin: github.com/mobilcomm/secretknock-examples (domain awam).
Soalan
Patutkah saya menggunakan langkah TCP atau UDP?
Kedua-duanya boleh digunakan. Mencampurkan kedua-duanya menjadikan jujukan lebih sukar untuk diteka daripada imbasan port. Langkah UDP boleh membawa muatan dalam Secret Knock jika persediaan anda menyemaknya.
Panduan untuk persediaan anda
- Penjelasan port knocking →
- knockd pada iPhone, iPad dan Mac →
- fwknop SPA pada iPhone, Mac dan Apple Watch →
- Ketukan port MikroTik →
- Port knocking DrayTek Vigor →
- Sembunyikan SSH di sebalik ketukan port →
- Port knocking pada Apple Watch →
- Mengapa ketukan port tidak membuka →
- persediaan pelayan fwknop →
- Port knocking, VPN atau fail2ban? →