- 1. Jak edytować plik ssh_config systemu Linux
- 2. Jak zablokować pliki Linux SSH?
- 3. Jak potwierdzić protokół SSH w wersji 2 Linux
- 4. Jak wyłączyć puste hasła SSH Linux
- 5. Jak wyłączyć logowanie root przez SSH Linux?
- 6. Jak ustawić nowy port Linux SSH?
- 7. Jak ograniczyć dostęp do SSH Linux
- 8. Jak zaktualizować czas prolongaty SSH Linux
- 9. Jak utworzyć alias SSH Linux
- 10. Uwierzytelnianie za pomocą bezpiecznych kluczy SSH Linux
Jednym z najczęściej używanych protokołów na poziomie bezpieczeństwa do nawiązywania połączeń w środowiskach UNIX jest protokół SSH (Secure Shell), który oferuje nam szereg funkcjonalności i specjalnych cech do ochrony danych i wykonanych połączeń.
SSH to protokół, który został opracowany z myślą o bezpieczeństwie komunikacji pomiędzy dwoma systemami poprzez model klient/serwer i dzięki któremu użytkownicy mogą łączyć się zdalnie z hostem.
Jedną z głównych cech protokołu SSH jest to, że szyfruje sesję połączenia, co uniemożliwia każdemu użytkownikowi uzyskanie niezaszyfrowanych haseł.
Rodzaje ochronyKorzystając z protokołu SSH będziemy mieć do czynienia z następującymi rodzajami ochrony:
- Po nawiązaniu początkowego połączenia klient może sprawdzić, czy łączy się z tym samym serwerem, z którym wcześniej się łączył
- Klient wysyła informacje uwierzytelniające do serwera za pomocą 128-bitowego szyfrowania
- Wszystkie dane wysyłane i odbierane podczas sesji są przesyłane przy użyciu 128-bitowego szyfrowania, co utrudnia odszyfrowanie i odczytanie
- Klient ma możliwość przekazywania aplikacji X11 z serwera, jest to technika zwana przekazywaniem X11, która zapewnia bezpieczne sposoby korzystania z aplikacji graficznych w sieci lokalnej lub zewnętrznej.
Teraz w systemach operacyjnych Linux plik konfiguracyjny SSH znajdujemy w ścieżce /etc/ssh/ssh_config i dzięki temu plikowi będzie można przeprowadzić wszelkie zabezpieczenia połączeń SSH.
POWIĘKSZAĆ
W przypadku systemów macOS ten plik znajduje się w ścieżce / private / etc / ssh / ssh_config i zawiera dowiązanie symboliczne do / etc / ssh / ssh_config w celu zapewnienia zgodności.
Podczas edycji tego pliku musimy pamiętać o następujących kwestiach.
- Puste linie i linie zaczynające się od '#' są komentarzami
- Każdy wiersz zaczyna się od słowa kluczowego, po którym następuje argument (y)
- Opcje konfiguracji mogą być oddzielone spacjami lub opcjonalnymi spacjami i znakiem =
- Argumenty mogą być ujęte w cudzysłowy ("), aby określić argumenty zawierające spacje
1. Jak edytować plik ssh_config systemu Linux
Aby edytować ten plik w celu ustalenia odpowiednich wartości, musimy wykonać za pomocą edytora:
sudo nano / etc / ssh / ssh_configZobaczymy:
POWIĘKSZAĆ
Plik ssh_config jest zorganizowany według hostów i tam każdy host zawiera określone ustawienia dla tego konkretnego hosta, tam możemy użyć symboli wieloznacznych, takich jak *, aby dopasować wiele nazw hostów za pomocą jednej instrukcji.
Niektóre parametry, których możemy użyć w tym pliku to:
GospodarzInstrukcje ograniczające, które dotyczą tylko hostów, które pasują do jednego ze wzorców podanych po słowie kluczowym.
DopasowanieOgranicz instrukcje, aby miały zastosowanie tylko do hostów spełniających określone kryteria
AdresRodzinaOkreśla, której rodziny adresów użyć podczas łączenia, poprawnymi argumentami są: any, inet, inet6.
Tryb wsadowyPrzy tej wartości zapytanie o hasło zostanie wyłączone, co pozwoli uniknąć przypadkowego zablokowania w żądaniu hasła
BindAdresOkreśla użycie adresu określonego na komputerze lokalnym jako adresu źródła połączenia.
WyzwanieOdpowiedźUwierzytelnianieWskazuje, czy używać uwierzytelniania typu wyzwanie-odpowiedź. Jest to przede wszystkim starsza metoda i została zastąpiona przez KbdInteractiveAuthentication
SprawdźHostIPPowiedz ssh, aby dodatkowo sprawdził adres IP hosta w pliku znane_hosts.
SzyfrOdnosi się do szyfrowania, które będzie używane do szyfrowania sesji w wersji protokołu 1.
SzyfryOkreśla dozwolone szyfry dla wersji 2 protokołu w kolejności preferencji.
Następnie zobaczymy kilka praktycznych wskazówek, jak poprawić bezpieczeństwo połączeń SSH z Linuksem, a tym samym uzyskać najlepszą wydajność dostępu.
2. Jak zablokować pliki Linux SSH?
Pierwszym krokiem przed edycją pliku jest upewnienie się, że zarówno plik ssh_config, jak i plik sshd_config mają właściciela i użytkownika skonfigurowanego jako root, ponieważ jest to superużytkownik Linuksa i nikt lepszy od niego nie jest właścicielem.
W tym celu wykonujemy następujące czynności:
sudo chown root: root / etc / ssh / sshd_config sudo chmod og-rwx / etc / ssh / sshd_config
3. Jak potwierdzić protokół SSH w wersji 2 Linux
Wersja 2 protokołu SSH ma ulepszony algorytm wymiany kluczy, który nie jest podatny na lukę w zabezpieczeniach w wersji 1, poprawiając w ten sposób ogólne bezpieczeństwo połączeń, więc idealnie jest potwierdzić, że nowy protokół 2 jest używany zamiast protokołu 1 i do tego musimy potwierdzić następującą linię w pliku ssh_config:
Protokół 2
POWIĘKSZAĆ
Tam możemy również skonfigurować protokół niejawnie za pomocą Ciphers, które automatycznie ustawią Protokół na 2, aby używać nowoczesnych szyfrów, w tym celu sprawdzamy następujący wiersz tuż pod wierszem Protokół:
Szyfry aes128-ctr, aes192-ctr, aes256-ctr
4. Jak wyłączyć puste hasła SSH Linux
Ważne jest, aby sprawdzić, czy każde konto SSH musi używać hasła podczas logowania, blokując puste hasła, które umożliwiałyby prosty dostęp powodując zagrożenie bezpieczeństwa w systemie, do sprawdzenia tego użyjemy następującej linii lub, jeśli nie istnieje, doda go, umieszczając symbol #:
Zezwól na pusteHasła nie
POWIĘKSZAĆ
5. Jak wyłączyć logowanie root przez SSH Linux?
Blokując logowanie użytkownika root, możliwe będzie zablokowanie określonych kont i uniemożliwienie ich używania w całym systemie, opcje PermitRootLogin obejmują „tak”, „bez hasła”, „tylko polecenia wymuszone” lub „nie”. Wartość domyślna to „tak”. Aby całkowicie zatrzymać logowanie roota, użyjemy następującej linii:
PermitRootZaloguj się nie
POWIĘKSZAĆ
6. Jak ustawić nowy port Linux SSH?
Domyślnie port przypisany do SSH to 22, aby atakujący wiedział z całą pewnością, przez który port uzyska dostęp w celu przeprowadzenia swoich ataków, więc dobrą metodą zabezpieczenia jest zmiana tego portu domyślnego i wskazanie tylko autoryzowanym użytkownikom nowego portu.
W tym celu musimy zlokalizować linię Port i dodać następującą składnię:
Port XXXX
POWIĘKSZAĆ
7. Jak ograniczyć dostęp do SSH Linux
W przypadku, gdy dostęp do serwera SSH składa się z kilku użytkowników, możliwe jest zastosowanie pewnych ograniczeń poprzez tworzenie grup, w których znajdują się ci użytkownicy, jest to możliwe poprzez dodanie słów kluczowych takich jak:
AllowUsers (Zezwalaj użytkownikom na dostęp) AllowGroups (Zezwalaj na dostęp do grup) DenyUsers (Ograniczenie dostępu użytkowników) DenyGroups (Ograniczenie dostępu do grup)Na przykład w pliku konfiguracyjnym możemy uruchomić:
AllowUsers Testy Solvetic Test DenyGroups
8. Jak zaktualizować czas prolongaty SSH Linux
Domyślnie czas, przez który użytkownik może pozostać nieaktywny bez logowania, to dwie minuty, aby zapobiec nieautoryzowanym połączeniom z systemem, czas ten można edytować w linii LoginGraceTime zwiększając lub zmniejszając tę pogodę:
ZalogujGraceTime 1m
POWIĘKSZAĆ
9. Jak utworzyć alias SSH Linux
W ramach konfiguracji SSH możliwe jest określenie aliasu, które pozwalają na połączenie się z konkretnym serwerem przez port i zdefiniowanymi użytkownikami, np. możemy dodać:
Host dev Nazwa hosta dev.solvetic.com Port 3333 Użytkownik SolveticW tym konkretnym przypadku musimy uzyskać dostęp w następujący sposób:
ssh [email protected] -p 3333
10. Uwierzytelnianie za pomocą bezpiecznych kluczy SSH Linux
ssh będzie znacznie bezpieczniejszy i bardziej użyteczny, gdy jest używany z parami kluczy publiczny/prywatny do celów uwierzytelniania, zamiast używania haseł. Plik ssh_config może zadeklarować konkretny klucz dla konkretnego hosta za pomocą klucza IdentityFile, w tym przypadku wpiszemy:
Host dev Nazwa hosta dev.solvetic.com Port 3333 Użytkownik Solvetic IdentityFile ~ / .ssh / dev.solvetic.keyW tym przypadku połączenie wyglądałoby następująco:
ssh -i ~ / .ssh / dev.solvetic.key [email protected] -p 3333Niektóre dodatkowe parametry to:
KompresjaTam możemy użyć wartości takich jak tak lub nie, aby umożliwić wyłączenie kompresji dla hosta.
Poziom dziennikaPozwala zdefiniować poziom szczegółowości logów dla klienta ssh, opcje to QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 i DEBUG3.
StrictHostKeyCheckingUstaw preferencję dodawania hostów do pliku znane_hosts.
W związku z tym mamy różne opcje poprawy bezpieczeństwa i łączności SSH w systemie Linux.