Objašnjenje port knockinga
Port knocking drži uslugu nevidljivom dok netko ne dokaže da zna tajnu. Ovaj vodič objašnjava kako funkcionira, dvije uobičajene implementacije — knockd i fwknop — te zašto kucanja u praksi ne uspijevaju.
Kako port knocking funkcionira
Vatrozid odbacuje svako povezivanje sa zaštićenim portom, pa skener ne vidi ništa. Mali demon prati promet koji dolazi do vatrozida. Kad jedna izvorna adresa stvori očekivani obrazac, demon dodaje pravilo vatrozida koje toj adresi dopušta pristup, obično nakratko.
Obrazac je kucanje. Uz knockd to je niz pokušaja povezivanja s određenim portovima, određenim redoslijedom i unutar vremenskog ograničenja. Uz fwknop to je jedan šifrirani paket.
knockd: sekvence kucanja
knockd osluškuje sučelje i uspoređuje pokušaje povezivanja sa sekvencama u /etc/knockd.conf. Sekvenca može kombinirati TCP i UDP portove. Kad se podudari, knockd pokreće naredbu — obično pravilo iptables ili nftables za adresu s koje se kuca (%IP%).
Ovaj primjer otvara SSH za adresu s koje se kuca i ponovno ga zatvara nakon 10 sekundi. Postojeće SSH sesije nastavljaju raditi ako vaš vatrozid prihvaća uspostavljena povezivanja.
[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 Odaberite vlastite portove; nikada ne upotrebljavajte portove iz objavljenih primjera. tcpflags = syn čini da knockd broji samo pakete sa zastavicom SYN — prvi paket pokušaja povezivanja.
fwknop: Single Packet Authorization
fwknop zamjenjuje sekvencu jednim UDP paketom koji je šifriran (AES) i provjeren (HMAC). Poslužitelj, fwknopd, pasivno ga hvata, provjerava, potvrđuje da nije ponovno poslan i otvara zatraženi port za adresu unutar paketa.
Generirajte ključeve naredbom fwknop --key-gen i stavite ih u access.conf na poslužitelju. Secret Knock uvozi klijentsku stranu iz vaše datoteke .fwknoprc.
SOURCE ANY
OPEN_PORTS tcp/22
KEY_BASE64 <output of fwknop --key-gen>
HMAC_KEY_BASE64 <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT 30 Budući da dopuštena adresa putuje unutar šifriranog paketa, SPA može otvoriti port za adresu različitu od one koja šalje paket — korisno kad kucate s telefona na mobilnoj mreži za prijenosno računalo na drugome mjestu.
Zašto kucanja ne uspijevaju
- IPv4 nasuprot IPv6: kucanje je poslano putem jedne adresne obitelji, a SSH se povezuje putem druge. Vatrozid je otvorio vrata za adresu koju ne upotrebljavate.
- Druga javna adresa: na mobilnoj mreži, iza NAT-a operatera ili VPN-a poslužitelj vidi drugi IP nego što očekujete. Provjerite adresu s koje kucate.
- Ponovno poslani SYN-ovi: ako TCP kucanje ne dobije odgovor, operativni sustav klijenta ponovno šalje isti SYN. U našim je testovima knockd 0.8 resetirao sekvencu pri takvom ponovljenom SYN-u, stoga klijent mora poslati svako kucanje jednom i brzo zaustaviti pokušaj.
- Vrijeme: kucanja koja stignu izvan seq_timeout ili pogrešnim redoslijedom ponovno pokreću sekvencu.
- Posrednički uređaji: neke mreže blokiraju ili mijenjaju promet prema neuobičajenim portovima, pa kucanje koje radi kod kuće može ne uspjeti na mreži hotela ili ureda.
Je li sigurno?
knockd sekvenca šalje se nešifrirana; svatko tko može pratiti vaš promet može je ponovno poslati. Upotrijebite je za skrivanje usluge od skenera, ispred SSH ključeva — ne umjesto njih. fwknop SPA uklanja taj nedostatak šifriranjem, HMAC-om i zaštitom od ponavljanja te je bolji izbor kad se vaš promet može nadzirati.
Kucanje s uređaja iPhone, Mac i Apple Watch
Secret Knock šalje knockd sekvence i fwknop SPA pakete s uređaja iPhone, iPad i Mac, provjerava odgovara li port i otvara vašu SSH aplikaciju. Apple Watch kuca putem uparenog uređaja iPhone jer watchOS ne dopušta aplikacijama slanje neobrađenih TCP ili UDP paketa; kad nije blizu uređaja iPhone, može poslati SPA putem HTTP-a poslužiteljima koji to omogućuju.
Vodiči za vaše postavljanje
- knockd na iPhoneu, iPadu i Macu →
- fwknop SPA na iPhoneu, Macu i Apple Watchu →
- MikroTik kucanje portovima →
- DrayTek Vigor kucanje portova →
- Sakrijte SSH iza kucanja na portove →
- Port knocking na Apple Watchu →
- Zašto kucanje na priključak ne otvara →
- Primjeri za knockd.conf →
- postavljanje poslužitelja fwknop →
- Port knocking, VPN ili fail2ban? →
Držite vrata zatvorenima. Nosite kucanje sa sobom.
Secret Knock uskoro stiže u App Store za iPhone, iPad, Mac i Apple Watch.
Secret Knock →