Установка и настройка SSH сервера — различия между версиями

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск
(Новая страница: «= Установка и настройка SSH сервера = == 1. Подготовка системы == * Войдите в систему под учет…»)
(нет различий)

Версия 19:35, 14 октября 2025

Содержание

Установка и настройка SSH сервера

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Убедитесь, что у вас есть физический доступ к серверу (на случай блокировки SSH).

2. Установка SSH сервера

Для Ubuntu/Debian

1. Обновите список пакетов: sudo apt update

2. Установите OpenSSH сервер: sudo apt install openssh-server

3. Запустите и включите автозапуск SSH: sudo systemctl start ssh sudo systemctl enable ssh

Для CentOS/RHEL/Fedora

1. Установите OpenSSH сервер: sudo yum install openssh-server

  1. или для новых версий

sudo dnf install openssh-server

2. Запустите и включите автозапуск: sudo systemctl start sshd sudo systemctl enable sshd

3. Проверка установки

1. Проверьте статус SSH сервера: sudo systemctl status ssh

2. Проверьте, что SSH слушает на порту 22: sudo netstat -tlnp | grep :22

3. Проверьте версию OpenSSH: ssh -V

4. Базовая настройка SSH

Основная конфигурация

1. Отредактируйте файл конфигурации SSH: sudo nano /etc/ssh/sshd_config

2. Настройте основные параметры:

  1. Порт SSH

Port 22

  1. Протокол SSH

Protocol 2

  1. Адрес для прослушивания

ListenAddress 0.0.0.0

  1. Разрешить root вход

PermitRootLogin no

  1. Разрешить пустые пароли

PermitEmptyPasswords no

  1. Максимальное количество попыток входа

MaxAuthTries 3

  1. Таймаут для аутентификации

LoginGraceTime 60

Настройка безопасности

1. Добавьте дополнительные настройки безопасности:

  1. Отключить X11 forwarding

X11Forwarding no

  1. Отключить TCP forwarding

AllowTcpForwarding no

  1. Ограничить пользователей

AllowUsers username1 username2

  1. Запретить определенных пользователей

DenyUsers baduser

  1. Настройки ключей

PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys

  1. Отключить аутентификацию по паролю (после настройки ключей)

PasswordAuthentication yes

5. Настройка SSH ключей

Генерация SSH ключей на клиенте

1. Сгенерируйте пару ключей: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. Выберите место сохранения (по умолчанию ~/.ssh/id_rsa) 3. Введите пароль для ключа (рекомендуется)

Копирование ключа на сервер

1. Скопируйте публичный ключ на сервер: ssh-copy-id username@server_ip

2. Или вручную: cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Настройка прав доступа

1. Установите правильные права на файлы: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub

6. Дополнительные настройки безопасности

Изменение порта SSH

1. Измените порт в конфигурации: Port 2222

2. Обновите правила файрвола: sudo ufw allow 2222/tcp sudo ufw deny 22/tcp

3. Перезапустите SSH: sudo systemctl restart ssh

Настройка двухфакторной аутентификации

1. Установите Google Authenticator: sudo apt install libpam-google-authenticator

2. Настройте для пользователя: google-authenticator

3. Добавьте в конфигурацию SSH:

  1. В /etc/ssh/sshd_config

ChallengeResponseAuthentication yes UsePAM yes

4. Настройте PAM: sudo nano /etc/pam.d/sshd

5. Добавьте строку: auth required pam_google_authenticator.so

Настройка fail2ban для SSH

1. Установите fail2ban: sudo apt install fail2ban

2. Создайте конфигурацию для SSH: sudo nano /etc/fail2ban/jail.local

3. Добавьте настройки: [sshd] enabled = true port = ssh logpath = /var/log/auth.log maxretry = 3 bantime = 3600

4. Запустите fail2ban: sudo systemctl start fail2ban sudo systemctl enable fail2ban

7. Настройка для конкретных случаев

Настройка для веб-сервера

1. Разрешите только определенным пользователям: AllowUsers webadmin deployer

2. Настройте ограничения по времени:

  1. В /etc/ssh/sshd_config

Match User webadmin

   AllowUsers webadmin
   X11Forwarding no
   AllowTcpForwarding no

Настройка для разработчиков

1. Разрешите порт forwarding: AllowTcpForwarding yes GatewayPorts yes

2. Настройте SSH туннели:

  1. Создание туннеля

ssh -L 8080:localhost:80 username@server_ip

  1. Обратный туннель

ssh -R 8080:localhost:80 username@server_ip

Настройка для резервного копирования

1. Создайте пользователя для бэкапов: sudo useradd -m -s /bin/bash backupuser

2. Настройте ограниченный доступ:

  1. В /etc/ssh/sshd_config

Match User backupuser

   AllowUsers backupuser
   ForceCommand /usr/local/bin/backup-script.sh
   X11Forwarding no
   AllowTcpForwarding no

8. Мониторинг и логирование

Настройка логирования

1. Включите подробное логирование:

  1. В /etc/ssh/sshd_config

LogLevel VERBOSE SyslogFacility AUTH

2. Настройте ротацию логов: sudo nano /etc/logrotate.d/ssh

3. Добавьте конфигурацию: /var/log/auth.log {

   weekly
   missingok
   rotate 4
   compress
   delaycompress
   notifempty
   create 640 root adm

}

Мониторинг подключений

1. Просмотрите активные SSH сессии: who w

2. Просмотрите историю входов: last lastb

3. Просмотрите логи SSH: sudo tail -f /var/log/auth.log | grep sshd

Создание скрипта мониторинга

1. Создайте скрипт мониторинга: sudo nano /usr/local/bin/ssh-monitor.sh

2. Добавьте содержимое:

  1. !/bin/bash

echo "=== SSH Connections ===" who

echo "=== Failed Login Attempts ===" sudo grep "Failed password" /var/log/auth.log | tail -10

echo "=== Recent SSH Logins ===" sudo grep "sshd" /var/log/auth.log | tail -10

3. Сделайте скрипт исполняемым: sudo chmod +x /usr/local/bin/ssh-monitor.sh

9. Управление SSH сервером

Основные команды управления

  • Запуск SSH:

sudo systemctl start ssh

  • Остановка SSH:

sudo systemctl stop ssh

  • Перезапуск SSH:

sudo systemctl restart ssh

  • Перезагрузка конфигурации:

sudo systemctl reload ssh

  • Проверка статуса:

sudo systemctl status ssh

  • Проверка конфигурации:

sudo sshd -t

Управление пользователями

1. Добавьте пользователя в группу ssh: sudo usermod -aG ssh username

2. Заблокируйте пользователя: sudo usermod -L username

3. Разблокируйте пользователя: sudo usermod -U username

10. Устранение неполадок

Частые проблемы

1. SSH не запускается:

  • Проверьте конфигурацию: sudo sshd -t
  • Проверьте логи: sudo journalctl -u ssh

2. Не могу подключиться по SSH:

  • Проверьте статус сервиса: sudo systemctl status ssh
  • Проверьте файрвол: sudo ufw status
  • Проверьте порт: sudo netstat -tlnp | grep :22

3. Ошибка "Permission denied":

  • Проверьте права на ключи: ls -la ~/.ssh/
  • Проверьте конфигурацию SSH: sudo nano /etc/ssh/sshd_config

Диагностика подключения

1. Подключитесь с подробным выводом: ssh -v username@server_ip

2. Проверьте сетевую связность: ping server_ip telnet server_ip 22

3. Проверьте DNS: nslookup server_ip

11. Дополнительные настройки

Настройка SSH клиента

1. Создайте конфигурацию SSH клиента: nano ~/.ssh/config

2. Добавьте настройки: Host myserver

   HostName server_ip
   Port 22
   User username
   IdentityFile ~/.ssh/id_rsa
   ServerAliveInterval 60
   ServerAliveCountMax 3

Настройка SSH агента

1. Запустите SSH агент: eval "$(ssh-agent -s)"

2. Добавьте ключ в агент: ssh-add ~/.ssh/id_rsa

3. Настройте автозапуск агента: echo 'eval "$(ssh-agent -s)"' >> ~/.bashrc echo 'ssh-add ~/.ssh/id_rsa' >> ~/.bashrc

Настройка SSH туннелей

1. Создайте туннель для базы данных: ssh -L 3306:localhost:3306 username@server_ip

2. Создайте SOCKS прокси: ssh -D 8080 username@server_ip

3. Настройте автоматический туннель:

  1. В ~/.ssh/config

Host tunnel

   HostName server_ip
   LocalForward 3306 localhost:3306
   LocalForward 8080 localhost:80

12. Безопасность и рекомендации

Рекомендации по безопасности

1. Регулярно обновляйте SSH: sudo apt update && sudo apt upgrade openssh-server

2. Используйте сильные пароли или ключи 3. Отключите root вход 4. Измените стандартный порт 5. Настройте fail2ban 6. Используйте двухфакторную аутентификацию

Аудит безопасности

1. Проверьте конфигурацию на уязвимости: sudo ssh-audit server_ip

2. Проверьте версию OpenSSH: ssh -V

3. Проверьте поддерживаемые алгоритмы: ssh -Q cipher ssh -Q mac ssh -Q kex

Заключение

SSH сервер успешно установлен и настроен! Теперь вы можете безопасно подключаться к серверу.

Для размещения ваших проектов с настроенным SSH на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой SSH и обеспечением безопасности вашего сервера!