Jak korzystać z pukania portu, aby zabezpieczyć usługę SSH w Linux
- 1400
- 239
- Maria Piwowarczyk
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 KnockdPod [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 KnockdPo 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/knockdDomyś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 sieciowyPełna konfiguracja jest taka, jak pokazano.
Wartości konfiguracji KnockdZapisz 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 KnockdSprawdź 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 numerowanySprawdź 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ń 5Usuń 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 SSHKrok 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 pukaniaW tym momencie powinieneś być w stanie skutecznie zalogować się na serwerze za pomocą SSH.
Połącz się z serwerem za pomocą KnockdPo 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 SSHZamykanie 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.
- « 9 najlepszych klientów IRC dla Linux w 2021
- LFCA Poznaj podstawowe pojęcia korzystania z kontenerów - część 22 »