Przy dużej liczbie Raspberry Pis na wolności i faktu, że duże ich grupy są skonfigurowane identycznie (gdy zainstalowana jest nowo flashowana karta SD z jednym z niewielu dostępnych obrazów), prawdopodobnie będą one kuszącym celem dla złośliwe oprogramowanie, w tym botnety.
Co można zrobić, aby to złagodzić?
Jest dość dobrze znane, że należy zmienić hasło użytkownika „pi” (Debian) i „root” (Arch.) Ale co z innymi kontami systemowymi (np. „Tli”, „pnd”?) Czy któreś z nich ma uniwersalne hasła, które są prawdopodobnie takie same dla wszystkich jednostek?
I czy są jakieś znane luki w zabezpieczeniach innych pakietów zainstalowanych w obrazach SD dostępnych dla Pi (np. Z powodu ograniczeń sprzętowych lub wycinanych wersji tych pakietów?)
W szczególności martwię się o ssh
mysql i wszelkie inne usługi, które mogą być uruchomione na nowo zainstalowanym obrazie.
źródło
su
do nich podejść.vipw
; czy to zły pomysł? Nie, nie jest. +1 za sugerowanie używaniavipw
.Istnieje wiele sposobów usunięcia luk w zabezpieczeniach, jednak pierwszą rzeczą, którą powinieneś wiedzieć jest to, że Linux nie jest tak podatny na włamanie, jak inne systemy operacyjne. Wynika to głównie z braku złośliwego oprogramowania atakującego * NIX. Niemniej jednak chcesz wiedzieć, w jaki sposób można uzyskać dostęp do twojego systemu.
Hasła
Po pierwsze, należy zmienić domyślne hasła dla wszystkich użytkowników, którzy mogą się zalogować. W przypadku Debiana jest to tylko domyślny użytkownik Pi . W przypadku Arch Linux jest to superużytkownik root . Hasła są zmieniane po zalogowaniu jako użytkownik, wpisując
passwd
w wierszu polecenia.Zaleca się stosowanie bezpiecznych haseł, ponieważ przeprowadzanie ataków słownikowych na domyślnego użytkownika byłoby dość proste. Wybierz przyzwoite hasło o średniej długości.
Zapomnienie
Zdalny dostęp jest prawdopodobnie najważniejszą luką bezpieczeństwa. To, czego możemy tutaj użyć, nazywa się bezpieczeństwem przez zaciemnienie . Powszechną metodą ataku jest skanowanie zakresu adresów IP w poszukiwaniu otwartych portów. Jednym z najprostszych środków zaradczych, jakie możemy podjąć, jest bycie użytkownikiem, który nie korzysta z domyślnych portów .
Wszystko, co należy tutaj zrobić, to zmienić domyślne porty dla często używanych protokołów. Na przykład domyślny port SSH to 22, a FTP to 21. W moim systemie SSH używa 222 i FTP 221, co powinno ukrywać te protokoły przed jakimkolwiek zautomatyzowanym atakiem.
Bezpieczeństwo połączenia
Po pierwsze, najważniejszym problemem związanym z bezpieczeństwem jest to, że konto root nie powinno być w stanie zalogować się przez SSH. Możesz wyłączyć logowanie użytkownika root w
/etc/ssh/sshd_config
pliku, komentując lub usuwając ten wiersz:Domyślnie powinna być ustawiona na no, ale najlepiej się upewnić.
Jeśli często korzystasz z SSH i martwisz się atakami typu „mężczyzna w środku”, atakami słownikowymi na hasło, możesz użyć
SSH Keys
.Uwierzytelnianie oparte na kluczach ma kilka zalet w porównaniu z uwierzytelnianiem za pomocą hasła, na przykład wartości kluczy są znacznie trudniejsze do użycia z użyciem siły, niż zwykłe hasła.
Aby skonfigurować uwierzytelnianie klucza SSH, musisz najpierw utworzyć parę kluczy. Najłatwiej to zrobić na komputerze klienckim (maszynie, z którą chcesz uzyskać dostęp do Pi).
Jak widać, utworzono dwa pliki, klucz prywatny
id_rsa
i klucz publicznyid_rsa.pub
.Klucz prywatny jest znany tylko tobie i należy go bezpiecznie chronić . Natomiast klucz publiczny może być swobodnie współdzielony z dowolnym serwerem SSH, z którym chcesz się połączyć.
Chcielibyśmy więc skopiować klucz publiczny na Raspberry Pi. Możemy to zrobić bardzo łatwo:
Gdzie
pi
jest nazwa użytkownika Raspberry Pi iaddress
adres IP Pi.Powtarzam, dystrybuujemy klucz publiczny . Klucz prywatny jest twój. Trzymaj się mocno, aby zwolnić ten klucz, narusza bezpieczeństwo systemu.
Arch wiki ma doskonały opis tego, jak to działa:
Aby uzyskać więcej informacji na temat bezpieczeństwa uwierzytelniania za pomocą klucza publicznego, Wikipedia zawiera dokładne wyjaśnienie .
Dzięki zastosowanym zabezpieczeniom SSH możesz wykonać ogromną ilość zaszyfrowanych, bezpiecznych transferów danych. W razie potrzeby praktycznie każde inne połączenie z portem może być kierowane przez SSH. Możesz nawet przesłać sesję X przez SSH, aby pojawiła się na innym komputerze.
Jako interesujący przykład, wczoraj uruchomiłem Eclipse na moim pulpicie, przeglądałem go na moim Raspberry Pi oraz kontrolowałem mysz i klawiaturę z mojego Netbooka. Taka jest siła SSH.
Uprawnienia
Uprawnienia do plików stanowią sedno systemu bezpieczeństwa Linux. Wpływają na to, kto może zobaczyć twoje pliki i foldery, i mogą być bardzo ważne w ochronie twoich danych. Na przykład zaloguj się do Raspberry Pi jako zwykły użytkownik i uruchom:
shadow
Plik zawiera zaszyfrowane hasła dla użytkowników systemu, więc nie chcemy po prostu o nikogo spojrzeć na to! Powinieneś zobaczyć tę odpowiedź:Możemy zrozumieć, dlaczego dzieje się tak, patrząc na uprawnienia do pliku:
To mówi nam, że plik jest własnością root, a tylko właściciel ma uprawnienia do odczytu / zapisu. Podzielmy ten wynik.
To jest stan uprawnień. Pierwszy bit mówi nam o typie pliku (
-
oznacza zwykły plik). Następne trzy bity reprezentują akcje dostępne dla właściciela pliku. Pozostałe trzy bity reprezentują grupę , a ostatnie trzy są dla innych lub dla wszystkich innych. Tak więc katalog z pełnymi uprawnieniami wyglądałby tak:To uprawnienia do odczytu, zapisu i wykonywania dla właściciela, grupy i wszystkich innych.
Kolejną ważną częścią są te dwa nazwiska. W naszym przypadku
root root
. Pierwszy użytkownik jest właścicielem pliku. Druga to grupa użytkowników . Na przykład często można zobaczyć:Umożliwiłoby to dostęp do odczytu / zapisu użytkownikowi
pi
w jego katalogu domowym oraz dostęp do odczytu dla wszystkich innych użytkowników.Uprawnienia najczęściej przywoływane i kontrolowane przy użyciu wartości ósemkowych. Na przykład, jeśli chcemy ustawić rw tylko dla właściciela, wpiszemy:
To jest podstawowe omówienie, aby uzyskać więcej informacji na temat uprawnień do plików w systemie Linux, oto dobry artykuł.
To zrozumienie jest ważne przy zabezpieczaniu plików i folderów. Powiedzmy, że właśnie skonfigurowaliśmy klucze SSH. Zdecydowanie nie chcemy, aby inni użytkownicy widzieli w naszym
~/.ssh
katalogu, w przeciwnym razie mogliby wziąć nasz klucz prywatny. W ten sposób usuwamy ich uprawnienia do odczytu:Mam nadzieję, że rozwiąże to niektóre z twoich obaw związanych z zabezpieczeniem Linuksa. Z tego powodu powinieneś zobaczyć, że jest to dość bezpieczny system i jeśli jesteś ostrożny, nie powinieneś mieć problemów z bezpieczeństwem.
źródło
Aby zapobiec atakom z użyciem siły, możesz zainstalować i skonfigurować
fail2ban
. Parsuje pliki dziennika (takie jak/var/log/auth.log
) i próbuje wykryć, czy kilka prób logowania się nie powiodło. Następnie automatycznie zablokuje źródłowe adresy IP za pomocąiptables
.Istnieje wiele poradników w Internecie.
źródło