INSTALACJA I KONFIGURACJA SSH
Agata Gałczyńska, agatag@alan.umcs.lublin.pl

instalacja SSH | konfiguracja sshd | konfiguracja ssh

Instalacja SSH pod Linuxem:

Do instalacji oprogramowania dostarczonego w formie źródłowej niezbędny jest kompilator C, oraz podstawowe narzędzia dostarczane z większością systemów unixowych.

  1. Należy rozpakować archiwum
    gzip -cd ssh-1.2.26.tar.gz | tar xvf -
  2. Następnie należy uruchomić skrypt konfiguracyjny, który sprawdzi środowisko kompilacji (dostępne narzędzia systemowe, ścieżki dostępu, wersje i zawartość bibliotek systemowych) i przygotuje odpowiednie pliki konfiguracyjne.
    cd ssh-1.2.26
    ./configure

    Wywołując skrypt configure z dodatkowymi opcjami można np. zmienić miejsce instalacji plików konfiguracyjnych lub binariów SSH, jednak w przeważającej większości przypadków ustawienia domyślne są poprawne, i takie będą stosowane w przykładach.
  3. Po skonfigurowaniu pakietu należy go skompilować i zainstalować.
    make
    a następnie, jako root
    make install

    W trakcie instalacji utworzone zostają następujące pliki:

Dodatkowo do podkatalogów w hierarchii /usr/local/man zostaną zainstalowane strony dokumentacji do poszczególnych komend plików konfiguracyjnych.

Konfiguracja serwera SSH:

Głównym elementem serwera SSH jest demon sshd. Zastępuje on dwa programy, które znajdują się w większości dystrybucji: rlogin i rsh. Służy do prowadzenia bezpiecznej (kodowanej) komunikacji pomiędzy dwoma komputerami w sieci.

Sshd odczytuje konfigurację z /etc/ssh/sshd_config (lub z pliku określonego w linii poleceń, w opcji -t). Plik ten zawiera pary: klucz - wartość. Każda z nich jest zapisana w jednej linii. Linie puste i zaczynające się od znaku '#' są traktowane jako komentarz i są pomijane.

Opis pliku konfiguracyjnego serwera ssh1 - /etc/ssh/sshd_config:

# This is ssh server systemwide configuration file.
Port 22
domyślny port dla ssh to właśnie 22
ListenAddress 148.81.XXX.XXX adres, gdzie jest zainstalowany serwer (demon) sshd obsługujący ssh1.Ustawienie jest istotne przy systemach o kilku kartach sieciowych (na przykład rutery lub bramki). Najwygodniej ustawić wtedy adres IP tej karty sieciowej, do której połączenia będą częstsze lub do karty od strony sieci zewnętrznej.
HostKey /etc/ssh_host_key  
RandomSeed /etc/ssh_random_seed
Położenie pliku z kluczem oraz parametrem losowym
KeyRegenerationInterval 3600 Co pewien czas następuje odnowienie klucza maszyny. Ten czas (w sekundach) ustawia się właśnie za pomocą tej opcji. Domyślnie - 1 godzina.
PermitRootLogin no Czy root może się zalogować zdalnie za pomocą ssh. Patrz uwagi dalej.
IgnoreRhosts yes
IgnoreRootRhosts yes
RhostsAuthentication no
RhostsRSAAuthentication no
Ignorowanie plików .rhosts, które wskazują "zaufane" maszyny, skąd mógłby się zalogować użytkownik bez podawania hasła oraz zezwalanie na autentykację za pomocą mechanizmu rhosts.
PrintMotd yes Czy wypisywać komunikat powitania (motd - najczęściej /etc/motd)
X11Forwarding yes
XAuthLocation /usr/bin/X11/xauth
Czy przekazywać dane połączenia X11 (graficznego) i za pomocą którego programu dokonywać autentykacji użytkownika w środowisku graficznym X-Windows
# {Allow,Deny}Users | Groups
DenyGroups student
Zezwolenie na logowanie się za pomocą ssh. Patrz dalej.
# najbezpieczniejsza jest autentykacja RSA (tylko) - a reszta no
RSAAuthentication yes
Wybór metody autentykacji. Włączyć TYLKO RSA.
PasswordAuthentication yes
PermitEmptyPasswords no
IdleTimeout 30m
Autentykacja za pomocą haseł - włączanie, zezwolenie na puste hasła oraz czas rozłączania podczas oczekiwania na podanie hasła (tutaj- 30 minut).
# AllowHosts *.our.com friend.other.com
DenyHosts  home.pl *.algonet.se krakow.tpnet.pl opole.tpnet.pl
Z których maszyn można się łączyć za pomocą ssh. Patrz dalej.
CheckMail no Czy po zalogowaniu ma się odbywać sprawdzanie poczty.
AllowTcpForwarding no Przy takim ustawieniu nie jest możliwe tunelowanie ftp, ale maszyna jest bezpieczniejsza.
AccountExpireWarningDays 30 Powiadamianie o kończeniu się ważności konta (dni)
PasswordExpireWarningDays 14 Powiadamianie o kończeniu się ważności hasła (dni)
ForcedPasswdChange yes Wymuszanie zmiany już nieważnego hasła

Konfiguracja klienta SSH:

Ogólnosystemowa konfiguracja klienta ssh znajduje się w pliku /etc/ssh/ssh_config, zaś opcje konfiguracyjne sprawdzane są w następującej kolejności:

  1. opcje podane w linii komend
  2. plik konfiguracyjny użytkownika ($HOME.ssh/config)
  3. plik ogólnosystemowy

Opis pliku konfiguracyjnego klienta ssh1 - /etc/ssh/ssh_config:

Hosts * Otwiera sekcję dotyczącą połączeń do danego hosta - * oznacza wszystkie hosty
ForwardAgent yes Określa, czy agent autentykacyjny ma być przekazywany na kolejne systemy na które następuje logowanie
ForwardX11 yes Zezwala na automatyczne przekazywanie połączeń X11 ponad szyfrowanym kanałem SSH
RhostsAuthentication no
RhostsRSAAuthentication no
Zezwalanie na autentykację za pomocą mechanizmu rhosts.
PasswordAuthentication yes Autentykacja za pomocą haseł
RSAAuthentication yes
TISAuthentication no
Wybór metody autentykacji (wybrać tylko RSA)
PasswordPromptHost yes
PasswordPromptLogin yes
Czy program ma pytać o hasła. 
FallBackToRsh no
UseRsh no
Możliwość użycia rsh w przypadku niepowodzenia połączenia za pomocą ssh. Można włączać, ale administrator zdalnej maszyny prawie na pewno to wyłączył.
BatchMode no Możliwość użycia ssh w trybie wsadowym. Wyłączyć gdy nie jest koniecznie potrzebne. Może się przydać tylko w kilku przypadkach.
EscapeChar ~ Jaki znak powoduje wyjście z połączenia (jak w telnecie ctrl+])
Cipher 3DES Algorytm stosowany do szyfrowania przy połączeniu ze zdalną maszyną. 
Compression yes
CompressionLevel 9
Kompresja - domyślnie jest włączona, poziom - 6. Dziewięć jest najwyższym, 0 wyłącza.
IdentityFile ~/.ssh/identity Położenie i nazwa pliku identyfikacji