Pukanie do portów: najlepsze zabezpieczenia, jakie możesz mieć na swoim komputerze lub serwerze (wdrożenie + konfiguracja)

Uderzające porty (po angielsku port pukanie) jest bez wątpienia praktyką, którą wszyscy zarządzający serwerami powinniśmy dobrze znać, tutaj szczegółowo wyjaśniam, co to jest oraz jak to zaimplementować i skonfigurować 😉

W tej chwili ci z nas, którzy zarządzają serwerem, mają do niego dostęp przez SSH, niektórzy zmieniamy domyślny port SSH i nie używa już portu 22, a inni po prostu go tak zostawiają (coś nie jest zalecane), jednak serwer ma włączony dostęp SSH przez pewien port i jest to już „luka”.

z Pukanie do portu możemy osiągnąć następujące cele:

1. Żaden port nie obsługuje dostępu SSH. Jeśli mamy skonfigurowane SSH dla portu 9191 (na przykład), ten port (9191) zostanie zamknięty dla wszystkich.
2. Jeśli ktoś chce uzyskać dostęp do serwera przez SSH, oczywiście nie będzie mógł, ponieważ port 9191 jest zamknięty ... ale jeśli użyjemy „magicznej” lub tajnej kombinacji, ten port zostanie otwarty, na przykład:

1. Telnet do portu 7000 serwera
2. Wykonuję kolejny telnet do portu 8000 serwera
3. Wykonuję kolejny telnet do portu 9000 serwera
4. Serwer wykryje, że ktoś wykonał tajną kombinację (porty dotykowe 7000, 8000 i 9000 w tej kolejności) i otworzy port 9191 tak, aby logowanie zażądało SSH (otworzy je tylko dla adresu IP, z którego została wykonana kombinacja numer portu zadowalający).
5. Teraz, aby zamknąć SSH, po prostu telnetem się na port 3500
6. Zrobię kolejny telnet na port 4500
7. I wreszcie kolejny telnet na port 5500
8. Wykonanie tej innej tajnej kombinacji wykrytej przez serwer spowoduje ponowne zamknięcie portu 9191.

Innymi słowy, wyjaśniając to jeszcze prościej ...

z Pukanie do portu nasz serwer może mieć zamknięte porty, ale gdy serwer to wykryje X IP została utworzona poprawna kombinacja portów (konfiguracja zdefiniowana wcześniej w pliku konfiguracyjnym) oczywiście wykona na sobie określone polecenie (comando zdefiniowane również w pliku konfiguracyjnym).

Czy to zrozumiałe? 🙂

Jak zainstalować demona dla Port Knocking?

Robię to z paczką köckd, co pozwoli nam w bardzo, bardzo prosty i szybki sposób zaimplementować i skonfigurować Pukanie do portu.

Zainstaluj pakiet: knockd

Jak skonfigurować Pukanie do portów z pukaniem?

Po zainstalowaniu przechodzimy do jego konfiguracji, w tym celu edytujemy (jako root) plik /etc/knockd.conf:

nano /etc/knockd.conf

Jak widać w tym pliku jest już domyślna konfiguracja:

 Wyjaśnienie domyślnych ustawień jest naprawdę proste.

- Pierwszy, UseSyslog oznacza, że ​​będziemy używać do rejestrowania aktywności (logów) / var / log / syslog.
- Po drugie, w sekcji [openSSH] To jest miejsce, do którego oczywiście trafią instrukcje otwarcia SSH, najpierw mamy sekwencję portów (tajną kombinację), która jest skonfigurowana domyślnie (port 7000, port 8000 i wreszcie port 9000). Oczywiście porty można zmienić (tak naprawdę to polecam), ponieważ niekoniecznie muszą to być 3, mogą być mniej więcej, to zależy od Ciebie.
- po trzecie, seq_timeout = 5 oznacza czas oczekiwania na połączenie tajnego portu. Domyślnie jest ustawiony na 5 sekund, oznacza to, że gdy zaczniemy pukać do portu (czyli gdy telnetujemy się na port 7000) mamy maksymalnie 5 sekund na dokończenie prawidłowej sekwencji, jeżeli minie 5 sekund i nie zakończyliśmy pukania do portu, to będzie po prostu tak, jakby sekwencja była nieprawidłowa.
- po czwarte, komenda nie wymaga wielu wyjaśnień. Będzie to po prostu polecenie, które serwer wykona, gdy wykryje kombinację zdefiniowaną powyżej. Domyślnie ustawione polecenie otwiera port 22 (zmień ten port na port SSH) tylko na adres IP, który utworzył poprawną kombinację portów.
- po piąte, tcpflags = syn W tej linii określamy typ pakietów, które serwer rozpozna jako prawidłowe dla portu pukającego.

Następnie jest sekcja do zamknięcia SSH, że domyślna konfiguracja to nic innego jak ta sama sekwencja portów powyżej, ale w odwrotnej kolejności.

Oto konfiguracja z pewnymi modyfikacjami:

 Jak uruchomić demona knockd?

Aby go uruchomić, musimy najpierw zmodyfikować (jako root) plik / etc / default / knockd:

nano /etc/default/knockd

Tam zmieniamy wiersz numer 12, który mówi: «START_KNOCKD = 0»I zmień to 0 na 1, otrzymalibyśmy:«START_KNOCKD = 1«

Gdy już to zrobimy, po prostu go uruchomimy:

service knockd start

I voila, jest skonfigurowany i działa.

Port Knocking z podrzuceniem i biegiem!

Jak widać w poprzedniej konfiguracji, jeśli stuknięcie portu zostanie wykonane do portu 1000, następnie do 2000, a na końcu do 3000, otworzy się port 2222 (mój SSH), cóż, tutaj inny komputer wykonujący pukanie portu:

Kiedy naciśnę [Enter] na Knock nr 1, na nr 2 i na końcu na nr 3, port się otworzy, oto dziennik:

Jak widać, podczas pukania portu 1000 zarejestrowano etap 1, następnie w 2000 będzie to etap 2, a na końcu 3 z 3000, kiedy to robię, polecenie, które zadeklarowałem w .conf jest wykonywane i to wszystko.

Następnie, aby zamknąć port, wystarczyło tylko zapukać 9000, 8000 i ostatecznie 7000, oto dziennik:

I tu kończy się wyjaśnienie użycia 😀

Jak widać, Port Knocking jest naprawdę interesujący i przydatny, ponieważ chociaż nie chcemy po prostu otwierać portu po określonej kombinacji portów, polecenie lub kolejność wykonywania przez serwer mogą się różnić, to znaczy ... zamiast otwierać port możemy zadeklaruj zabicie procesu, zatrzymanie usługi, takiej jak apache lub mysql, itp ... ograniczeniem jest Twoja wyobraźnia.

Pukanie do portów działa tylko wtedy, gdy masz serwer fizyczny lub gdy serwer wirtualny jest w technologii KVM. Jeśli twój VPS (serwer wirtualny) to OpenVZ, to Port Knocking Myślę, że to nie działa, ponieważ nie możesz bezpośrednio manipulować iptables

No i póki co artykuł… Nie jestem ekspertem w tej kwestii, ale chciałem podzielić się z Wami tym ciekawym procesem.

Pozdrowienia 😀


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   erunamoJAZZ powiedział

    Świetny artykuł, jest dość interesujący i nie wiedziałem, że istnieje ... byłoby wspaniale, gdybyś nadal publikował artykuły dla początkujących administratorów systemu i to 😀

    Pozdrowienia i podziękowania ^ _ ^

    1.    KZKG ^ Gaara powiedział

      Dziękuję za komentarz.
      Tak ... chodzi o to, że z artykułami na DNS FICO nie chcę zostać w tyle LOL !!!

      Nic poważnego. Kilka miesięcy temu usłyszałem coś o Port Knocking i od razu zwróciło to moją uwagę, ale ponieważ myślałem, że w tym momencie będzie to bardzo skomplikowane, nie zdecydowałem się wejść, zaledwie wczoraj przeglądając niektóre pakiety z repozytorium, odkryłem pukanie i postanowiłem spróbować, a oto samouczek.

      Zawsze lubiłem zamieszczać artykuły techniczne, niektóre mogą nie być wystarczająco interesujące, ale… mam nadzieję, że inne są 😉

      pozdrowienia

    2.    Mario powiedział

      Witam, wiem, że ten artykuł istnieje już od jakiegoś czasu, ale wysyłam zapytanie, aby sprawdzić, czy ktoś może go dla mnie rozwiązać.
      Faktem jest, że zaimplementowałem pukanie portów do mojej maliny, aby spróbować poprawić bezpieczeństwo, gdy łączę się z nią spoza sieci lokalnej. Aby to zadziałało, musiałem otworzyć zakres portów na routerze 7000-9990 kierujących do komputera. Czy otwieranie tych portów na routerze jest bezpieczne, czy wręcz przeciwnie, próbując uzyskać większe bezpieczeństwo, robię odwrotnie?

      Pozdrowienia i podziękowania.

  2.   zawsze powiedział

    Świetnie, jestem administratorem od lat i go nie znałem.
    Jedno pytanie ... jak robisz „pukanie”?
    Czy używasz telnetu na tych portach? Co odpowiada ci telnet? A może jest jakaś komenda „puk”?
    Cool cool to artykuł. Spektakularny. Wielkie dzięki

    1.    KZKG ^ Gaara powiedział

      Zrobiłem test z telnetem i wszystko zdziałało cuda ... ale, co ciekawe, jest polecenie `` puk '', zrób człowiek pukanie więc możesz zobaczyć 😉

      Telnet tak naprawdę w ogóle mi nie odpowiada, iptables z polityką DROP sprawia, że ​​w ogóle nie odpowiada, a telnet pozostaje tam, czekając na odpowiedź (która nigdy nie nadejdzie), ale pukający demon rozpozna pukanie, nawet jeśli nie jeden odpowiada 😀

      Bardzo dziękuję za komentarz, miło jest wiedzieć, że moje artykuły nadal lubią ^ _ ^

  3.   st0rmt4il powiedział

    Dodano do Ulubionych! : D!

    Dzięki!

    1.    KZKG ^ Gaara powiedział

      Dzięki 😀

  4.   łowca powiedział

    Ach, bezpieczeństwo, to przyjemne uczucie, kiedy podłączamy komputer do instalacji wodociągowej, a potem dni / tygodnie później próbujemy połączyć się z jakiegoś odległego miejsca, do którego nie możemy uzyskać dostępu, ponieważ zapora ogniowa działa w trybie „nikt dla nikogo”. Poza zamkiem pod względem sysadmins. 😉

    Dlatego ten post jest tak przydatny, z pukaniem można uzyskać dostęp z dowolnego miejsca, z którego można wysłać pakiet do sieci lokalnej, a atakujący tracą zainteresowanie, gdy widzą, że port ssh jest zamknięty, nie sądzę, że uderzą w brutalną siłę aby otworzyć port.

  5.   Manuel powiedział

    Hej, artykuł jest świetny.

    Jedno: czy służy do łączenia się spoza sieci lokalnej?

    Mówię to, ponieważ mam router z zamkniętymi portami bez tego, który odpowiada ssh, który jest przekierowywany na serwer.

    Wyobrażam sobie, że aby działał spoza sieci lokalnej, konieczne będzie otwarcie portów routera odpowiadających funkcji Port Knocking i sprawienie, aby te również przekierowywały na serwer.

    Mmm ...

    Nie wiem, na ile jest to bezpieczne.

    Co o tym myślisz

    1.    KZKG ^ Gaara powiedział

      Nie jestem pewien, nie wykonałem testu, ale myślę, że tak, powinieneś otworzyć porty na routerze, w przeciwnym razie nie będziesz w stanie zapukać do serwera.

      Zrób test bez otwierania portów na routerze, jeśli u Ciebie nie działa to szkoda, bo zgadzam się z Tobą, nie zaleca się otwierania tych portów na routerze.

      1.    Manuel powiedział

        Rzeczywiście, musimy otworzyć porty i przekierować je do komputera, do którego dzwonimy.

        Szkoda.

  6.   raba08 powiedział

    Świetnie Dziękuję Ci bardzo! Właśnie zaczynam uczyć się sieci i te samouczki są dla mnie świetne! dziękuję za poświęcenie czasu na podzielenie się wiedzą

    1.    KZKG ^ Gaara powiedział

      Przez lata wiele się nauczyłem w globalnej społeczności Linuksa ... od kilku lat też chciałem wnieść swój wkład, dlatego właśnie piszę 😀

  7.   Janus981 powiedział

    Dziękuję bardzo, nie wiesz, jak mi to pomaga, mam zamiar skonfigurować serwer i dla mnie świetnie.

    pozdrowienia

    1.    KZKG ^ Gaara powiedział

      Po to nam pomagamy 😉

  8.   Jan Ventura powiedział

    Świetny artykuł! Nie wiedziałem o tym i bardzo mi to pomaga (używam RackSpace, który używa KVM, więc pasuje mi jak ulał!). Dodano do ulubionych.

    1.    KZKG ^ Gaara powiedział

      Dzięki za komentarz 🙂

  9.   Algawa powiedział

    Como siempre DesdeLinux przynosi nam doskonałe posty z samouczkami, które są naprawdę przydatne do wprowadzenia w życie, dzięki za udostępnienie! 🙂

    1.    KZKG ^ Gaara powiedział

      Dziękuję za komentarz 🙂
      Tak, zawsze staramy się zaspokoić to pragnienie wiedzy, które mają nasi czytelnicy 😀

  10.   Timbleck powiedział

    Ciekawe, nie znałem opcji.
    Idź prosto do tuczu mojej biblioteki kotletów.
    Dzięki!

    1.    KZKG ^ Gaara powiedział

      Dla mnie przyjemność 😀
      pozdrowienia

  11.   Frederick. A. Valdés Toujague powiedział

    Pozdrowienia KZKG ^ Gaara !!! Ścisnąłeś. Wspaniały artykuł do zabezpieczania serwerów. @% * & ^ Nie ma pojęcia, że ​​coś takiego istnieje. Spróbuję tego. Dziękuję Ci

  12.   Biały naszyjnik ^ powiedział

    to jest świetne…. ^ - ^

  13.   LearnLinux powiedział

    Witam, czy mógłbyś wyjaśnić, jak zainstalować go w CentOS 5.x?

    Pobrałem rpm:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    Zainstalowano:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    Skonfiguruj plik konfiguracyjny na 15 sekund i port, którego używam do łączenia się przez ssh z moim vps

    Demon zaczyna:
    / usr / sbin / knockd &

    Ja telnet i nic port się nie zamyka, domyślnie port jest otwarty, ale się nie zamyka.

    czy robię coś źle?

  14.   cześć powiedział

    Mmmm, żądania telnetu do tych portów mogłyby zostać wyuczone przez administratora naszej sieci lokalnej lub przez naszego dostawcę usług, nie? Zablokowałoby to ludzi z zewnątrz, ale nie ich, więc gdyby chcieli aktywować nasz port, mogliby to zrobić, ponieważ zobacz żądania, które wykonujemy, powiedzmy, że chroni, ale nie w 100%

    1.    Roberto powiedział

      Może tak być, ale nie sądzę, aby sobie wyobrażali, że określony telnet wykonuje akcję X. Chyba że widzą, że są stosowane te same wzorce telnetu.

  15.   Pabla Andresa Diaza Aramburo powiedział

    Ciekawy artykuł, mam pytanie. Myślę, że w obrazie pliku konfiguracyjnego jest błąd, ponieważ jeśli dobrze przeanalizujesz, w obu wierszach polecenia używasz ACCEPT w Iptables. Myślę, że jeden powinien być ZAAKCEPTOWANY, a drugi ODRZUĆ.

    W przeciwnym razie doskonała inicjatywa. Bardzo dziękuję za poświęcenie czasu na przedstawienie innym swojej wiedzy.

    pozdrowienia