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 и 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-гуру.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ