Einen fwknop-Server einrichten
fwknop Single Packet Authorization hält SSH geschlossen, bis ein verschlüsseltes, authentifiziertes UDP-Paket eintrifft. Diese Schritte richten es auf einem Debian- oder Ubuntu-Server ein. Teste es zunächst von einem Computer aus und füge dann dieselben Schlüssel zu Secret Knock hinzu.
1. Installieren und Schlüssel generieren
Installiere den Server und den Client, und generiere dann ein Schlüsselpaar. Bewahre die Ausgabe auf: Dieselben zwei Schlüssel werden in access.conf und in Secret Knock verwendet.
sudo apt install fwknop-server fwknop-client
fwknop --key-gen # prints KEY_BASE64 and HMAC_KEY_BASE64 2. SSH für SPA-Pakete erlauben
access.conf legt fest, was ein gültiges Paket öffnen darf und wie lange.
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. fwknopd mitteilen, wo es lauschen soll
fwknopd erfasst Pakete an einer Schnittstelle; es benötigt keinen offenen Port. Lege die Schnittstelle fest, die dein Server verwendet.
# /etc/fwknop/fwknopd.conf
PCAP_INTF eth0;
PCAP_FILTER udp port 62201;
MAX_SPA_PACKET_AGE 120; 4. SSH standardmäßig schließen
Lass währenddessen eine SSH-Sitzung geöffnet und teste über eine zweite Verbindung, bevor du dich abmeldest. fwknopd fügt seine eigene Kette oben in INPUT ein und ergänzt dort für jedes gültige Paket ein zeitlich begrenztes ACCEPT.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP 5. Testen, dann die Tür hinzufügen
Starte fwknop-server neu, sende ein Paket von einem anderen Computer und verbinde dich:
# 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: Neue Tür › Mit einer Vorlage starten › fwknop — Single Packet Authorization. Gib den Host ein und füge die Ausgabe von fwknop --key-gen mit „Schlüssel aus fwknop --key-gen einfügen“ ein.
- 2Klopfe an; die Tür zeigt „Tür angelehnt“, wenn Port 22 antwortet.
- 3Führe auf dem Server fwknopd -f -v aus, falls dies nicht geschieht — der Leitfaden zur Fehlerbehebung führt die üblichen Ursachen auf.
Alle Beispiele auf GitHub → Jede Konfiguration auf dieser Seite, kopierbereit: github.com/mobilcomm/secretknock-examples (gemeinfrei).
Fragen
Benötigt fwknopd einen offenen Port?
Nein. Es liest Pakete von der Netzwerkschnittstelle, daher kann der SPA-Port in der Firewall geschlossen bleiben; das Paket muss lediglich den Server erreichen.
Anleitungen für dein Setup
- Port knocking erklärt →
- knockd auf iPhone, iPad und Mac →
- fwknop SPA auf iPhone, Mac und Apple Watch →
- MikroTik-Port-Knocking →
- DrayTek Vigor Port Knocking →
- SSH hinter Port Knocking verbergen →
- Port Knocking auf der Apple Watch →
- Warum ein Port-Knock nicht öffnet →
- knockd.conf-Beispiele →
- Port Knocking, VPN oder fail2ban? →