Каждый новый сервер требует базовой настройки безопасности до того, как на нём будет запущено какое-либо приложение. Этот чеклист охватывает все уровни: от системных обновлений до мониторинга и бэкапов.
Раздел 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 пунктов
| # | Действие | Приоритет |
|---|---|---|
| 1 | apt update && apt upgrade | Критический |
| 2 | Включить unattended-upgrades | Высокий |
| 3 | Создать non-root пользователя | Критический |
| 4 | Настроить SSH ключи | Критический |
| 5 | Изменить порт SSH | Средний |
| 6 | PermitRootLogin no | Критический |
| 7 | PasswordAuthentication 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