knockd.conf-esimerkkejä
knockd lukee tiedoston /etc/knockd.conf: [options]-osion ja yhden osion kutakin ovea varten. Jokaisessa osiossa on sarja, aikaraja ja komento koputtavalle osoitteelle, %IP%. Valitse omat porttisi — älä koskaan käytä uudelleen esimerkkien portteja.
Avaa SSH muutamaksi sekunniksi
Yleisin määritys: yksi koputus avaa SSH:n, ja knockd sulkee sen uudelleen cmd_timeout-ajan kuluttua. Jo avaamasi istunnot toimivat edelleen, jos palomuuri hyväksyy muodostetut yhteydet.
[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 Erilliset sarjat avaamiseen ja sulkemiseen
Ilman ajastinta portti pysyy avoinna, kunnes koputat sulkevan sarjan. Se on kätevää, mutta helppo unohtaa — ajoitettua versiota kannattaa käyttää.
[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 Kertakäyttöiset sarjat
Yhden kiinteän sarjan sijaan knockd voi lukea sarjojen tiedoston ja hyväksyä jokaisen vain kerran, joten tallennettua koputusta ei voi toistaa. Secret Knock ylläpitää samaa luetteloa ja siirtyy seuraavaan sarjaan oven avanneen koputuksen jälkeen.
[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 nftablesin kanssa
Järjestelmissä, joissa käytetään nftablesia, anna knockdin lisätä osoite joukkoon aikakatkaisulla; SSH:n piilottamista käsittelevässä oppaassa on vastaava nftables-taulukko.
[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 } Muokkauksen jälkeen
- 1Määritä Debianissa ja Ubuntussa liitäntä, jota knockd kuuntelee, tiedostossa /etc/default/knockd (KNOCKD_OPTS="-i eth0") ja käynnistä knockd uudelleen.
- 2Seuraa toimintaa komennolla journalctl -u knockd -f koputtaessasi.
- 3Secret Knockissa + › Tuo tiedostosta muuttaa jokaisen sarjan sisältävän osion oveksi; syötä kertakäyttöisten sarjojen luettelot käsin.
Kaikki esimerkit GitHubissa → Jokainen tämän sivun määritys valmiina kopioitavaksi: github.com/mobilcomm/secretknock-examples (public domain).
Kysymyksiä
Pitäisikö käyttää TCP- vai UDP-vaiheita?
Kumpikin toimii. Molempien yhdistäminen tekee sarjan arvaamisesta porttiskannauksen perusteella vaikeampaa. UDP-vaiheisiin voi sisällyttää hyötykuorman Secret Knockissa, jos määrityksesi tarkistaa sen.
Oppaita määritystäsi varten
- Port knocking selitetty →
- knockd iPhonessa, iPadissa ja Macissa →
- fwknop SPA iPhonessa, Macissa ja Apple Watchissa →
- MikroTik-porttikoputus →
- DrayTek Vigor -porttikoputus →
- Piilota SSH port knockingilla →
- Porttikoputus Apple Watchissa →
- Miksi porttikoputus ei avaa →
- fwknop-palvelimen käyttöönotto →
- Port knocking, VPN vai fail2ban? →