Kompletny przewodnik po pliku Sshd_Config dla systemu Linux

Kompletny Przewodnik Po Pliku Sshd Config Dla Systemu Linux



Protokół SSH lub Secure Shell służy do zdalnego logowania do komputera i uruchamiania poleceń na komputerze zdalnym. Dane przesyłane za pomocą protokołu SSH są szyfrowane specjalnymi algorytmami, dzięki czemu SSH jest bezpieczniejszy niż Telnet. Zasadniczo OpenSSH jest narzędziem, które implementuje ten protokół.

Co omówimy?

W tym przewodniku przyjrzymy się różnym aspektom pliku konfiguracyjnego serwera OpenSSH. Zacznijmy teraz.







Pliki konfiguracyjne OpenSSH

Istnieje kilka podstawowych plików zarówno dla klienta, jak i serwera OpenSSH. Posiada dwa typy plików konfiguracyjnych:



1. Pliki związane ze stroną kliencką: Jednym z plików jest ssh_config. Jest to ogólnosystemowy plik konfiguracyjny. Ten plik znajduje się pod adresem /etc/ssh/ssh_config.



Drugi plik to config, który jest specyficznym dla użytkownika plikiem konfiguracyjnym znajdującym się w $HOME/.ssh/config.





Program SSH na hoście pobiera konfigurację z tych plików lub za pośrednictwem interfejsu wiersza poleceń. W przypadku wspomnianych wcześniej plików ogólnosystemowy plik konfiguracyjny, którym jest ssh_config, ma pierwszeństwo przed specyficznym dla użytkownika plikiem „config”.

2. sshd_config: Jest powiązany ze stroną serwera. Serwer OpenSSH odczytuje ten plik podczas uruchamiania.



Eksploracja sshd Plik konfiguracyjny

Plik konfiguracyjny sshd zawiera wiele dyrektyw, które można również dostosować. Spójrzmy na domyślny układ tego pliku:

$ kot / itp / ssh / sshd_config


# To jest ogólnosystemowy plik konfiguracyjny serwera sshd. Widzieć

# sshd_config(5), aby uzyskać więcej informacji.

Port 222
Adres nasłuchiwania 0.0.0.0
Adres słuchania ::
Klucz hosta / itp / ssh / ssh_klucz_hosta
Bity klucza serwera 768
LogowanieGraceTime 600

Interwał regeneracji klucza 3600
Zezwól na rootowanie tak
IgnorujRhosty tak
Ścisłe tryby tak
X11 Przekierowanie nr

AllowTcpForwarding nr
Zezwól na TTY nr
Przesunięcie wyświetlania X11 10
PrintMotd tak
Utrzymać przy życiu tak
SyslogFacility AUTH

INFORMACJE o poziomie dziennika
Numer uwierzytelnienia Rhosts
RhostsRSAAUwierzytelnianie nr
Uwierzytelnianie RSAA tak
Uwierzytelnianie hasła tak
AllowEmptyPasswords nie
SprawdźMail nr


Każda linia zaczynająca się od „#” jest traktowana jako komentarz. Przyjrzyjmy się niektórym z podanych parametrów:

1. Dyrektywa Port określa numer portu. Jest to numer portu, na którym sshd nasłuchuje połączeń. Wartość domyślna dla tego portu to 22, czyli wartość standardowa. Jednak w naszym przypadku zmieniliśmy go na 222.

Ponadto możemy określić więcej niż jedną dyrektywę Port. W ten sposób możemy używać wielu portów do nasłuchiwania połączeń sshd.

2. ListenAddress zawiera adres IP do nasłuchiwania. Domyślną akcją jest nasłuchiwanie na wszystkich adresach IP powiązanych z serwerem. Należy również zauważyć, że dyrektywa Port musi zastąpić dyrektywę ListenAddress.

3. W pełni kwalifikowana ścieżka pliku prywatnego klucza hosta RSA jest określona przez dyrektywę HostKey. W poprzednim przypadku ścieżka jest /etc/ssh/ssh_host_key .

4. Dyrektywa PermitRootLogin zezwala na logowanie użytkownika root do sshd, gdy jest ustawiona na tak. To powinno być ustawione na no, chyba że pliki hosts.allow i hosts.deny są używane do ograniczania dostępu do sshd.

5. Dyrektywa X11Forwarding zezwala na przekazywanie systemu X Window, gdy jest ustawiona na tak.

6. Który obiekt Syslog obsługuje sshd należy użyć jest określony za pomocą dyrektywy SyslogFacility. Zachowaj domyślną wartość bez zmian.

7. Poziom rejestrowania dla Syslog jest określany za pomocą dyrektywy LogLevel.

Zmienianie sshd Port

Domyślnie sshd lub demon serwera OpenSSH używa portu 22 protokołu TCP. Zaleca się zmianę tego numeru portu na inną wartość w środowisku testowym. Daje nam to pewność, że łączność z serwerem jest dostępna przez cały czas.

Dobrą praktyką jest również sprawdzenie składni konfiguracji nowego pliku sshd_config przed jego użyciem, niezależnie od tego, na jakim porcie działa. Aby sprawdzić składnię, możemy użyć następującego polecenia:

$ sshd -t


Należy również zauważyć, że tylko użytkownik root powinien mieć możliwość odczytu i zapisu w tym pliku. Oznacza to, że jeśli plik konfiguracyjny sshd_config jest odpowiednio zabezpieczony, uruchomienie poprzedniego polecenia wymaga uprawnień administratora.

Jeśli po uruchomieniu poprzedniego polecenia weryfikującego składnię nie pojawią się żadne dane wyjściowe, oznacza to, że plik jest w porządku.

Modyfikowanie domyślnego pliku konfiguracyjnego i portu

W niektórych przypadkach chcemy uruchomić nową instancję sshd na innym porcie. Może to być spowodowane tym, że port 22 jest już używany lub mogą istnieć pewne obszary ryzyka związane ze zmianą tego portu w środowisku produkcyjnym. W tego typu sytuacjach możemy stworzyć alternatywny plik konfiguracyjny dla naszego serwera.

Stwórzmy nowy plik sshd_config jako sshd_config_new. Ten plik może być używany do różnych parametrów serwera. Teraz określmy ten plik, który ma być traktowany jako nowy plik konfiguracyjny serwera na porcie numer 100:

$ Sudo / usr / sbin / sshd -f / itp / ssh / sshd_config_new -p 100


Demon sshd nasłuchuje teraz na porcie 100. Możemy użyć dowolnej wartości portu, ale nie tej, która jest już w użyciu.

Teraz sprawdźmy, czy nasz nowy port działa zgodnie z oczekiwaniami. W tym celu musimy użyć programu klienckiego ssh i uruchomić następujące polecenie:

$ / usr / kosz / ssh -p 100 < ip serwera >



Opcja „-p” określa port 100, który ma być używany na serwerze zdalnym. Jeśli testujemy lokalnie, możemy użyć adresu IP serwera jako adresu IP hosta lokalnego:

$ / usr / kosz / ssh -p 100 127.0.0.1

Rozwiązywanie problemów z konfiguracją OpenSSH

Czasami nasz serwer nie działa zgodnie z oczekiwaniami. W takich przypadkach możemy użyć flagi „-d”, aby rozwiązać problemy z konfiguracją serwera OpenSSH. Za pomocą flagi „-d” serwer wchodzi w tryb debugowania i obsługuje tylko jedno połączenie.

Dane wyjściowe generowane w trybie debugowania są pełne. Możemy użyć większej liczby flag „-d”, aby podnieść poziom debugowania. Uruchommy polecenie debugowania na naszym serwerze przy użyciu nowego pliku konfiguracyjnego:

$ / usr / sbin / sshd -d -p 100 -f / itp / ssh / sshd_config_new


Dane wyjściowe z poprzedniego polecenia są rejestrowane na stderr zamiast korzystać z funkcji AUTH syslogd.

Wniosek

Demon OpenSSH lub sshd to kluczowa część wielu infrastruktur administracyjnych. W związku z tym wymaga specjalistycznej wiedzy, aby zarządzać nim w celu uzyskania optymalnego działania. W tym artykule dowiedzieliśmy się o pliku konfiguracyjnym serwera OpenSSH, takim jak sshd_config.