Jak korzystać z pukania portu, aby zabezpieczyć usługę SSH w Linux

Jak korzystać z pukania portu, aby zabezpieczyć usługę SSH w Linux

Pukanie portu jest sprytną techniką kontrolowania dostępu do portu, umożliwiając jedynie uzasadnione użytkowników dostęp do usługi działającej na serwerze. Działa w taki sposób, że po podejmowaniu odpowiedniej sekwencji prób połączenia zapora chętnie otwiera zamknięty port.

Logiką za pukaniem portu jest ochrona systemu Linux przed zautomatyzowanymi skanerami portów, które krąży na otwarte porty. W tym przewodniku badamy, w jaki sposób możesz zainstalować pukanie portów i jak możesz go skonfigurować, aby zabezpieczyć usługę SSH. Do celów demonstracyjnych będziemy używać Ubuntu 18.04.

Krok 1: Zainstaluj i skonfiguruj Knockd

Aby rozpocząć, zaloguj się do systemu Linux i zainstaluj Knockd Demon, jak pokazano.

$ sudo apt instinst instaluj puk 

Po zainstalowaniu otwórz Knockd.conf Konfiguracja z preferowanym edytorem tekstu. Tutaj używamy edytora tekstu VIM-wierszu.

$ sudo vim /etc /knockd.conf 

Domyślny plik konfiguracyjny pojawia się następująco.

plik konfiguracyjny Knockd

Pod [OpenSsh] sekcja, musimy zmienić domyślną sekwencję pukania - 7000,8000,9000 - do czegoś innego. Jest tak, ponieważ wartości te są już znane i mogą zagrozić bezpieczeństwu twojego systemu.

Do celów testowych ustawiliśmy wartości na 10005, 10006, 10007. Jest to sekwencja, która zostanie użyta do otwarcia portu SSH z systemu klienta.

W trzeciej linii - zaczynając od Komenda, zmiana -A Do -I tuż po /sbin/iptables polecenie i wcześniej WEJŚCIE.

I na koniec pod [Closssh] Sekcja ponownie zmień domyślną sekwencję na preferowany wybór. Jest to sekwencja, która zostanie użyta do zamykania połączenia SSH po zakończeniu użytkownika i logowania z serwera.

Oto nasza pełna konfiguracja.

Ustawienia konfiguracji Knockd

Po zakończeniu zapisz zmiany i wyjdź.

Kolejną konfiguracją, którą musimy zmodyfikować /etc/default/knockd. Jeszcze raz otwórz go za pomocą edytora tekstu.

$ sudo vim/etc/default/knockd 
Domyślne ustawienia konfiguracji Knockd

Znajdź linię Start_knockd = 0. Odkształcić go i ustaw wartość na 1.

Następnie przejdź do linii Knockd_opts = ”-I ETH1” Odkształcić go i wymień domyślnie ETH1 wartość z aktywnym interfejsem sieciowym twojego systemu. Aby sprawdzić interfejs sieciowy, po prostu uruchom IP Addr lub polecenie ifconfig.

Dla naszego systemu, ENP0S3 jest aktywną kartą sieciową.

Aktywny interfejs sieciowy

Pełna konfiguracja jest taka, jak pokazano.

Wartości konfiguracji Knockd

Zapisz zmiany i wyjdź.

Następnie rozpocznij i włącz Knockd Demon, jak pokazano.

$ sudo systemctl start nokhd $ sudo systemctl włącz Knockd 

Aby sprawdzić status Knockd Demon, uruchom polecenie:

$ sudo systemCtl Status Knockd 
Sprawdź status Knockd

Krok 2: Zamknij port SSH 22 na zaporze ogniowej

Od czasu celu Knockd Usługa ma na celu udzielenie lub odmowę dostępu do usługi SSH, zamierzamy zamknąć port SSH w zaporze. Ale najpierw sprawdźmy status zapory ogniowej UFW.

$ sudo UFW numerowany 
Sprawdź status UFW

Ze wyjścia wyraźnie to widzimy Ssh Port 22 jest otwarty na obu IPv4 I IPv6 Protokoły ponumerowane 5 I 9 odpowiednio.

Musimy usunąć te dwie reguły, jak pokazano, zaczynając od najwyższej wartości - czyli 9.

$ sudo ufw usuń 9 $ sudo ufw usuń 5 
Usuń zasady UFW

Teraz, jeśli spróbujesz zdalnie zalogować się do serwera, otrzymasz błąd limitu czasu połączenia, jak pokazano.

Limit czasu połączenia SSH

Krok 3: Skonfiguruj klienta Knock do połączenia z serwerem SSH

W ostatnim kroku skonfigurujemy klienta i spróbujemy zalogować się, najpierw wysyłając sekwencję pukania, którą skonfigurowaliśmy na serwerze.

Ale najpierw zainstaluj Knockd demon tak, jak na serwerze.

$ sudo apt instinst instaluj puk 

Po zakończeniu instalacji wyślij sekwencję pukania za pomocą pokazanej składni

$ puka -v server_ip pukanie_sekwencji 

W naszym przypadku przekłada się to na:

$ puk. 192.168.2.105 10005 10006 10007 

Powinieneś uzyskać wyjście podobne do tego, co mamy, w zależności od sekwencji. To pokazuje, że próby pukania zakończyły się powodzeniem.

Sekwencja pukania

W tym momencie powinieneś być w stanie skutecznie zalogować się na serwerze za pomocą SSH.

Połącz się z serwerem za pomocą Knockd

Po zakończeniu wykonywania zadania na zdalnym serwerze zamknij port SSH, wysyłając sekwencję zamykającą.

$ puk. 192.168.2.105 10007 10006 10005 

Wszelkie próby zalogowania się na serwerze nie powiedzie.

Zamknij porty SSH
Zamykanie myśli

To kończy ten przewodnik, jak wykorzystać pukanie portów, aby zabezpieczyć usługę SSH na serwerze. Lepszym i łatwiejszym podejściem byłoby skonfigurowanie uwierzytelniania hasła SSH za pomocą par klawiszy SSH. Zapewnia to, że tylko użytkownik z klawiszem prywatnym może uwierzytelnić się z serwerem, na którym przechowywany jest klucz publiczny.