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 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 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; 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 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] - 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.
- 2Bateți; ușa afișează Ușă întredeschisă când portul 22 răspunde.
- 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
- Port knocking explicat →
- knockd pe iPhone, iPad și Mac →
- fwknop SPA pe iPhone, Mac și Apple Watch →
- Port knocking MikroTik →
- Port knocking DrayTek Vigor →
- Ascundeți SSH în spatele bătăilor în porturi →
- Port knocking pe Apple Watch →
- De ce o bătaie la port nu deschide →
- Exemple knockd.conf →
- Port knocking, VPN sau fail2ban? →