Безопасность сервера: как защитить от взлома
Сервер в интернете атакуют постоянно. Боты сканируют порты, подбирают пароли, ищут уязвимости. По статистике, сервер без защиты взламывают за 15–30 минут после запуска. Последствия серьёзные: утечка данных, потеря трафика, попадание в спам-базы, штрафы за нарушение 152-ФЗ.
Хорошая новость: большинство атак можно предотвратить базовой настройкой безопасности. Файрвол, Fail2ban, SSH-ключи, обновления — это не «сложно», а «обязательно». В этой статье — пошаговое руководство по защите сервера. Если нужно администрирование сервера с настройкой безопасности — поможем.
📋 Содержание статьи
Основные угрозы
Понимание угроз помогает построить правильную защиту.
Брутфорс
Автоматический подбор паролей к SSH, панели управления, CMS. Тысячи попыток в час.
Уязвимости
Дыры в ОС, панели управления, CMS, плагинах. Используются для получения доступа.
DDoS-атаки
Массовые запросы, которые перегружают сервер и делают его недоступным.
SQL-инъекции
Внедрение вредоносного SQL-кода через формы сайта. Кража данных.
Спам через формы
Автоматическая отправка спама через формы обратной связи. Репутация домена падает.
Вредоносный код
Загрузка вредоносных скриптов через уязвимости. Использование сервера для ботнета.
Защита SSH
SSH — главный вход на сервер. Если его не защитить — считайте, что сервер открыт.
1. SSH-ключи вместо паролей
Пароли можно подобрать. SSH-ключ — нет. Настройте аутентификацию по ключам и отключите вход по паролю:
- Сгенерируйте пару ключей:
ssh-keygen -t ed25519 -C "your@email.com"; - Скопируйте публичный ключ на сервер:
ssh-copy-id user@server; - В
/etc/ssh/sshd_configустановитеPasswordAuthentication no; - Перезапустите SSH:
systemctl restart sshd.
2. Смените стандартный порт
По умолчанию SSH слушает порт 22. Боты сканируют его постоянно. Смените порт на нестандартный:
- В
/etc/ssh/sshd_configустановитеPort 2222(любой нестандартный); - Откройте новый порт в файрволе;
- Перезапустите SSH.
3. Отключите root-логин
Прямой вход под root — плохая практика. Работайте под обычным пользователем с sudo:
- Создайте пользователя:
adduser newuser; - Дайте права sudo:
usermod -aG sudo newuser; - В
/etc/ssh/sshd_configустановитеPermitRootLogin no.
4. Ограничьте доступ по IP
Если работаете с фиксированных IP — разрешите SSH только с них. В /etc/hosts.allow или файрволе.
Файрвол
Файрвол блокирует весь трафик, кроме разрешённого. Это базовая защита.
ufw (Ubuntu, Debian)
Простой файрвол для начинающих:
ufw allow ssh— разрешить SSH;ufw allow 80— разрешить HTTP;ufw allow 443— разрешить HTTPS;ufw enable— включить файрвол.
iptables (все дистрибутивы)
Более гибкий, но сложный. Основные правила:
- Разрешить уже установленные соединения;
- Разрешить SSH, HTTP, HTTPS;
- Заблокировать всё остальное;
- Логировать заблокированный трафик.
💡 Важно
Перед включением файрвола убедитесь, что SSH разрешён. Иначе потеряете доступ к серверу.
Fail2ban
Fail2ban анализирует логи и блокирует IP-адреса, с которых идут атаки. Это защита от брутфорса и спама.
Что делает Fail2ban
- Следит за логами SSH, веб-сервера, почты;
- Находит попытки подбора паролей;
- Блокирует IP после N неудачных попыток;
- Автоматически разблокирует через время.
Настройка
- Установите:
apt install fail2ban; - Скопируйте конфиг:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local; - В
jail.localнастройте:bantime(время блокировки),findtime(окно),maxretry(попыток); - Включите нужные jail: sshd, nginx-http-auth, postfix-sasl;
- Перезапустите:
systemctl restart fail2ban.
Обновления
Большинство атак используют известные уязвимости. Если обновления установлены — атака не сработает.
Что обновлять
- ОС: ядро, системные пакеты. Обновления безопасности — обязательно;
- Панель управления: ISPmanager, cPanel, Plesk. Обновляйте регулярно;
- CMS: WordPress, 1C-Битрикс, Joomla. Обновления безопасности;
- Плагины и темы: частая причина уязвимостей. Обновляйте или удаляйте неиспользуемые;
- Веб-сервер: Nginx, Apache. Обновления безопасности;
- БД: MySQL 8.0+, PostgreSQL 16+, MariaDB 10.11+. Обновления производительности и безопасности;
- PHP, Python, Node.js: версии языка. Устаревшие версии — риск.
Как обновлять безопасно
- Сначала — тестовое окружение;
- Сделайте бэкап перед обновлением;
- Обновляйте по одному компоненту;
- Проверяйте работу после каждого обновления;
- Автоматизируйте: unattended-upgrades для ОС.
SSL и HTTPS
HTTPS — это не только «зелёный замок» в браузере. Это шифрование трафика, защита от перехвата, доверие пользователей.
- Let's Encrypt: бесплатный SSL. Автоматическое продление через certbot;
- Коммерческие сертификаты: для банков, платёжных систем, крупных проектов;
- HSTS: заголовок, который заставляет браузер использовать только HTTPS;
- Редирект HTTP → HTTPS: весь трафик должен идти по HTTPS;
- Проверка: используйте SSL Labs для оценки сертификата.
Права на файлы
Неправильные права на файлы — одна из главных причин взломов. Злоумышленник может загрузить вредоносный скрипт или изменить существующие файлы.
- Файлы: 644 (rw-r--r--) для обычных файлов;
- Папки: 755 (rwxr-xr-x) для директорий;
- Конфигурации: 600 (rw-------) для файлов с паролями;
- Загруженные файлы: 644, никогда 777;
- Владелец: файлы сайта должны принадлежать пользователю сайта, а не root.
Команды для проверки:
find /var/www -type f -perm 0777— найти опасные права;chmod -R 644 /var/www/site— установить правильные права;chown -R user:group /var/www/site— сменить владельца.
Мониторинг
Даже лучшая защита может быть обойдена. Мониторинг помогает вовремя заметить проблему.
- Логи SSH: неудачные попытки входа. Fail2ban ведёт статистику;
- Логи веб-сервера: подозрительные запросы. SQL-инъекции, попытки доступа к админке;
- Логи CMS: неудачные входы, изменения файлов;
- Мониторинг файлов: AIDE, Tripwire. Проверяют изменения в критичных файлах;
- Мониторинг нагрузки: аномальная нагрузка может говорить о взломе;
- Оповещения: настройте, чтобы узнавать о подозрительной активности сразу.
Чек-лист безопасности сервера
SSH
- SSH-ключи вместо паролей
- Нестандартный порт
- Root-логин отключён
- Ограничение по IP
Файрвол и Fail2ban
- Файрвол настроен
- Открыты только нужные порты
- Fail2ban установлен
- Настроены jail для SSH, веба
Обновления
- ОС обновлена
- Панель управления обновлена
- CMS и плагины обновлены
- Устаревшие компоненты удалены
Доступ и файлы
- Сложные пароли
- Двухфакторная аутентификация
- Правильные права на файлы
- SSL и HTTPS настроены
Наши рекомендации
📌 Что вы получаете, заказывая безопасность у нас
- SSH-ключи — безопасный доступ без паролей
- Файрвол — открыты только нужные порты
- Fail2ban — защита от брутфорса
- SSL и HTTPS — шифрование трафика
- Обновления — регулярные, безопасные
- Мониторинг — оповещения о подозрительной активности
📌 Итоговый вывод
Безопасность сервера — это не опция, а необходимость.
Что нужно знать:
- Угрозы — брутфорс, уязвимости, DDoS, SQL-инъекции, спам, вредоносный код
- SSH — ключи вместо паролей, нестандартный порт, отключён root
- Файрвол — ufw или iptables. Открыты только нужные порты
- Fail2ban — автоматическая блокировка атакующих IP
- Обновления — регулярные, безопасные, с тестированием
- SSL — только HTTPS, HSTS, редирект
- Права на файлы — 644 для файлов, 755 для папок
- Мониторинг — логи, оповещения, аудит