Gymterview
middle

Как усилить безопасность SSH-сервера?

Hardening SSH-сервера — комплекс мер по усилению защиты SSH от несанкционированного доступа, включающий отключение небезопасных методов аутентификации, ограничение доступа и мониторинг попыток входа.

1. Отключение входа под root

Пример
# /etc/ssh/sshd_config
PermitRootLogin no

2. Только ключевая аутентификация (отключение паролей)

Пример
# Генерация ключей на клиенте
ssh-keygen -t ed25519 -C "developer@mybank.local"

# Копирование публичного ключа на сервер
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@app-server.mybank.local
Пример
# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM no

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

Пример
# /etc/ssh/sshd_config
AllowUsers deploy@10.0.1.0/24 admin@10.0.1.0/24
AllowGroups sshusers
MaxAuthTries 3
LoginGraceTime 30
PermitEmptyPasswords no

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

Пример
# /etc/ssh/sshd_config
Protocol 2
X11Forwarding no
AllowAgentForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
LogLevel VERBOSE
Banner /etc/ssh/banner

5. Установка и настройка fail2ban

fail2ban блокирует IP-адреса после нескольких неудачных попыток входа:

Пример
sudo apt install fail2ban
Конфигурация fail2ban для SSH
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600        # 1 час блокировки
findtime = 600        # Окно обнаружения: 10 минут
ignoreip = 10.0.1.0/24  # Не блокировать управляющую сеть
# Управление fail2ban
sudo systemctl enable fail2ban
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 192.168.1.50

6. Применение изменений

Пример
# Проверка конфигурации
sudo sshd -t

# Перезапуск sshd
sudo systemctl restart sshd

При изменении настроек SSH всегда держите открытой текущую сессию и проверяйте возможность нового подключения в отдельном терминале, чтобы не потерять доступ к серверу.

На собеседовании: интервьюер ожидает знание минимум трёх мер: отключение root, ключевая аутентификация, ограничение по IP. Частая ошибка — назвать только «смену порта», которая является security through obscurity и не заменяет реальные меры.