Wiadomości

Jak chronić serwery SSH przed atakami?

2 listopada 2007 10:37,
Kamil Folga

Obserwujemy znaczną ilość prób włamań w dziennikach systemowych serwera SSH. Co możemy zrobić, aby lepiej chronić się przed atakami?

Ataki na usługę SSH stanowią od pewnego czasu masowe zjawiska. Atak możemy odkryć obserwując dzienniki / logi serwera. Typowy przebieg ataku wygląda następująco:

Aug 27 06:10:21 r1 sshd[5458]: Illegal user test from 192.168.100.2
Aug 27 06:10:26 r1 sshd[5460]: Illegal user guest from 192.168.100.2
Aug 27 06:10:22 r1 sshd[5462]: Illegal user admin from 192.168.100.2
Aug 27 06:10:28 r1 sshd[5464]: Illegal user admin from 192.168.100.2
Aug 27 06:10:23 r1 sshd[5466]: Illegal user user from 192.168.100.2

Jeżeli przejrzymy dzienniki systemowe, prawdopodobnie zobaczymy duża liczbę prób logowania się na konta o nazwach test, root, guest, admin, administrator. Atak słownikowy na usługę SSH, odnajduje przeważnie proste hasła, na kontach ze standardowymi nazwami i serwerach SSH uruchomionych na standardowych portach. W procesie zabezpieczeń przed tego typu atakami, koniecznością jest regularne sprawdzanie dzienników systemu i zapory ogniowej.

Dział Internet Storm Center organizacji SANS przedstawił raport z którego wynika, że ataki słownikowe na usługę SSH są coraz bardziej skoordynowane i przeważnie pochodzą z rozproszonych systemów. Istnieją jednak skuteczne metody chroniące przed takimi atakami.

Dobrym zwyczajem jest ograniczanie dostępu do usługi SSH, wyłącznie dla wybranych sieci/adresów IP. Jeżeli jest to możliwe, warto ograniczyć logowanie SSH dla specyficznych kombinacji par użytkownik/host. Nie zawsze istnieje taka możliwość, szczególnie gdy mamy do czynienia z użytkownikami przemieszczającymi się. Jeżeli jednak konieczne jest pozostawienie usługi SSH otwartej na świat, warto przenieść ją na port niestandardowy. Taka zmiana w niczym nie przeszkadza, a radykalnie zmniejszy ilość ataków. W przypadku wersji OpenSSH pracującej z systemem Linux/Unix, wystarczy zmienić deklarację "Port" w pliku /etc/ssh/sshd_config.

Niektóre zapory ogniowe posiadają funkcjonalność ograniczania dostępnej ilości błędnych prób logowania z indywidualnego systemu. Wykorzystanie programu fail2ban umożliwi automatyczne zablokowanie atakujących adresów IP, po przekroczeniu ustalonej liczby prób logowania. Alternatywnym rozwiązaniem jest wykorzystanie narzędzia tcpwrappers lub portsentry (http://sourceforge.net/projects/sentrytools/ ).

Dobrym pomysłem jest wyeliminowanie wszystkich zbędnych kont w systemie oraz wykorzystanie niestandardowych nazw dla kont utrzymywanych. Sytuacją idealną będzie odgórne przydzielenie każdemu użytkownikowi mocnego hasła, uniemożliwiającego przeprowadzenie pomyślnego ataku słownikowego na usługę.

Wraz ze wzrostem rozproszonych, koordynowanych ataków na SSH, bezpieczeństwo danego użytkownika/hasła maleje. Jeżeli nie ma możliwości ograniczania dostępu do SSH dla znanego zakresu adresów IP, ostateczną czynnością będzie edukacja użytkowników oraz wprowadzenie wymogu uwierzytelniania, bazującego na kluczach.
Ocena:
Twoja ocena:

Komentarze (4)

Kijaszek

27-05-2008 18:41

Braklo bardzo istotnej rzeczy - prawdziwego wykorzystania funkcji jakie daje nam SSH. Chodzi o autoryzacje po kluczach dsa/rsa. U mnie w firmie od kilku lat nie uzywamy hasel. Wogole :) SSH skonfigurowane jest tak, aby odrzucac automatycznie jaki kolwiek request za ktorym nie stoi proba autoryzacji po kluczach rsa/dsa. SSH nalezy skonfigurowac w taki sposob, aby mogli logowac sie tylko konkretni userzy (opcja AllowUsers), ktorzy maja wygenerowane klucze (prywatny, chroniony haslem + publiczny, znajdujacy sie w ich katalogu domowym .ssh). Takie rozwiazanie jest o wiele lepsze niz silne hasla. Wszak.. mozemy zadecydowac, zeby klucze mialy wielkosc np. 4096 bitow...

dzuk

15-11-2007 16:35

Brakuje mi w tym artykule konkretów. Chociaż jednego przykładu konfiguracji, wpisu w pliku konfiguracyjnym. Ciekawym rozwiązaniem wydaje się być zablokowanie logowania hasłowego na korzysz logowania z kluczem. Może to być jednak problematyczne w sieciach gdzie jeste duża liczba użytkowników logujących się przez terminal.

od autora

02-11-2007 14:37

Dziękuję za komentarz wskazujący możliwość zastosowania metody Port Knocking. Przedstawiona technika może znakomicie uzupełniać porady przedstawione w artykule.

siweq

02-11-2007 11:16

brakuje mi w tej poradzie co najmniej 2 kwestii: - wyłączenie logowania na konto administratora i innych użytkowników uprzywilejowanych - zastosowanie port knocking-u (np. [[http://doorman.sourceforge.net]]) jako niezłej metody "utwardzającej" serwer SSH. K.

Reklama

Huawei celuje w rynek biznesowy

Huawei nieustannie rozwija się jako dostawca infrastruktury dla branży telekomunikacyjnej. W tym roku chiński koncern zamierza umocnić swoją pozycję również na rynku rozwiązań Enterprise.


Polecane

Koniec Windows XP początkiem problemów?

Microsoft oficjalnie potwierdził, że za dwa lata definitywnie zakończy się era Windows XP - systemu operacyjnego,...


Spokój i luz administratora

Wymagania wobec pracowników działów IT rosną proporcjonalnie do stopnia rozwoju teleinformatyki. Oczekuje się, że...


04-204 Warszawa ul. Jordanowska 12
tel.: (+48 22) 321 78 00 fax: (+48 22) 321 78 88
© copyright 2011 IDG Poland SA