Przejdź do treści
Secret Knock

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

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

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

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
iptables

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]
Z komputera z fwknop-client
  1. 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”.
  2. 2Zapukaj; drzwi pokazują Uchylone drzwi, gdy port 22 odpowiada.
  3. 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