Skonfiguruj serwer fwknop
Autoryzacja pojedynczym pakietem fwknop utrzymuje SSH zamknięte, dopóki nie nadejdzie jeden zaszyfrowany, uwierzytelniony pakiet UDP. Te kroki służą do konfiguracji na serwerze Debian lub Ubuntu; najpierw przetestuj je z komputera, a następnie dodaj te same klucze do Secret Knock.
1. Zainstaluj i wygeneruj klucze
Zainstaluj serwer i klienta, a następnie wygeneruj parę kluczy. Zachowaj dane wyjściowe: te same dwa klucze należy umieścić w access.conf i w Secret Knock.
sudo apt install fwknop-server fwknop-client
fwknop --key-gen # prints KEY_BASE64 and HMAC_KEY_BASE64 2. Zezwól na SSH dla pakietów SPA
access.conf określa, co prawidłowy pakiet może otworzyć i na jak długo.
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. Wskaż fwknopd miejsce nasłuchiwania
fwknopd przechwytuje pakiety na interfejsie; nie potrzebuje otwartego portu. Ustaw interfejs używany przez serwer.
# /etc/fwknop/fwknopd.conf
PCAP_INTF eth0;
PCAP_FILTER udp port 62201;
MAX_SPA_PACKET_AGE 120; 4. Domyślnie zamknij SSH
Podczas wykonywania tych czynności pozostaw otwartą sesję SSH i przed wylogowaniem przetestuj wszystko z drugiego połączenia. fwknopd wstawia własny łańcuch na początku INPUT i dodaje tam czasowo regułę ACCEPT dla każdego prawidłowego pakietu.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP 5. Przetestuj, a następnie dodaj drzwi
Uruchom ponownie fwknop-server, wyślij pakiet z innego komputera i połącz się:
# 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] - 1W Secret Knock: Nowe drzwi › Zacznij od szablonu › fwknop — Single Packet Authorization, wprowadź hosta i wklej dane wyjściowe polecenia fwknop --key-gen za pomocą opcji „Wklej klucze z fwknop --key-gen”.
- 2Zapukaj; drzwi pokazują Uchylone drzwi, gdy port 22 odpowiada.
- 3Jeśli tak się nie stanie, uruchom na serwerze fwknopd -f -v — przewodnik rozwiązywania problemów zawiera listę typowych przyczyn.
Wszystkie przykłady na GitHubie → Każda konfiguracja z tej strony, gotowa do skopiowania: github.com/mobilcomm/secretknock-examples (domena publiczna).
Pytania
Czy fwknopd potrzebuje otwartego portu?
Nie. Odczytuje pakiety z interfejsu sieciowego, więc port SPA może pozostać zamknięty w zaporze; pakiet musi jedynie dotrzeć do serwera.
Przewodniki dotyczące Twojej konfiguracji
- Port knocking wyjaśniony →
- knockd na iPhone’a, iPada i Maca →
- fwknop SPA na iPhonie, Macu i Apple Watch →
- Pukanie portami MikroTik →
- Pukanie do portów DrayTek Vigor →
- Ukryj SSH za port knockingiem →
- Port knocking na Apple Watch →
- Dlaczego zapukanie nie otwiera portu →
- Przykłady knockd.conf →
- Port knocking, VPN czy fail2ban? →