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.
No i póki co artykuł… Nie jestem ekspertem w tej kwestii, ale chciałem podzielić się z Wami tym ciekawym procesem.
Pozdrowienia 😀
Ś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 ^ _ ^
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
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.
Ś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
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ą ^ _ ^
Dodano do Ulubionych! : D!
Dzięki!
Dzięki 😀
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.
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
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.
Rzeczywiście, musimy otworzyć porty i przekierować je do komputera, do którego dzwonimy.
Szkoda.
Ś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ą
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ę 😀
Dziękuję bardzo, nie wiesz, jak mi to pomaga, mam zamiar skonfigurować serwer i dla mnie świetnie.
pozdrowienia
Po to nam pomagamy 😉
Ś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.
Dzięki za komentarz 🙂
Como siempre DesdeLinux przynosi nam doskonałe posty z samouczkami, które są naprawdę przydatne do wprowadzenia w życie, dzięki za udostępnienie! 🙂
Dziękuję za komentarz 🙂
Tak, zawsze staramy się zaspokoić to pragnienie wiedzy, które mają nasi czytelnicy 😀
Ciekawe, nie znałem opcji.
Idź prosto do tuczu mojej biblioteki kotletów.
Dzięki!
Dla mnie przyjemność 😀
pozdrowienia
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
to jest świetne…. ^ - ^
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?
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%
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.
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