Prijeđi na sadržaj
Secret Knock

Zašto kucanje na priključak ne otvara vrata

Kucanje ili nikad ne stigne do poslužitelja, stigne u obliku koji demon ne prihvaća ili otvori vrata za adresu koju ne upotrebljavate. Prođite popis odozgo prema dolje — poredan je prema tome koliko se često pojavljuje svaki uzrok.

1. Vrata su se otvorila za drugu adresu

Vatrozid otvara priključak za izvorišnu adresu koju je poslužitelj vidio. Ako ste kucali putem IPv6, a SSH se zatim povezuje putem IPv4 — ili obrnuto — vrata su otvorena za adresu koju ne upotrebljavate. Mobilni podaci, NAT operatera i VPN-ovi također mijenjaju adresu.

Usporedite adresu koju Secret Knock prikazuje na početnom zaslonu ("Kucate s …") s adresom u zapisniku poslužitelja te za vrata odaberite IPv4 ili IPv6 ako se razlikuju.

2. Paketi ne stižu do poslužitelja

Hotelske, uredske i mobilne mreže ponekad blokiraju neuobičajene priključke, a vatrozid u oblaku ispred poslužitelja odbacuje pakete prije nego što ih knockd ili fwknopd vidi. Pratite promet na poslužitelju dok kucate:

# knockd (UseSyslog): every recognised step and the command it ran
sudo journalctl -u knockd -f

# Do the packets reach the server at all? (use your interface and ports)
sudo tcpdump -ni eth0 'tcp port 7311 or tcp port 8822 or udp port 9133'

# fwknopd in the foreground with verbose output
sudo fwknopd -f -v
Na poslužitelju

3. Slijed stiže u pogrešnom obliku

  1. 1Ponovno poslani SYN-ovi: kada TCP kucanje ne dobije odgovor, operativni sustav klijenta ponovno šalje isti SYN. knockd 0.8 poništava slijed pri takvom ponavljanju. Secret Knock šalje svako TCP kucanje kao jedan SYN i odmah prekida pokušaj; drugi klijenti možda to ne čine.
  2. 2Vremensko usklađivanje: svi koraci moraju stići redom unutar seq_timeout. Dodajte kratku odgodu prije koraka ako usmjerivač između njih mijenja redoslijed paketa.
  3. 3Protokol: UDP korak mora biti poslan kao UDP, a TCP korak kao TCP — provjerite svaki korak prema knockd.conf.
  4. 4tcpflags = syn uzrokuje da knockd zanemaruje TCP pakete bez oznake SYN. Bez toga se i drugi paketi veze s istim priključkom računaju kao pogoci i mogu pokvariti slijed.

4. fwknop: ključevi, satovi i ponavljanja

  1. 1Oba ključa moraju odgovarati datoteci access.conf: Rijndael ključ i HMAC ključ, s istim sažetkom (SHA-256 prema zadanim postavkama).
  2. 2fwknopd odbacuje pakete starije od MAX_SPA_PACKET_AGE (120 sekundi prema zadanim postavkama), pa sat uređaja koji znatno odstupa čini da svaki paket izgleda staro.
  3. 3Svaki SPA paket može se upotrijebiti samo jednom; fwknopd namjerno odbacuje ponovno poslani paket.
  4. 4Ako kucate putem HTTP, nešto mora prihvaćati TCP veze na tom priključku, inače se zahtjev nikad ne šalje.

5. Vrata se otvaraju, ali SSH i dalje ne uspijeva

  1. 1Redoslijed pravila: pravilo koje demon doda mora biti prije pravila koje odbacuje priključak — iptables -A dodaje pravilo nakon postojećeg DROP-a i ono se nikad ne podudara.
  2. 2Vremenski prozor: cmd_timeout ili FW_ACCESS_TIMEOUT zatvorio je vrata prije povezivanja putem SSH. Povežite se unutar prozora; uspostavljene sesije nastavljaju raditi ako vatrozid prihvaća uspostavljene veze.
  3. 3Provjera priključka u aplikaciji Secret Knock nakon kucanja pokazuje je li priključak uopće odgovorio, odvojeno od SSH autentikacije.

Svi primjeri na GitHubu → Svaka konfiguracija na ovoj stranici, spremna za kopiranje: github.com/mobilcomm/secretknock-examples (javno vlasništvo).

Pitanja

Kako mogu vidjeti što je aplikacija zapravo poslala?

Povijest vrata prikazuje svako kucanje s vremenom, rezultatom i obitelji adresa, a uređivač prikazuje isto kucanje kao naredbu terminala koju možete pokrenuti s računala radi usporedbe.

Vodiči za vaše postavljanje