knockd.conf-példák
A knockd a /etc/knockd.conf fájlt olvassa be: egy [options] szakaszt és ajtónként egy szakaszt. Minden szakasz tartalmaz egy sorozatot, egy időkorlátot és a kopogó címére, %IP%-re futtatandó parancsot. Válasszon saját portokat — soha ne használja újra a példákban szereplőket.
Az SSH megnyitása néhány másodpercre
A leggyakoribb beállítás: egy kopogás megnyitja az SSH-t, a knockd pedig a cmd_timeout után ismét bezárja. A már megnyitott munkamenetek tovább működnek, ha a tűzfal engedélyezi a létrejött kapcsolatokat.
[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 Külön sorozatok a nyitáshoz és a záráshoz
Időzítő nélkül a port mindaddig nyitva marad, amíg be nem kopogja a záró sorozatot. Kényelmes, de könnyű elfelejteni — inkább az időzített változatot használja.
[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 Egyszer használatos sorozatok
Egyetlen rögzített sorozat helyett a knockd képes egy sorozatokat tartalmazó fájlt olvasni, és mindegyiket csak egyszer elfogadni, így a rögzített kopogás nem játszható vissza. A Secret Knock ugyanazt a listát kezeli, és egy, az ajtót megnyitó kopogás után a következő sorozatra lép.
[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 nftables használatával
Az nftables-t használó rendszereken hagyja, hogy a knockd időkorláttal adja hozzá a címet egy készlethez; az SSH elrejtéséről szóló útmutatóban megtalálja a hozzá tartozó nftables-táblát.
[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 } Szerkesztés után
- 1Debian és Ubuntu rendszeren állítsa be a /etc/default/knockd fájlban azt a hálózati csatolót, amelyen a knockd figyel (KNOCKD_OPTS="-i eth0"), majd indítsa újra a knockd szolgáltatást.
- 2Kopogás közben a journalctl -u knockd -f paranccsal figyelheti a működését.
- 3A Secret Knockban a + › Importálás fájlból minden sorozatot tartalmazó szakaszt ajtóvá alakít; az egyszer használatos sorozatlistákat kézzel adja meg.
Minden példa a GitHubon → Az oldal minden konfigurációja másolásra készen: github.com/mobilcomm/secretknock-examples (közkincs).
Kérdések
TCP- vagy UDP-lépéseket használjak?
Mindkettő működik. A kettő vegyítése megnehezíti egy sorozat kitalálását portvizsgálat alapján. Az UDP-lépések hasznos adatot is hordozhatnak a Secret Knockban, ha a beállítása ezt ellenőrzi.
Útmutatók a beállításához
- A port knocking ismertetése →
- knockd iPhone-on, iPaden és Macen →
- fwknop SPA iPhone-on, Macen és Apple Watchon →
- MikroTik portkopogtatás →
- DrayTek Vigor portkopogtatás →
- SSH elrejtése portkopogtatással →
- Portkopogtatás Apple Watchon →
- Miért nem nyílik ki egy portkopogás után? →
- fwknop-kiszolgáló beállítása →
- Port knocking, VPN vagy fail2ban? →