knockd.conf-eksempler
knockd læser /etc/knockd.conf: en [options]-sektion og én sektion pr. dør. Hver sektion har en sekvens, en tidsgrænse og kommandoen, der skal køres for den bankende adresse, %IP%. Vælg dine egne porte — genbrug aldrig dem fra eksempler.
Åbn SSH i nogle få sekunder
Den mest almindelige opsætning: Ét bank åbner SSH, og knockd lukker den igen efter cmd_timeout. Sessioner, du allerede har åbnet, fortsætter med at fungere, hvis firewallen accepterer etablerede forbindelser.
[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 Separate sekvenser til at åbne og lukke
Uden en timer forbliver porten åben, indtil du banker lukkesekvensen. Det er praktisk, men let at glemme — foretræk versionen med tidsbegrænsning.
[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 Engangssekvenser
I stedet for én fast sekvens kan knockd læse en fil med sekvenser og kun acceptere hver enkelt én gang, så et optaget bank ikke kan genafspilles. Secret Knock beholder den samme liste og går videre til den næste sekvens efter et bank, der åbnede døren.
[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 Med nftables
På systemer med nftables kan du lade knockd tilføje adressen til et sæt med en timeout; vejledningen til at skjule SSH viser den tilsvarende nftables-tabel.
[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 } Efter redigering
- 1På Debian og Ubuntu skal du angive den grænseflade, knockd lytter på, i /etc/default/knockd (KNOCKD_OPTS="-i eth0") og genstarte knockd.
- 2Se det virke med journalctl -u knockd -f, mens du banker.
- 3I Secret Knock gør + › Importer fra fil hver sektion med en sekvens til en dør; indtast lister med engangssekvenser manuelt.
Alle eksempler på GitHub → Alle konfigurationer på denne side, klar til kopiering: github.com/mobilcomm/secretknock-examples (public domain).
Spørgsmål
Skal jeg bruge TCP- eller UDP-trin?
Begge dele fungerer. En blanding af begge gør en sekvens sværere at gætte ud fra en portscanning. UDP-trin kan indeholde et dataindhold i Secret Knock, hvis din opsætning kontrollerer det.
Vejledninger til din opsætning
- Port knocking forklaret →
- knockd på iPhone, iPad og Mac →
- fwknop SPA på iPhone, Mac og Apple Watch →
- MikroTik-port knocking →
- DrayTek Vigor-port knocking →
- Skjul SSH bag port knocking →
- Portbankning på Apple Watch →
- Hvorfor en portbankning ikke åbner →
- opsætning af fwknop-server →
- Port knocking, VPN eller fail2ban? →