Ga naar inhoud
Secret Knock

Een fwknop-server instellen

fwknop Single Packet Authorization houdt SSH gesloten totdat één versleuteld, geauthenticeerd UDP-pakket aankomt. Met deze stappen stel je het in op een Debian- of Ubuntu-server; test het eerst vanaf een computer en voeg daarna dezelfde sleutels toe aan Secret Knock.

1. Installeren en sleutels genereren

Installeer de server en de client en genereer vervolgens een sleutelpaar. Bewaar de uitvoer: dezelfde twee sleutels komen in access.conf en in Secret Knock.

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

2. SSH toestaan voor SPA-pakketten

access.conf bepaalt wat een geldig pakket mag openen en hoelang.

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. Vertel fwknopd waar het moet luisteren

fwknopd onderschept pakketten op een interface; er is geen open poort nodig. Stel de interface in die je server gebruikt.

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

4. SSH standaard blokkeren

Houd een SSH-sessie open terwijl je dit doet en test vanaf een tweede verbinding voordat je uitlogt. fwknopd voegt zijn eigen keten bovenaan INPUT in en voegt daar voor elk geldig pakket tijdelijk een ACCEPT-regel toe.

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

5. Testen en daarna de deur toevoegen

Start fwknop-server opnieuw, stuur een pakket vanaf een andere machine en maak verbinding:

# 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]
Vanaf een computer met fwknop-client
  1. 1In Secret Knock: Nieuwe deur › Begin met een sjabloon › fwknop, voer de host in en plak de uitvoer van fwknop --key-gen met 'Sleutels plakken vanuit fwknop --key-gen'.
  2. 2Klop; de deur toont Deur op een kier wanneer poort 22 antwoordt.
  3. 3Voer fwknopd -f -v uit op de server als dat niet gebeurt — de probleemoplossingsgids vermeldt de gebruikelijke oorzaken.

Alle voorbeelden op GitHub → Elke configuratie op deze pagina, klaar om te kopiëren: github.com/mobilcomm/secretknock-examples (publiek domein).

Vragen

Heeft fwknopd een open poort nodig?

Nee. Het leest pakketten vanaf de netwerkinterface, dus de SPA-poort kan gesloten blijven in de firewall; het pakket hoeft alleen de server te bereiken.

Handleidingen voor je configuratie