SSH — это мой основной способ безопасно заходить на удалённые серверы. Он шифрует весь трафик, проверяет аутентификацию и передаёт данные надёжно, полностью вытеснив старые и опасные штуки вроде Telnet. Но по умолчанию SSH уязвим: brute-force атаки, MITM, слабые настройки — всё это реальные угрозы. Поэтому я всегда минимизирую риски через конфиг, firewall, мониторинг и тд.
В этой статье я сначала расскажу общие принципы, которые я применяю везде, а потом дам ссылки на пошаговые инструкции по разным платформам.
Общие моменты, которые я всегда делаю перед тем как лезть в глубокую настройку сервера:
Firewall
Дополнительно, что я делаю и добавляю опционально (когда надо)
Важное предупреждение от меня:
Перед любыми изменениями я всегда убеждаюсь, что у меня есть альтернативный доступ (консоль провайдера, KVM, IPMI, rescue-режим). Иначе можно случайно потерять доступ навсегда.
Ниже будут прямые ссылки на те или иные примеры из практики на разных платформах:
Настройка firewall в Ubuntu 24 [UFW]
Защита ssh с помощью firewall Ubuntu 24 [UFW]
Защита SSH — это тонкий процесс, требующий внимательного подхода. Сделав все правильно я сразу закладываю хороший задел на безопасную работу в будущем.
В этой статье я сначала расскажу общие принципы, которые я применяю везде, а потом дам ссылки на пошаговые инструкции по разным платформам.
Общие моменты, которые я всегда делаю перед тем как лезть в глубокую настройку сервера:
- Установка OpenSSH-сервера
Я всегда проверяю, установлен ли он и запущен
- Port 22 — меняю порт по умолчанию всегда
- PermitRootLogin no — отключаю прямой вход рутом
- PasswordAuthentication yes — по умолчанию вход по паролям
- PubkeyAuthentication yes — явно включаю ключи, если вход нужен по ключам
- Встроенный Sftp-сервер опционально отключаю
Firewall
- Разрешаю SSH-трафик только с моих доверенных IP — ни в коем случае не для всех
- Fail2Ban Я ставлю всегда и настраиваю его — он банит IP после нескольких неудачных попыток
Дополнительно, что я делаю и добавляю опционально (когда надо)
- Включаю 2FA (Google Authenticator или YubiKey)
- Ограничиваю пользователей: AllowUsers мой_юзер1 мой_юзер2
- Слежу за логами: /var/log/auth.log или /var/log/secure
- Обновление системы — когда необходимо и сначала на тестовой машине, копии или клоне рабочей и только после успеха на продакшене
Перед любыми изменениями я всегда убеждаюсь, что у меня есть альтернативный доступ (консоль провайдера, KVM, IPMI, rescue-режим). Иначе можно случайно потерять доступ навсегда.
Ниже будут прямые ссылки на те или иные примеры из практики на разных платформах:
Настройка firewall в Ubuntu 24 [UFW]
Защита ssh с помощью firewall Ubuntu 24 [UFW]
Защита SSH — это тонкий процесс, требующий внимательного подхода. Сделав все правильно я сразу закладываю хороший задел на безопасную работу в будущем.