Ciekawa wskazówka dotycząca poprawy bezpieczeństwa SSH

Tym razem zobaczymy krótka i prosta wskazówka które pomogą nam ulepszyć bezpieczeństwo naszych zdalnych połączeń z SSH.


OpenSSH, który jest pakietem dostarczanym przez systemy GNU / Linux do obsługi połączeń SSH, ma szeroką gamę opcji. Czytanie książki SSH Bezpieczna powłoka a na stronach podręcznika znalazłem opcję -F, która mówi klientowi SSH, aby użył innego pliku konfiguracyjnego niż ten znaleziony domyślnie w katalogu / etc / ssh.

Jak korzystamy z tej opcji?

W następujący sposób:

ssh -F / path / to_your / configuration / file user @ ip / host

Na przykład, jeśli mamy niestandardowy plik konfiguracyjny o nazwie my_config na pulpicie i chcemy połączyć się z użytkownikiem Carlos do komputera z adresem IP 192.168.1.258, to użylibyśmy następującego polecenia:

ssh -F ~ / Desktop / my_config carlos@192.168.1.258

W jaki sposób pomaga to w zabezpieczeniu połączenia?

Przypomnijmy, że osoba atakująca znajdująca się w naszym systemie będzie natychmiast próbowała uzyskać uprawnienia administratora, jeśli jeszcze ich nie ma, więc wykonanie ssh w celu połączenia się z pozostałymi maszynami w sieci byłoby dla niego dość łatwe. Aby tego uniknąć, możemy skonfigurować plik / etc / ssh / ssh_config z niepoprawnymi wartościami, a gdy będziemy chcieli połączyć się przez SSH użyjemy pliku konfiguracyjnego, który zapiszemy w lokalizacji, którą tylko znamy (nawet na zewnętrznym urządzenie pamięci masowej), to znaczy, że bylibyśmy chronieni ciemnością. W ten sposób atakujący byłby zdziwiony, gdyby stwierdził, że nie może połączyć się za pomocą SSH i że próbuje nawiązać połączenia zgodnie z tym, co jest określone w domyślnym pliku konfiguracyjnym, więc trudno mu będzie zorientować się, co się dzieje, a my bardzo skomplikuje mu pracę.

Dodano to, aby zmienić port nasłuchiwania serwera SSH, wyłączyć SSH1, określić, którzy użytkownicy mogą łączyć się z serwerem, wyraźnie zezwolić, który adres IP lub zakres adresów IP może łączyć się z serwerem i inne wskazówki, które możemy znaleźć w http://www.techtear.com/2007/04/08/trucos-y-consejos-para-asegurar-ssh-en-linux pozwolą nam zwiększyć bezpieczeństwo naszych połączeń SSH.

Wszystko opisane powyżej można zrobić w jednej linii. Jak na mój gust, pisanie dużej linii z wieloma opcjami za każdym razem, gdy próbujemy zalogować się przez SSH do zdalnego komputera, byłoby dość uciążliwe, na przykład poniżej byłby przykład tego, co mówię:

ssh -p 1056 -c blowfish -C -l carlos -q -i ja 192.168.1.258

-p Określa port, z którym należy się połączyć na zdalnym hoście.
-c Określa, w jaki sposób sesja ma być szyfrowana.
-C Wskazuje, że sesja powinna zostać skompresowana.
-l Wskazuje użytkownika, za pomocą którego należy zalogować się do zdalnego hosta.
-q Wskazuje, że komunikaty diagnostyczne są pomijane.
-i Wskazuje plik do zidentyfikowania za pomocą (klucz prywatny)

Musimy również pamiętać, że moglibyśmy wykorzystać historię terminala, aby uniknąć konieczności wpisywania całej komendy za każdym razem, gdy jej potrzebujemy, z czego atakujący również mógłby skorzystać, więc nie polecałbym tego, przynajmniej w użyciu Połączenia SSH.

Chociaż kwestia bezpieczeństwa nie jest jedyną zaletą tej opcji, mogę pomyśleć o innych, takich jak posiadanie pliku konfiguracyjnego dla każdego serwera, z którym chcemy się połączyć, więc unikniemy zapisywania opcji za każdym razem, gdy chcemy nawiązać połączenie serwer SSH o określonej konfiguracji.

Użycie opcji -F może być bardzo przydatne w przypadku kilku serwerów o różnej konfiguracji. W przeciwnym razie wszystkie ustawienia będą musiały zostać zapamiętane, co jest praktycznie niemożliwe. Rozwiązaniem byłoby posiadanie pliku konfiguracyjnego doskonale przygotowanego zgodnie z wymaganiami każdego serwera, ułatwiającego i zapewniającego dostęp do tych serwerów.

W tym linku http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config Możesz dowiedzieć się, jak edytować plik konfiguracyjny klienta SSH.

Pamiętaj, że to jeszcze jedna wskazówka z setek, które możemy znaleźć, aby zapewnić SSH, więc jeśli chcesz mieć bezpieczne połączenia zdalne, musisz połączyć możliwości, które oferuje nam OpenSSH.

Na razie to wszystko, mam nadzieję, że te informacje ci pomogą i czekam na kolejny post o bezpieczeństwie SSH w przyszłym tygodniu.

Uwaga: jeśli chcesz przeczytać książkę „SSH The Secure Shell”, koniecznie zapoznaj się ze stronami podręcznika wersji, którą zainstalowałeś, ponieważ książka jest dość opóźniona pod względem opcji obsługiwanych przez OpenSSH.
Dzięki Izkalotl za wkład!
Zainteresowany wnieść swój wkład?

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.   HacKan & CuBa co. powiedział

    co? Chyba odnosisz się do innego postu, bo nie rozumiem, o czym wspominasz. Ten post zawiera małą wskazówkę do zastosowania przy nawiązywaniu połączenia z komputerem, nie odnosi się do zmiany jakiejkolwiek jego konfiguracji, ani do rozwiązywania czegokolwiek, jeśli komuś uda się wejść. Chodzi o to, aby komunikacja między komputerami była bezpieczna, z pominięciem domyślnych parametrów, które mogą nie zapewniać odpowiedniego poziomu bezpieczeństwa.
    Pukanie do portów jest interesujące w ograniczaniu ataków (nie zapobiega im całkowicie, ale robi swoje), chociaż wydaje mi się trochę niewygodne w użyciu ... Po prostu nie mam z tym dużego doświadczenia.
    Istnieje kilka programów, które skanują dzienniki w celu zablokowania dostępu przez adres IP w przypadku wykrycia nieprawidłowego logowania.
    Najbezpieczniej jest używać logowania bez hasła przy użyciu plików kluczy.

    Pozdrowienia!

  2.   HacKan & CuBa co. powiedział

    co? Chyba odnosisz się do innego postu, bo nie rozumiem, o czym wspominasz. Ten post zawiera małą wskazówkę do zastosowania przy nawiązywaniu połączenia z komputerem, nie odnosi się do zmiany jakiejkolwiek jego konfiguracji, ani do rozwiązywania czegokolwiek, jeśli komuś uda się wejść. Chodzi o to, aby komunikacja między komputerami była bezpieczna, z pominięciem domyślnych parametrów, które mogą nie zapewniać odpowiedniego poziomu bezpieczeństwa.
    Pukanie do portów jest interesujące w ograniczaniu ataków (nie zapobiega im całkowicie, ale robi swoje), chociaż wydaje mi się trochę niewygodne w użyciu ... Po prostu nie mam z tym dużego doświadczenia.
    Istnieje kilka programów, które skanują dzienniki w celu zablokowania dostępu przez adres IP w przypadku wykrycia nieprawidłowego logowania.
    Najbezpieczniej jest używać logowania bez hasła przy użyciu plików kluczy.

    Pozdrowienia!

  3.   HacKan & CuBa co. powiedział

    Również ssh będzie szukał domyślnej konfiguracji użytkownika w ~ / .ssh / config
    Chyba że demon został skonfigurowany tak, aby tego nie robić, ale domyślnie tak.
    Ważne jest, aby wziąć pod uwagę algorytm używany do mieszania, z opcją -m; Polecam hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 jako te, które zapewniają najlepsze bezpieczeństwo. Uważaj, ponieważ domyślnie używa MD5 (lub miejmy nadzieję, że sha1) !! są to rzeczy, których nie rozumiemy….
    W każdym razie dobrym pomysłem byłoby uruchomienie go z:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    z -c określasz używany algorytm szyfrowania, gdzie ctr (tryb licznika) są najbardziej zalecane (aes256-ctr i aes196-ctr), a jeśli nie cbc (łańcuch bloków szyfrowania): aes256-cbc, aes192-cbc , blowfish-cbc, cast128-cbc

    Pozdrowienia!

  4.   HacKan & CuBa co. powiedział

    Również ssh będzie szukał domyślnej konfiguracji użytkownika w ~ / .ssh / config
    Chyba że demon został skonfigurowany tak, aby tego nie robić, ale domyślnie tak.
    Ważne jest, aby wziąć pod uwagę algorytm używany do mieszania, z opcją -m; Polecam hmac-sha2-512, hmac-sha2-256, hmac-ripemd160 jako te, które zapewniają najlepsze bezpieczeństwo. Uważaj, ponieważ domyślnie używa MD5 (lub miejmy nadzieję, że sha1) !! są to rzeczy, których nie rozumiemy….
    W każdym razie dobrym pomysłem byłoby uruchomienie go z:
    ssh -p PORT -c aes256-ctr -m hmac-sha2-512 -C IP
    z -c określasz używany algorytm szyfrowania, gdzie ctr (tryb licznika) są najbardziej zalecane (aes256-ctr i aes196-ctr), a jeśli nie cbc (łańcuch bloków szyfrowania): aes256-cbc, aes192-cbc , blowfish-cbc, cast128-cbc

    Pozdrowienia!

  5.   iwaan11 powiedział

    chciałem, aby nikt nie miał dostępu do mojego komputera i nie mógł nim zdalnie sterować
    to rozumiem z twoich słów, że jeśli nie otworzę portu, to przynajmniej w ten sposób nie będzie dostępu

    mercii za odpowiedź!

  6.   iwaan11 powiedział

    holaa
    Zastosowałem się do niektórych sztuczek i mam pytanie! spośród opcji również zmieniłem
    Port dla innego portu różni się od tradycyjnego.Jeśli nie otworzę tego portu na routerze, nie będzie można połączyć się z moim komputerem? czy zostanie przekierowany na inny port?

    Nie muszę nawiązywać żadnego zdalnego połączenia, więc chciałem wiedzieć, co byłoby bardziej efektywne, gdyby otworzyć port lub pozostawić go zablokowanym.

    Czekam na odpowiedzi!

  7.   Serge Weizenegger powiedział

    > Najbezpieczniej jest używać logowania bez hasła przy użyciu plików kluczy.
    Dokładnie to chciałem powiedzieć ... że jedynym sposobem na zalogowanie się do różnych komputerów jest klucz, który jest na pendrivie zawieszonym na szyi 😉
    Atakujący może zmarnować całe życie, próbując brutalnie złamać hasło i nigdy nie zda sobie sprawy, że nie potrzebuje hasła, ale plik XD.

  8.   Linux izkalotl powiedział

    Nie jestem ekspertem w dziedzinie bezpieczeństwa i sieci, ale aby naruszyć twój system bezpieczeństwa logowaniem bez hasła, wystarczyłoby po prostu zrobić skrypt kopiujący twój klucz przechowywany na pendrive po zamontowaniu, aby w ciągu kilku sekund miałbyś dostęp z własnym kluczem do zdalnego serwera (i oczywiście bez konieczności podawania hasła), problem z brakiem hasła polega na tym, że czujesz fałszywe bezpieczeństwo, ponieważ jak widać po kilku liniach w skrypcie, byłoby to bardzo łatwo przejąć kontrolę nad zdalnymi serwerami. Pamiętaj, że osoba atakująca nie będzie tracić czasu ani zasobów na próby złamania haseł, jeśli istnieje krótszy sposób na złamanie zabezpieczeń. Zalecam skorzystanie z co najmniej 20 opcji, które SSH pozwala skonfigurować, a to dodaje coś takiego jak TCP Wrappers, dobry Firewall i nawet wtedy twój serwer nie byłby w 100% chroniony, najgorszym wrogiem w kwestiach bezpieczeństwa jest zaufanie.

  9.   Gorlok powiedział

    Jest to interesujące, chociaż nie jestem pewien rzeczywistej korzyści, ponieważ mówimy o tym, że mówimy tylko o utrudnianiu sprawy, gdy atakujący już dołączył do zespołu, i dodaniu większej złożoności administratorom.
    Uważam, że technika honeypot jest bardziej przydatna do ostrzegania (i podejmowania działań?) O podejrzanej aktywności lub pewnego rodzaju piaskownicy, która ogranicza działania napastnika.
    Albo szukałbym innych rodzajów technik, które pozwalają uniknąć wejścia, takich jak pukanie do portu.
    Dziękuję również za udostępnienie go i rozpoczęcie debaty.