Konfiguracja SSH, diagnostyka sieci przy użyciu ping
, netstat
, dig
1. Konfiguracja serwera SSH
Witaj na praktycznym zanurzeniu w możliwości sieciowe Linuxa. Dziś czas przetestować naszą wiedzę w praktyce! Nauczysz się konfigurować serwer SSH, łączyć się z nim za pomocą klienta, diagnozować sieć za pomocą najpopularniejszych poleceń i sprawdzać dostępność portów. Poczujmy się jak prawdziwi inżynierowie sieci!
SSH (Secure Shell) — to narzędzie do bezpiecznego zdalnego dostępu do serwera. Pozwala na połączenie z serwerem, zarządzanie nim tak, jakbyś przy nim siedział, a także na przesyłanie plików.
Krok 1: Instalacja serwera SSH
Na początek zainstalujemy serwer SSH. Jeśli używasz Ubuntu lub Debiana, wykonaj następujące polecenie:
sudo apt update
sudo apt install openssh-server -y
Jeśli używasz Fedory lub CentOS:
sudo yum install -y openssh-server
Po instalacji upewnij się, że usługa SSH jest uruchomiona:
sudo systemctl start ssh
sudo systemctl enable ssh # Aby SSH uruchamiało się automatycznie przy starcie systemu
sudo systemctl status ssh # Sprawdzamy status usługi
Jeśli wszystko przebiegło pomyślnie, zobaczysz, że usługa działa.
Krok 2: Konfiguracja serwera SSH
Plik konfiguracyjny serwera SSH znajduje się pod następującą ścieżką:
sudo nano /etc/ssh/sshd_config
Niektóre z przydatnych parametrów:
PermitRootLogin no
— zakaz logowania się jako użytkownikroot
.PasswordAuthentication yes
— włączenie uwierzytelniania hasłem.PubkeyAuthentication yes
— włączenie uwierzytelniania za pomocą kluczy.
Po wprowadzeniu zmian zrestartuj SSH:
sudo systemctl restart ssh
Teraz serwer jest gotowy do przyjmowania połączeń.
Krok 3: Połączenie z serwerem przez SSH
Z innej maszyny (lub lokalnie przez localhost) spróbuj się połączyć:
ssh your_username@your_server_ip
Jeśli pracujesz lokalnie, zamień your_server_ip
na 127.0.0.1
. Wpisz hasło swojego użytkownika i znajdziesz się wewnątrz systemu przez terminal.
2. Konfigurowanie uwierzytelniania za pomocą kluczy
Uwierzytelnianie za pomocą hasła jest wygodne, ale z punktu widzenia bezpieczeństwa najlepszym rozwiązaniem jest użycie kluczy SSH.
Krok 1: Generowanie kluczy SSH
Na maszynie klienckiej uruchom komendę:
ssh-keygen
Zostaniesz zapytany, gdzie zapisać klucze. Domyślnie zostaną zapisane w katalogu ~/.ssh/
. Po prostu naciśnij Enter.
Krok 2: Kopiowanie klucza na serwer
Kopiujemy klucz publiczny na serwer:
ssh-copy-id your_username@your_server_ip
Teraz możesz się połączyć bez wprowadzania hasła:
ssh your_username@your_server_ip
Jeśli wszystko zostało poprawnie skonfigurowane, gratulacje! Teraz twój serwer SSH jest zabezpieczony uwierzytelnianiem kluczem.
3. Diagnostyka sieci za pomocą ping
Już znamy to polecenie. Szybko sprawdźmy dostępność naszego serwera SSH.
ping -c 4 your_server_ip
Powinieneś zobaczyć odpowiedź od serwera. Jeśli odpowiedzi nie ma, sprawdź, czy serwer został uruchomiony i czy jest poprawnie skonfigurowany.
4. Sprawdzanie DNS za pomocą nslookup
i dig
Jeśli twój serwer ma nazwę domenową, możesz sprawdzić jego działanie poprzez DNS. Na przykład:
Komenda nslookup
:
nslookup twoja-domena.com
Powinieneś zobaczyć adres IP odpowiadający twojej domenie.
Komenda dig
:
Teraz spróbujmy uzyskać pełny zestaw informacji:
dig twoja-domena.com
Zobaczysz wiele danych, ale nas interesuje linia z ANSWER SECTION
, gdzie będzie podany adres IP.
5. Analiza połączeń sieciowych z netstat
i ss
Serwer SSH nasłuchuje na porcie 22 domyślnie. Sprawdźmy to za pomocą netstat
:
sudo netstat -tln | grep 22
Albo za pomocą ss
, bardziej nowoczesnego narzędzia:
sudo ss -tln | grep 22
Jeśli widzisz, że port 22 jest w stanie "LISTEN" (oczekuje na połączenie), oznacza to, że serwer jest gotowy na przyjmowanie klientów.
6. Sprawdzanie dostępności portu za pomocą nc
Komenda netcat
(lub nc
) pozwala testować dostępność portów. Spróbujmy połączyć się z naszym serwerem SSH:
nc -zv your_server_ip 22
Powinieneś zobaczyć komunikat w stylu "Connection to your_server_ip 22 port [tcp/ssh] succeeded!"
.
Jeśli połączenie się nie powiodło, może to oznaczać, że port jest zablokowany przez firewall albo że serwer nie nasłuchuje na wskazanym porcie.
7. Zadanie praktyczne
Połączmy teraz wszystko w jednym praktycznym scenariuszu. Będziesz musiał:
- Włączyć SSH na swojej maszynie lub środowisku wirtualnym, na przykład WSL2.
- Wygenerować klucze i skonfigurować autoryzację za pomocą kluczy (wyłączając hasła).
- Połączyć się z serwerem przez SSH.
- Użyć
ping
do sprawdzenia dostępności serwera. - Użyć
nslookup
idig
, aby sprawdzić rozwiązywanie adresu IP (jeśli masz nazwę domeny). - Sprawdzić port 22 na serwerze za pomocą
netstat
,ss
inc
.
Teraz jesteś gotowy nie tylko na konfigurację zdalnego dostępu, ale także na rozwiązywanie problemów sieciowych, diagnozowanie serwera i ochronę go jak prawdziwy pro! Zbliżasz się już do poziomu, na którym można cię nazwać Linux-guru.
GO TO FULL VERSION