Hardening Debian: безопасная настройка сервера по CIS Benchmark

Debian минималистичен: после установки на сервере мало лишнего, но почти нет и защитных настроек. Ниже порядок действий и проверка по CIS Debian Linux Benchmark. Общие принципы и сопоставление с ФСТЭК и NIST: hardening Linux.
Эталон
- CIS Debian Linux Benchmark: берите версию, соответствующую вашему релизу.
- Securing Debian Manual: официальное руководство проекта.
- NIST SP 800-123.
Шаг 1. Обновления безопасности
apt update && apt full-upgrade -y
apt install -y unattended-upgrades apt-listchanges needrestart
dpkg-reconfigure -plow unattended-upgrades
cat /etc/apt/sources.list.d/*.sources 2>/dev/null | grep -i security
В списке источников должен быть debian-security. Узнать об известных уязвимостях установленных пакетов поможет debsecan:
apt install -y debsecan
debsecan --suite bookworm --only-fixed --format detail | head
Укажите кодовое имя вашего релиза вместо bookworm.
Шаг 2. sudo и SSH
Минимальная установка Debian может не содержать sudo: apt install -y sudo, затем добавьте администратора в группу (usermod -aG). Настройка прав: sudo и sudoers. SSH:
# /etc/ssh/sshd_config.d/10-hardening.conf
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
X11Forwarding no
sshd -t && systemctl reload ssh
Шаг 3. Firewall на nftables
В Debian по умолчанию используется nftables, а iptables работает как совместимость. Пример набора правил и порядок применения без потери доступа: nftables и firewalld. Включите службу и сохраните правила:
systemctl enable --now nftables
nft list ruleset
Шаг 4. AppArmor
В Debian AppArmor есть, но может быть выключен. Проверьте и включите:
apt install -y apparmor apparmor-utils apparmor-profiles
aa-status
Если в выводе apparmor module is loaded нет, добавьте в параметры ядра apparmor=1 security=apparmor (в GRUB_CMDLINE_LINUX файла /etc/default/grub), выполните update-grub и перезагрузите сервер.
Шаг 5. Контроль целостности пакетов и файлов
apt install -y debsums aide
debsums -s # изменённые файлы пакетов (тихий режим)
aideinit # создать базу AIDE, затем:
aide --check
Расхождения в debsums — повод разобраться: файл мог быть изменён вручную или чужим. Базу AIDE копируйте на отдельный носитель, иначе взломавший её перепишет.
Шаг 6. Аудит
apt install -y auditd audispd-plugins
cat > /etc/audit/rules.d/90-identity.rules <<'EOF'
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k sudo
EOF
augenrules --load
Автоматическая проверка
apt install -y lynis
lynis audit system --quick
Lynis выставляет индекс защищённости и список предложений. Сопоставляйте их с пунктами CIS Benchmark, а не принимайте на веру каждое. OpenSCAP-профили для Debian распространяются не так широко, как для RHEL-семейства, поэтому основная сверка идёт по документу CIS.
Как проверить
sshd -T | grep -E 'permitrootlogin|passwordauthentication'
nft list ruleset | head
aa-status | head -3
debsums -s; echo "debsums rc=$?"
ss -tulpn
Ожидаемо: root и пароли отключены, действует политика drop для входящих, AppArmor загружен, debsums без вывода, на портах только нужные службы. Для систем, где требуется сертифицированная ОС, Debian не подходит: смотрите Astra Linux.
Остальные разделы CIS: особенности Debian
Полный перечень мер по разделам 1–7 дан в общей статье: hardening Linux. Ниже то, что в Debian делается иначе.
Раздел 1. /tmp, загрузчик, ядро
sudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount
sudo mkdir -p /etc/systemd/system/tmp.mount.d
printf '[Mount]\nOptions=mode=1777,strictatime,noexec,nodev,nosuid\n' | sudo tee /etc/systemd/system/tmp.mount.d/override.conf
sudo systemctl daemon-reload && sudo systemctl enable --now tmp.mount
Пароль загрузчика задаётся так же, как в Ubuntu: хеш grub-mkpasswd-pbkdf2 в /etc/grub.d/40_custom, затем update-grub. Дополнительные параметры ядра по рекомендациям KSPP (если нет конфликтов с вашим ПО):
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
kernel.unprivileged_bpf_disabled = 1
net.core.bpf_jit_harden = 2
kernel.kexec_load_disabled = 1
Раздел 2. Почтовый агент
В Debian по умолчанию ставится exim4, слушающий localhost. CIS требует, чтобы MTA принимал почту только локально. Проверьте и настройте:
ss -lntp | grep ':25'
sudo dpkg-reconfigure exim4-config # выберите: local delivery only
# если почта не нужна совсем: sudo apt purge exim4-base exim4-daemon-light
Раздел 5. PAM
sudo apt install -y libpam-pwquality
sudo pam-auth-update # включить профили pwquality и faillock
# /etc/security/faillock.conf
deny = 5
unlock_time = 900
# история паролей — в /etc/pam.d/common-password
password required pam_pwhistory.so remember=24 enforce_for_root use_authtok
Модуль pam_faillock доступен в Debian 12 и новее. В более старых релизах используйте pam_tally2 по документации вашей версии.
Раздел 6. Аудит и AppArmor
sudo apt install -y auditd audispd-plugins apparmor-profiles apparmor-profiles-extra
sudo grep -n GRUB_CMDLINE_LINUX= /etc/default/grub # audit=1 audit_backlog_limit=8192 apparmor=1 security=apparmor
sudo update-grub
Раздел 7. Контроль пакетов и состояния
debsums -s # изменённые файлы пакетов
debsecan --suite bookworm --only-fixed # известные уязвимости с доступным исправлением
dpkg -l | awk '/^rc/ {print $2}' # удалённые пакеты с остатками конфигурации
Остатки конфигурации удалённых пакетов очистите: sudo apt purge $(dpkg -l | awk '/^rc/ {print $2}') (проверьте список перед запуском).
Проверка соответствия
Для Debian нет такого же распространённого набора профилей OpenSCAP, как для RHEL, поэтому основа проверки: CIS Debian Linux Benchmark как чек-лист, lynis audit system для автоматического обзора и ваш список отклонений с причинами. Соответствие мерам ФСТЭК и разделам NIST дано в таблицах общей статьи.
Параметры ядра и права на файлы по методическому документу ФСТЭК, готовый sysctl-файл и скрипт проверки: рекомендации ФСТЭК по настройке Linux.




















