1. Налаштування SSH-сервера
Ласкаво просимо до практичного занурення в мережеві можливості Linux. Сьогодні час випробувати наші знання на міцність! Ви навчитеся налаштовувати SSH-сервер, підключатися до нього за допомогою клієнта, діагностувати мережу за допомогою найпопулярніших команд та перевіряти доступність портів. Давайте відчуємо себе справжніми мережевими інженерами!
SSH (Secure Shell) — це інструмент для безпечного віддаленого доступу до сервера. Він дозволяє підключатися до сервера, керувати ним так, ніби ви сидите за ним, а також передавати файли.
Крок 1: Встановлення SSH-сервера
Для початку встановимо сервер SSH. Якщо ви використовуєте Ubuntu або Debian, виконайте наступну команду:
sudo apt update
sudo apt install openssh-server -y
Якщо у вас Fedora або CentOS:
sudo yum install -y openssh-server
Після встановлення переконайтеся, що служба SSH запущена:
sudo systemctl start ssh
sudo systemctl enable ssh # Щоб SSH запускався автоматично при старті системи
sudo systemctl status ssh # Перевіряємо статус сервісу
Якщо все пройшло успішно, ви побачите, що служба працює.
Крок 2: Налаштування SSH-сервера
Конфігураційний файл SSH-сервера знаходиться за наступним шляхом:
sudo nano /etc/ssh/sshd_config
Декілька корисних параметрів:
PermitRootLogin no— заборона логіну під користувачемroot.PasswordAuthentication yes— увімкнення автентифікації паролем.PubkeyAuthentication yes— увімкнення автентифікації за допомогою ключів.
Після внесення змін перезапустіть SSH:
sudo systemctl restart ssh
Тепер сервер готовий приймати підключення.
Крок 3: Підключення до сервера через SSH
З іншої машини (або з локальної машини через localhost) спробуйте підключитися:
ssh your_username@your_server_ip
Якщо ви працюєте локально, замініть your_server_ip на 127.0.0.1. Введіть пароль вашого користувача, і ви опинитесь всередині системи через термінал.
2. Налаштування автентифікації за допомогою ключів
Парольна автентифікація — це зручно, але з точки зору безпеки найкращим варіантом є використання SSH-ключів.
Крок 1: Генерація SSH-ключів
На клієнтській машині виконайте команду:
ssh-keygen
Вас запитають, куди зберегти ключі. За замовчуванням вони зберігаються в директорії ~/.ssh/. Просто натисніть Enter.
Крок 2: Копіювання ключа на сервер
Копіюємо публічний ключ на сервер:
ssh-copy-id your_username@your_server_ip
Тепер ви зможете підключатися без введення пароля:
ssh your_username@your_server_ip
Якщо все налаштовано правильно, вітаємо! Тепер ваш SSH-сервер захищений автентифікацією за ключем.
3. Діагностика мережі з використанням ping
Ми вже знайомі з цією командою. Давай швидко перевіримо доступність нашого SSH-сервера.
ping -c 4 your_server_ip
Ти маєш побачити відповідь зі сторони сервера. Якщо відповіді немає, перевір, чи запущений сервер і чи правильно він налаштований.
4. Перевірка DNS за допомогою nslookup i dig
Якщо твій сервер має доменне ім'я, ти можеш перевірити його працездатність через DNS. Наприклад:
Команда nslookup:
nslookup your-domain.com
Ти маєш побачити IP-адресу, що відповідає твоєму домену.
Команда dig:
Тепер спробуємо отримати повний набір інформації:
dig your-domain.com
Ти побачиш багато даних, але нас цікавить рядок з ANSWER SECTION, де буде вказана IP-адреса.
5. Аналіз мережевих з'єднань з netstat і ss
SSH-сервер слухає порт 22 за замовчуванням. Перевіримо це за допомогою netstat:
sudo netstat -tln | grep 22
Або за допомогою ss, більш сучасного інструменту:
sudo ss -tln | grep 22
Якщо ви бачите, що порт 22 "LISTEN" (очікує підключення), значить сервер готовий приймати клієнтів.
6. Перевірка доступності порту за допомогою nc
Команда netcat (або nc) дозволяє тестувати доступність портів. Спробуємо підключитися до нашого SSH-сервера:
nc -zv your_server_ip 22
Ви маєте побачити повідомлення на кшталт "Connection to your_server_ip 22 port [tcp/ssh] succeeded!".
Якщо підключення не вдалося, це може означати, що порт заблокований фаєрволом або що сервер не слухає на вказаному порту.
7. Практичне завдання
Давайте тепер об'єднаємо все в одному практичному сценарії. Вам знадобиться:
- Увімкнути SSH на своїй машині або віртуальному середовищі, наприклад, WSL2.
- Згенерувати ключі та налаштувати авторизацію за ключами (заборонивши паролі).
- Підключитися до сервера через SSH.
- Використати
pingдля перевірки доступності сервера. - Використати
nslookupтаdig, щоб перевірити резолвинг IP-адреси (якщо у вас є доменне ім'я). - Перевірити порт 22 на сервері за допомогою
netstat,ssтаnc.
Тепер ви готові не лише налаштувати віддалений доступ, але й усувати мережеві проблеми, діагностувати сервер і захищати його як справжній pro! Ви вже рухаєтеся до того, щоб називатися Linux-гуру.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ