Безопасность домашнего сервера: SSH, файрволы и изоляция Docker
Пошаговое руководство по настройке безопасности Linux-сервера, блокировка портов и защита от перебора паролей.
Как только домашний сервер получает белый IP-адрес или доменное имя и становится доступен из внешней сети, он начинает подвергаться автоматическому сканированию ботами. Без базовой настройки безопасности сервер будет взломан в течение нескольких часов.
Первый и самый важный шаг — отключение авторизации по паролю для службы SSH. Вход должен осуществляться исключительно по криптографическим ключам (Ed25519). В конфигурационном файле `/etc/ssh/sshd_config` необходимо установить параметр `PasswordAuthentication no`. Также рекомендуется сменить стандартный порт SSH (22) на любой неиспользуемый высокий порт, чтобы снизить количество автоматического спама в логах.
Глубокий анализ темы позволяет выявить неочевидные закономерности и получить ценный практический опыт.
Настройка SSH по ключам и отключение паролей
Вторым рубежом защиты является настройка файрвола (UFW или iptables). Все порты, кроме веб-сервера (80/443) и кастомного SSH, должны быть закрыты для внешних запросов. Утилита Fail2ban защитит сервер от подбора паролей, временно блокируя IP-адреса, с которых происходят частые неудачные попытки подключения.
На уровне контейнеров Docker важно следить за тем, чтобы приложения не запускались с правами суперпользователя (root) внутри контейнера, и использовать внутренние изолированные Docker-сети (bridge networks) без прямого проброса портов во внешнюю систему без необходимости.