Salt la conținut
Secret Knock

Configurați un server fwknop

Autorizare printr-un singur pachet fwknop menține SSH închis până la sosirea unui pachet UDP criptat și autentificat. Acești pași îl configurează pe un server Debian sau Ubuntu; testați mai întâi de pe un computer, apoi adăugați aceleași chei în Secret Knock.

1. Instalați și generați chei

Instalați serverul și clientul, apoi generați o pereche de chei. Păstrați rezultatul: aceleași două chei se introduc în access.conf și în Secret Knock.

sudo apt install fwknop-server fwknop-client
fwknop --key-gen          # prints KEY_BASE64 and HMAC_KEY_BASE64
Debian / Ubuntu

2. Permiteți SSH pentru pachetele SPA

access.conf stabilește ce poate deschide un pachet valid și pentru cât timp.

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
/etc/fwknop/access.conf

3. Indicați-i lui fwknopd unde să asculte

fwknopd capturează pachete pe o interfață; nu are nevoie de un port deschis. Configurați interfața utilizată de server.

# /etc/fwknop/fwknopd.conf
PCAP_INTF               eth0;
PCAP_FILTER             udp port 62201;
MAX_SPA_PACKET_AGE      120;
/etc/fwknop/fwknopd.conf

4. Închideți SSH în mod implicit

Păstrați o sesiune SSH deschisă în timp ce faceți acest lucru și testați dintr-o a doua conexiune înainte de a vă deconecta. fwknopd inserează propriul lanț în partea de sus a INPUT și adaugă acolo un ACCEPT temporizat pentru fiecare pachet valid.

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
iptables

5. Testați, apoi adăugați ușa

Reporniți fwknop-server, trimiteți un pachet de pe altă mașină și conectați-vă:

# from another machine: request SSH for the address the server sees (-R)
fwknop -A tcp/22 -R -D server.example.com \
    --key-base64-rijndael "<KEY_BASE64>" --key-base64-hmac "<HMAC_KEY_BASE64>"
ssh [email protected]
De pe un computer cu fwknop-client
  1. 1În Secret Knock: Ușă nouă › Începe de la un șablon › fwknop, introduceți gazda și lipiți rezultatul comenzii fwknop --key-gen cu Lipiți cheile.
  2. 2Bateți; ușa afișează Ușă întredeschisă când portul 22 răspunde.
  3. 3Rulați fwknopd -f -v pe server dacă nu se întâmplă acest lucru — ghidul de depanare enumeră cauzele obișnuite.

Toate exemplele pe GitHub → Fiecare configurație de pe această pagină, gata de copiat: github.com/mobilcomm/secretknock-examples (domeniu public).

Întrebări

Are fwknopd nevoie de un port deschis?

Nu. Acesta citește pachetele de pe interfața de rețea, astfel încât portul SPA poate rămâne închis în firewall; pachetul trebuie doar să ajungă la server.

Ghiduri pentru configurarea ta