Vai al contenuto
Secret Knock

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
Debian / Ubuntu

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

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

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
iptables

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]
Da un computer con fwknop-client
  1. 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.
  2. 2Bussa; la porta mostra Porta socchiusa quando la porta 22 risponde.
  3. 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