Ответ
Обеспечение безопасности сервера — это многослойный процесс (Defense in Depth). Вот ключевые меры, которые я применяю при настройке нового сервера:
-
Минимизация поверхности атаки:
- Обновления: Первым делом обновляю систему.
# Для Debian/Ubuntu sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y - Удаление ненужного ПО: Удаляю все неиспользуемые пакеты и службы (например,
telnetd,rsh-server).
- Обновления: Первым делом обновляю систему.
-
Настройка SSH (основной вектор атаки):
- Запрет входа под root: Редактирую
/etc/ssh/sshd_config.PermitRootLogin no - Только аутентификация по ключу: Отключаю пароли.
PasswordAuthentication no PubkeyAuthentication yes - Смена порта (security through obscurity): Меняю стандартный порт 22 на нестандартный (не панацея, но убирает 99% брутфорс-сканеров).
Port 5922 - Использование Fail2ban: Автоматически блокирует IP после неудачных попыток входа.
sudo apt install fail2ban sudo systemctl enable --now fail2ban
- Запрет входа под root: Редактирую
-
Настройка фаервола: Использую
ufwдля простоты.sudo ufw default deny incoming # Запретить всё входящее по умолчанию sudo ufw default allow outgoing # Разрешить исходящее sudo ufw allow 5922/tcp comment 'SSH Custom Port' # Разрешить SSH sudo ufw allow 80/tcp comment 'HTTP' sudo ufw allow 443/tcp comment 'HTTPS' sudo ufw enable -
Включение Mandatory Access Control (MAC): Активирую и настраиваю AppArmor или SELinux (в зависимости от дистрибутива) для ограничения возможностей процессов, даже если они скомпрометированы.
# Для SELinux (RHEL/CentOS) sudo setenforce 1 sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config -
Разделение привилегий и мониторинг:
- Работаю от непривилегированного пользователя, использую
sudoдля админских задач. - Настраиваю централизованный сбор логов (например, в ELK-стек или Grafana Loki) для аудита и оперативного реагирования.
- Использую инструменты для регулярного аудита безопасности, такие как
lynis.sudo lynis audit system
- Работаю от непривилегированного пользователя, использую
-
Защита на уровне приложения и сети: Это включает настройку reverse proxy (Nginx/Apache) с HTTPS (Let's Encrypt), WAF (ModSecurity), сегментацию сети (VLANs) и регулярное сканирование уязвимостей в зависимостях приложения (SAST/DAST).
Безопасность — это не разовая настройка, а непрерывный процесс обновлений, мониторинга и адаптации к новым угрозам.