К основному содержимому

Чеклист безопасности нового Linux-сервера: 30 шагов

Безопасность · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «Чеклист безопасности нового Linux-сервера: 30 шагов»

Каждый новый сервер требует базовой настройки безопасности до того, как на нём будет запущено какое-либо приложение. Этот чеклист охватывает все уровни: от системных обновлений до мониторинга и бэкапов.

Раздел 1: Обновление системы

apt update && apt upgrade -y
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades  # включить автообновления безопасности

Раздел 2: Пользователи и sudo

useradd -m -s /bin/bash admin
usermod -aG sudo admin
passwd admin
# Проверить, что root-вход по паролю отключён
passwd -l root

Раздел 3: SSH Hardening

# Уже подробно описан в статье SSH Hardening
# Ключевое:
Port 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers admin

Раздел 4: Firewall (UFW)

apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp  # SSH (ваш порт)
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verbose

Раздел 5: fail2ban

apt install fail2ban -y
systemctl enable --now fail2ban

Раздел 6: Синхронизация времени

apt install chrony -y
systemctl enable --now chrony
timedatectl status

Раздел 7: Мониторинг и аудит

apt install auditd audispd-plugins -y
systemctl enable --now auditd
apt install logwatch -y

Полный чеклист из 30 пунктов

#ДействиеПриоритет
1apt update && apt upgradeКритический
2Включить unattended-upgradesВысокий
3Создать non-root пользователяКритический
4Настроить SSH ключиКритический
5Изменить порт SSHСредний
6PermitRootLogin noКритический
7PasswordAuthentication noКритический
8Настроить UFW/nftablesКритический
9Установить fail2banВысокий
10Настроить NTP (chrony)Средний
11Настроить hostname и /etc/hostsНизкий
12Установить auditdСредний
13Настроить logrotateСредний
14Установить ClamAV (по необходимости)Средний
15Настроить rkhunterСредний
16Настроить резервные копииКритический
17Проверить открытые портыВысокий
18Настроить swap (если нет)Средний
19Настроить sysctl hardeningСредний
20Включить HSTS для веб-сервераВысокий
21Настроить SSL (Let's Encrypt)Критический
22Отключить неиспользуемые сервисыСредний
23Проверить SUID-файлыСредний
24Настроить мониторинг uptimeВысокий
25Настроить email-алертыСредний
26Документировать конфигурациюСредний
27Настроить CrowdSec или OSSECСредний
28Проверить права на файлы конфиговВысокий
29Настроить ротацию SSH-ключейНизкий
30Провести тест проникновенияСредний
Sysctl hardening — дополнительный уровень защиты ядра. Добавьте в /etc/sysctl.d/99-security.conf:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
kernel.randomize_va_space = 2
kernel.dmesg_restrict = 1
Применить: sysctl --system

Типичные ошибки при первичной настройке

СимптомПричина
SSH-соединение обрывается сразу после ufw enableЗабыли заранее разрешить порт SSH (ufw allow 2222/tcp) до включения — файрвол активировался и закрыл единственный канал доступа
sshd: no hostkeys available после смены портаВ sshd_config поменяли Port, но не перезапустили сам сервис, либо в конфиге опечатка и sshd вовсе не стартует
fail2ban: Fail to start jail 'sshd'... Permission deniedBackend fail2ban не настроен на чтение systemd journal, либо logpath в jail.local указывает на несуществующий файл после смены порта SSH
unattended-upgrades: no packages foundВ /etc/apt/apt.conf.d/50unattended-upgrades не раскомментированы нужные строки Origins-Pattern для конкретного дистрибутива
chronyd: Could not synchroniseИсходящий UDP-порт 123 заблокирован файрволом провайдера или самим ufw, если правило default deny outgoing выставлено слишком строго

Когда этого чеклиста недостаточно

  • Сервер хранит платёжные данные или подпадает под формальный стандарт (PCI DSS и подобные) — 30 шагов дают базовую гигиену, но не заменяют официальный аудит соответствия
  • Нужна защита от атак на уровне приложения — SQL-инъекции, XSS и логические уязвимости чеклист не закрывает, он охватывает только ОС и сетевой периметр
  • Инфраструктура состоит из десятков серверов — повторять 30 шагов вручную на каждом не масштабируется, нужна автоматизация через Ansible или Terraform
  • Требуется защита от объёмной DDoS-атаки — fail2ban и ufw эффективны против точечного перебора, но бессильны против атаки на пропускную способность канала, для этого нужна защита на уровне провайдера или CDN

Проверка результата

После прохождения всех 30 пунктов прогоните быстрый аудит вручную — чеклист легко пройти формально, отметив пункт, но не проверив, что настройка реально работает. Более глубокий разбор SSH-защиты и аудита событий — в статьях про SSH hardening и про мониторинг через auditd.

# Какие порты реально слушают на сервере
sudo ss -tlnp

# Правила файрвола совпадают с ожиданием
sudo ufw status verbose

# jail fail2ban активен и банит попытки подбора
sudo fail2ban-client status sshd

# Ключевые сервисы включены в автозагрузку
sudo systemctl is-enabled fail2ban auditd chrony
Статья помогла?
← Назад в базу знаний Задать вопрос поддержке