Hardening Linux: 15 шагов после установки сервера
- Hardening Linux: 15 шагов после установки сервера
- 1. Отключение root-доступа по SSH
- 2. Аутентификация по ключам вместо паролей
- 3. Настройка firewall (nftables / ufw)
- 4. Автоматические обновления безопасности
- 5. Отключение ненужных сервисов
- 6. Sysctl hardening
- 7. Ограничение umask
- 8. Настройка auditd
- 9. AIDE — контроль целостности файлов
- Итого: чеклист
Hardening Linux: 15 шагов после установки сервера
Свежеустановленный Linux-сервер — это открытая дверь в интернет. Дистрибутив приходит с настройками по умолчанию, рассчитанными на максимальную совместимость, а не на безопасность. Потратив час на базовое hardening, вы закроете 90% типовых векторов атак и значительно усложните жизнь потенциальным злоумышленникам.
1. Отключение root-доступа по SSH
Первое и обязательное действие — запретить прямой вход под root. В файле /etc/ssh/sshd_config выставьте:
PermitRootLogin no
PasswordAuthentication no
Создайте отдельного пользователя с sudo-правами и работайте только через него.
2. Аутентификация по ключам вместо паролей
Пароли брутфорсятся. Ключи — нет. Генерируйте пару на локальной машине:
ssh-keygen -t ed25519 -C "server-admin"
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
После проверки входа по ключу отключите PasswordAuthentication no в sshd_config и перезапустите службу.
3. Настройка firewall (nftables / ufw)
Закройте всё, откройте только нужное. На Ubuntu/Debian проще всего ufw:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
На RHEL-семействе используйте firewalld или напрямую nftables.
4. Автоматические обновления безопасности
Уязвимости закрываются патчами. Главное — их вовремя применять:
apt install unattended-upgrades
dpkg-reconfigure --priority=low unattended-upgrades
Для RHEL: dnf install dnf-automatic и включите timer в systemd.
5. Отключение ненужных сервисов
Проверьте, что запущено:
systemctl list-units --type=service --state=running
Типичные кандидаты на отключение: avahi-daemon, cups, bluetooth, rpcbind. Каждый лишний сервис — потенциальная точка входа.
6. Sysctl hardening
Добавьте в /etc/sysctl.d/99-hardening.conf:
net.ipv4.ip_forward = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.tcp_syncookies = 1
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
fs.suid_dumpable = 0
Примените: sysctl --system.
7. Ограничение umask
В /etc/profile и /etc/bashrc установите umask 027 — новые файлы будут создаваться с правами 640/750 вместо 644/755.
8. Настройка auditd
Система аудита фиксирует подозрительную активность:
apt install auditd
auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/sudoers -p wa -k sudoers_changes
Правила сохраните в /etc/audit/rules.d/hardening.rules.
9. AIDE — контроль целостности файлов
AIDE (Advanced Intrusion Detection Environment) отслеживает изменения в файловой системе:
apt install aide
aide --init
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Запускайте проверку через cron: aide --check. Любое изменение системных файлов попадёт в отчёт.
Итого: чеклист
PermitRootLogin noв sshd_config- Вход только по SSH-ключам
- Firewall настроен, всё лишнее закрыто
- Автообновления активированы
- Ненужные сервисы остановлены и замаскированы
- Sysctl параметры усилены
umask 027установлен глобальноauditdзапущен с правилами- AIDE инициализирован и проверяется регулярно
Это не полный список — существуют SELinux/AppArmor, CIS Benchmarks, PAM-ограничения и многое другое. Но эти девять шагов уже выводят сервер из категории «лёгкая цель».
Хорошая статья, особенно про AIDE — многие про этот инструмент вообще не знают. Обязательно добавлю в свой чеклист при деплое новых серверов.