Príklady knockd.conf
knockd číta /etc/knockd.conf: sekciu [options] a jednu sekciu pre každé dvere. Každá sekcia obsahuje sekvenciu, časový limit a príkaz, ktorý sa spustí pre adresu, z ktorej sa klope, %IP%. Vyberte si vlastné porty — nikdy nepoužívajte porty z príkladov znova.
Otvorte SSH na niekoľko sekúnd
Najbežnejšie nastavenie: jedno zaklopanie otvorí SSH a knockd ho po uplynutí cmd_timeout opäť zatvorí. Relácie, ktoré už máte otvorené, budú naďalej fungovať, ak firewall povoľuje nadviazané pripojenia.
[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 Samostatné sekvencie na otvorenie a zatvorenie
Bez časovača zostane port otvorený, kým nezaklopete zatváraciu sekvenciu. Je to pohodlné, ale ľahko sa na to zabudne — uprednostnite verziu s časovým limitom.
[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 Jednorazové sekvencie
Namiesto jednej pevnej sekvencie môže knockd čítať súbor sekvencií a každú prijať iba raz, takže zaznamenané zaklopanie nemožno opätovne použiť. Secret Knock používa rovnaký zoznam a po zaklopaní, ktoré otvorilo dvere, prejde na ďalšiu sekvenciu.
[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 S nftables
V systémoch s nftables nechajte knockd pridať adresu do množiny s časovým limitom; sprievodca skrytím SSH zobrazuje zodpovedajúcu tabuľku nftables.
[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 } Po úprave
- 1V systémoch Debian a Ubuntu nastavte rozhranie, na ktorom knockd počúva, v /etc/default/knockd (KNOCKD_OPTS="-i eth0") a reštartujte knockd.
- 2Počas zaklopania sledujte jeho činnosť pomocou journalctl -u knockd -f.
- 3V Secret Knock funkcia + › Importovať zo súboru zmení každú sekciu so sekvenciou na dvere; zoznamy jednorazových sekvencií zadajte ručne.
Všetky príklady na GitHube → Každá konfigurácia z tejto stránky pripravená na skopírovanie: github.com/mobilcomm/secretknock-examples (voľné dielo).
Otázky
Mám použiť kroky TCP alebo UDP?
Fungujú oba. Kombinácia oboch sťažuje uhádnutie sekvencie zo skenovania portov. Kroky UDP môžu v Secret Knock obsahovať údaje, ak ich vaše nastavenie kontroluje.
Návody pre vašu konfiguráciu
- Vysvetlenie techniky port knocking →
- knockd na iPhone, iPade a Macu →
- fwknop SPA na iPhone, Macu a Apple Watch →
- Port knocking pre MikroTik →
- Zaklopanie na porty DrayTek Vigor →
- Skryte SSH pomocou port knockingu →
- Port knocking na Apple Watch →
- Prečo zaklopanie neotvorí port →
- nastavenie servera fwknop →
- Port knocking, VPN alebo fail2ban? →