Ubuntu 20 sieciowy [MK, 20/21]
Lekcja 5. Uruchamianie usługi...   Konfiguracja serwera...
Instalacja, konfiguracja i korzystanie z serwera SSH

Instalacja, konfiguracja i korzystanie z serwera SSH

Teoria

Usługa SSH (Secure Shell) umożliwia połączenie się użytkownika ze zdalnym komputerem i wykonywanie na nim poleceń, ale, w odróżnieniu od telnet-u, sesja połączenia jest szyfrowana. Protokół SSH jest oparty na kryptografii klucza publicznego. W praktyce oznacza to, że do korzystania z SSH potrzebne są dwa klucze kryptograficzne: publiczny oraz prywatny. Dane przesyłane w czasie transmisji są szyfrowane za pomocą klucza publicznego, natomiast można je odszyfrować za pomocą klucza prywatnego. Klucz publiczny jest powszechnie dostępny, może być upubliczniony i przesyłany przez sieć. Z kolei klucz prywatny musi być dobrze chroniony i nigdy nie jest przesyłany przez sieć. Każda kombinacja klucz prywatny/publiczny jest niepowtarzalna.

Korzystanie z klienta SSH

Ze zdalnym komputerem łączymy się za pomocą polecenia: ssh pawel@jumper, gdzie pawel to nazwa użytkownika, a jumper to nazwa komputera, do którego będziemy się łączyć. Zamiast nazwy hosta można również użyć adresu IP: ssh pawel@172.22.2.100. Jeśli pracujemy w systemie Windows, to najpopularniejszym klientem SSH dla Windowsów jest program PuTTY.

Korzystanie z serwera SSH

Usługa SSH działa w architekturze klient-serwer. W systemie Ubuntu klient jest instalowany domyślnie. Serwer zaś można zainstalować poleceniem: sudo apt install ssh lub sudo apt install openssh-server. Do uruchomienia/zatrzymania/restartu serwera służy komenda sudo /etc/init.d/ssh z odpowiednim parametrem dodanym na końcu. Z kolei poleceniem sudo systemctl status ssh sprawdzamy czy w systemie jest zainstalowany i uruchomiony serwer SSH.

Serwer instalujemy poleceniem sudo apt install ssh. Po zainstalowaniu pakietów, serwerem SSH sterujemy poprzez polecenie sudo /etc/init.d/ssh z odpowiednim parametrem lub sudo service sshd. Plik konfiguracyjny serwera SSH to /etc/ssh/sshd_config. Po jego edycji, należy zawsze zrestartować usługę ssh. Opis wszystkich opcji w pliku konfiguracyjnym znajduje się w podręczniku systemowym po wpisaniu polecenia man sshd_config.

Jeśli okaże się, że połączenie przez usługę SSH nie udaje się, to należy zwrócić uwagę na dwie kwestie. Po pierwsze: upewnić się, że serwer SSH jest zainstalowany i uruchomiony: sudo systemctl enable ssh, sudo systemctl start ssh. Po drugie: połączenia z serwerem SSH mogą być blokowane przez firewall po stronie serwera.

  • sudo ufw allow ssh – zezwól na połączenia na porcie 22 przez firewall
  • sudo ufw enable – aktywuj firewall
  • sudo ufw status – pokaż status zapory

Jeśli ktoś nawiązał połączenie z naszym komputerem, ale zachowuje się nieprofesjonalnie i chcemy zakończyć jego wizytę, to możemy to zrobić w następujący sposób. Sprawdzamy poleceniem who lub w czy poza nami jest jeszcze ktoś zalogowany na komputerze. Następnie szukamy procesów związanych z połączeniami SSH: ps faux | grep sshd. Druga kolumna wyników działania tego polecenia będzie zawierała identyfikatory procesów, które musimy wyłączyć. Robimy to komendą kill -9 PID, gdzie PID to liczbowy identyfikator procesu.

Dodatkowo warto również profilaktycznie zatrzymać działanie serwera SSH i zmienić hasło (passwd) lub całkowicie zablokować (usermod -L login) konto, na które ktoś się zalogował. Polecenie usermod powinno być wykonane z uprawnieniami administratora i tylko wtedy jeżeli posiadamy więcej niż jedno konto w systemie. W przeciwnym wypadku możemy zablokować sobie możliwość logowania się na własne konto.

Polecenie scp

Polecenie scp (OpenSSH secure file cppy) jest przydatnym narzędziem do kopiowania z oraz na zdalny komputer. Warunkiem koniecznym jego użycia jest oczywiście posiadanie konta (dokładniej: danych autoryzacyjnych do konta) na zdalnym komputerze.

Składnia plecenia scp kiedy chcemy pobrać plik ze zdalnego serwera: scp urzytkownik@host:ścieżka_do_pliku_zdalnego nazwa_pliku_lokalnego

Składnia plecenia scp do wysłania pliku lokalnego na zdalny serwer: scp nazwa_pliku_lokalnego urzytkownik@host:ścieżka_do_pliku_zdalnego

Oczywiście przy użyciu polecenia scp można również przesłać plik pomiędzy dwoma zdalnymi komputerami będąc zalogowanym na trzecim komputerze.


Definicje

  • Definicja 1.
    Czym jest SSH?
  • Aby zobaczyć tą treść musisz być zalogowany

Pytania

  • Pytanie 1.
    Który numer portu domyślnie wykorzystywany jest przez usługę SSH (Secure Shell)?
  • Aby zobaczyć tą treść musisz być zalogowany

  • Pytanie 2.
    Jakim poleceniem w systemie Ubuntu sprawdzimy działanie serwera SSH?
  • Aby zobaczyć tą treść musisz być zalogowany

  • Pytanie 3.
    Które polecenie wyśle plik lokalny i zapisze go na zdalnym komputerze pod nazwą sys12.conf?
  • Aby zobaczyć tą treść musisz być zalogowany

  • Pytanie 4.
    Które polecenie umożliwi zalogowanie się na konto janusz na komputerze passat za pomocą protokołu SSH?
  • Aby zobaczyć tą treść musisz być zalogowany

  • Pytanie 5.
    Podaj przykład polecenia, które pobierze plik ze zdalnego komputera i zapisze go pod nazwą r15.conf
  • Aby zobaczyć tą treść musisz być zalogowany

Zadania

Zadanie 1. #
Zapisz w pliku janusz polecenie terminala, które umożliwi zalogowanie się na konto janusz na komputerze passat za pomocą protokołu SSH.

Zadanie 2. #
Zapisz w pliku tom polecenie terminala, które umożliwi zalogowanie się na konto tom na komputerze 83.77.100.25 za pomocą protokołu SSH.

Zadanie 3. #
Podaj przykład polecenia scp, które pobierze plik ze zdalnego komputera i zapisze go pod nazwą rsyslog_15.conf. Warunki do zadania:
  1. IP komputera lokalnego: 192.168.242.112
  2. Lokalny użytkownik: tomek.typ
  3. IP komputera zdalnego: 192.168.70.15
  4. Urzytkownik na zdalnym komputerze: kamil.tumulec
  5. Plik na zdalnym komputerze: /etc/rsyslog.conf

Zadanie 4. #
Podaj przykład polecenia scp, które pobierze plik ze zdalnego komputera i zapisze go pod nazwą sysctl_egon.conf. Warunki do zadania:
  1. IP komputera lokalnego: 192.168.240.12
  2. Lokalny użytkownik: tomek
  3. Zdalny komputer: egon
  4. Urzytkownik na zdalnym komputerze: benny
  5. Plik na zdalnym komputerze: /etc/sysctl.conf

Zadanie 5. #
Podaj przykład polecenia scp, które wyśle plik baza.csv na zdalny komputer. Warunki do zadania:
  1. Plik baza.csv jest w tej samej lokalizacji, z której wykonujemy polecenie scp
  2. Nazwa komputera lokalnego: porkpc
  3. Lokalny użytkownik: prosiak
  4. IP komputera zdalnego: 192.168.242.200
  5. Urzytkownik na zdalnym komputerze: przemek.pyk
  6. Lokalizacja i nazwa pliku do zapisania na zdalnym komputerze: /home/przemek.pyk/Desktop/baza_prosiaka.csv

Zadanie 6. #

Za pomocą terminala połącz się z publicznym serwerem kont UNIX-owych, używając do tego komendy ssh new@sdf.org. Czytaj dokładnie i ze zrozumieniem komunikaty pojawiające się na ekranie.

Po założeniu konta, zaloguj się na nie i utwórz na zdalnym serwerze katalog temp, w tym katalogu utwórz plik putty i wpisz do niego tekst Ala ma kota. Jakich poleceń możesz używać na zdalnym serwerze?

Zadanie 7. #
W katalogu /etc/ssh utwórz, jako użytkownik root, plik banner z jedną linijką dowolnego tekstu powitalnego. Następnie w pliku konfiguracyjnym serwera SSH zmień odpowiednią linijkę, aby w trakcie logowania przez ssh na twój serwer, wyświetlał się tekst z pliku banner.

Zadanie 8. #
Zainstaluj i uruchom w systemie Ubuntu serwer SSH. Następnie w systemie Windows, korzystając z programu PuTTY połącz się przez protokół SSH na swoje konto w systemie Ubuntu. Do połączenia będziesz potrzebował nazwy użytkownika i adresu IP komputera z systemem Ubuntu. Pamiętaj również o przełączeniu karty sieciowej w VirtualBox-ie w tryb mostkowy.

Zadanie 9. #
Zapoznaj się z następującymi opcjami z pliku konfiguracyjnego serwera SSH
  • NumberOfPasswordPrompts
  • PasswordAuthentication
  • Port
  • UserKnownHostsFile
  • ConnectionAttempts
  • Banner
  • DenyUsers
  • ListenAddress
  • LoginGraceTime

2020-09-29 02:11:05 2021-10-29 09:41:56


© 2024 Młody Informatyk v. 0.1.7717