Configura un server fwknop
Single Packet Authorization di fwknop mantiene SSH chiuso finché non arriva un pacchetto UDP crittografato e autenticato. Questi passaggi lo configurano su un server Debian o Ubuntu; provalo prima da un computer, poi aggiungi le stesse chiavi a Secret Knock.
1. Installa e genera le chiavi
Installa il server e il client, quindi genera una coppia di chiavi. Conserva l'output: le stesse due chiavi vanno in access.conf e in Secret Knock.
sudo apt install fwknop-server fwknop-client
fwknop --key-gen # prints KEY_BASE64 and HMAC_KEY_BASE64 2. Consenti SSH per i pacchetti SPA
access.conf indica cosa può aprire un pacchetto valido e per quanto tempo.
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 a fwknopd dove ascoltare
fwknopd acquisisce i pacchetti su un'interfaccia; non richiede una porta aperta. Imposta l'interfaccia usata dal server.
# /etc/fwknop/fwknopd.conf
PCAP_INTF eth0;
PCAP_FILTER udp port 62201;
MAX_SPA_PACKET_AGE 120; 4. Chiudi SSH per impostazione predefinita
Mantieni aperta una sessione SSH durante questa operazione e verifica da una seconda connessione prima di disconnetterti. fwknopd inserisce la propria catena in cima a INPUT e aggiunge lì un ACCEPT temporizzato per ogni pacchetto valido.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP 5. Verifica, poi aggiungi la porta
Riavvia fwknop-server, invia un pacchetto da un'altra macchina e connettiti:
# 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] - 1In Secret Knock: Nuova porta › Inizia da un modello › fwknop, inserisci l'host e incolla l'output di fwknop --key-gen con Incolla le chiavi.
- 2Bussa; la porta mostra Porta socchiusa quando la porta 22 risponde.
- 3Esegui fwknopd -f -v sul server se non accade: la guida alla risoluzione dei problemi elenca le cause più comuni.
Tutti gli esempi su GitHub → Ogni configurazione di questa pagina, pronta da copiare: github.com/mobilcomm/secretknock-examples (di pubblico dominio).
Domande
fwknopd richiede una porta aperta?
No. Legge i pacchetti dall'interfaccia di rete, quindi la porta SPA può rimanere chiusa nel firewall; il pacchetto deve solo raggiungere il server.
Guide per la tua configurazione
- Il port knocking spiegato →
- knockd su iPhone, iPad e Mac →
- SPA fwknop su iPhone, Mac e Apple Watch →
- Port knocking MikroTik →
- Port knocking DrayTek Vigor →
- Nascondi SSH dietro il port knocking →
- Port knocking su Apple Watch →
- Perché una bussata non apre →
- Esempi di knockd.conf →
- Port knocking, VPN o fail2ban? →