Hardening Rocky Linux: SELinux, firewalld и проверка OpenSCAP по CIS

У Rocky Linux и других RHEL-совместимых систем лучшие встроенные средства проверки: профили безопасности SCAP Security Guide, которые запускаются одной командой и дают отчёт по пунктам CIS и DISA STIG. Общие принципы и сопоставление с ФСТЭК и NIST: hardening Linux. Шаги подходят также для AlmaLinux и RHEL. О выборе замены CentOS: миграция с CentOS 8.
Эталон
- CIS Rocky Linux Benchmark для вашей мажорной версии.
- Профили SCAP Security Guide: open-scap.org.
- NIST SP 800-123.
Шаг 1. Обновления и автоматизация
dnf upgrade -y
dnf install -y dnf-automatic needs-restarting
sed -i 's/^apply_updates.*/apply_updates = yes/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic-install.timer
dnf needs-restarting -r
Автоустановка всех обновлений подходит не для каждого сервера. Для критичных систем оставьте download_updates = yes и apply_updates = no, ставьте вручную после проверки.
Шаг 2. SELinux в режиме enforcing
sestatus
grep ^SELINUX= /etc/selinux/config # должно быть enforcing
ausearch -m avc -ts recent | head
Если сервис не работает под SELinux, не отключайте его. Найдите причину в журнале AVC и создайте разрешение (audit2allow) или исправьте контекст файлов (restorecon -Rv /path). Отключение SELinux ради «чтобы заработало» — частая и вредная практика.
Шаг 3. firewalld
systemctl enable --now firewalld
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh --add-service=https
firewall-cmd --reload
firewall-cmd --list-all
Подробнее: nftables и firewalld.
Шаг 4. Политика шифрования
update-crypto-policies --show
update-crypto-policies --set DEFAULT # или FUTURE, строже
crypto-policies задаёт допустимые алгоритмы сразу для SSH, TLS и других библиотек. Режим FUTURE отключает устаревшие алгоритмы, но может сломать связь со старыми клиентами: проверяйте перед применением.
Шаг 5. SSH и sudo
# /etc/ssh/sshd_config.d/10-hardening.conf
PermitRootLogin no
PasswordAuthentication no
MaxAuthTries 3
X11Forwarding no
sshd -t && systemctl reload sshd
Группа администраторов в RHEL-семействе называется wheel. Правила sudo: sudo и sudoers.
Шаг 6. Аудит и целостность
dnf install -y audit aide
systemctl enable --now auditd
aide --init && mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
aide --check
Правила аудита для системных файлов добавляются в /etc/audit/rules.d/, примеры есть в статье Ubuntu. База AIDE должна храниться вне сервера или на носителе только для чтения.
Автоматическая проверка OpenSCAP
dnf install -y openscap-scanner scap-security-guide
ls /usr/share/xml/scap/ssg/content/ | grep -E 'rl|rhel'
oscap info /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml | grep -i 'profile'
Имя файла зависит от версии: для Rocky это ssg-rl9-ds.xml (в старых наборах — ssg-rhel9-ds.xml). Запуск проверки по профилю CIS:
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_cis_server_l1 \
--results results.xml --report report.html \
/usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
Идентификаторы профилей берите из вывода oscap info. Откройте report.html: пункты разделены на пройденные и не пройденные, у каждого есть описание и команда исправления. Генерация скрипта исправления (oscap xccdf generate fix) нужна для изучения, применять его без теста на копии нельзя.
Как проверить
getenforceвозвращаетEnforcing.firewall-cmd --list-allпоказывает только нужные службы.- В отчёте OpenSCAP число непройденных пунктов уменьшилось, а оставшиеся записаны в список исключений с причиной.
Rocky Linux не имеет сертификата ФСТЭК. Для систем с требованием сертифицированной ОС смотрите РЕД ОС и Astra Linux.
Остальные разделы CIS: особенности Rocky Linux
Полный перечень мер по разделам 1–7 дан в общей статье: hardening Linux. Ниже то, что в RHEL-семействе делается иначе.
Раздел 1. Пакеты, загрузчик, MAC
# проверка подписей пакетов
grep -E '^(gpgcheck|localpkg_gpgcheck|repo_gpgcheck)' /etc/dnf/dnf.conf
sudo sed -i '/^gpgcheck/d' /etc/dnf/dnf.conf && echo 'gpgcheck=1' | sudo tee -a /etc/dnf/dnf.conf
# пароль загрузчика
sudo grub2-setpassword
sudo grubby --update-kernel=ALL --args="audit=1 audit_backlog_limit=8192"
# лишнее для сервера (CIS): средства диагностики SELinux и mcstrans
sudo dnf remove -y setroubleshoot mcstrans
Проверка процессов, работающих вне ограничений SELinux:
ps -eZ | grep -E 'unconfined_service_t'
sudo semanage login -l
Процессы в unconfined_service_t — это службы без политики: их нужно либо ограничить, либо знать, почему они работают так.
Раздел 2. Ограничение запуска (fapolicyd)
sudo dnf install -y fapolicyd
sudo systemctl enable --now fapolicyd
sudo fapolicyd-cli --list | head
Fapolicyd разрешает запуск только программ из пакетов и доверенных файлов: это аналог меры ОПС. Включайте на тестовом сервере: нестандартное ПО потребует правил разрешения.
Раздел 5. PAM через authselect
authselect current
sudo authselect select sssd with-faillock --force
sudo authselect enable-feature with-faillock
# /etc/security/faillock.conf: deny = 5, unlock_time = 900
# /etc/security/pwquality.conf: minlen = 14, minclass = 4
В RHEL-семействе файлы /etc/pam.d/system-auth и password-auth управляются через authselect: прямые правки перезаписываются. Для нестандартных настроек создайте свой профиль: authselect create-profile. Параметр ENCRYPT_METHOD в /etc/login.defs для RHEL 9 по умолчанию SHA512 (или YESCRYPT в новых релизах).
Раздел 6. Аудит
sudo dnf install -y audit audit-libs
sudo systemctl enable --now auditd
# правила из общей статьи сохраните в /etc/audit/rules.d/50-cis.rules
sudo augenrules --load
sudo auditctl -s
Для auditd служба в RHEL-семействе управляется через service auditd restart (прямой systemctl restart может быть заблокирован политикой юнита): используйте augenrules --load для применения правил.
Раздел 7. Обновления безопасности
sudo dnf updateinfo list security
sudo dnf upgrade --security -y
sudo needs-restarting -r
Проверка соответствия и список профилей
oscap info /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml | grep -i 'profile'
# типичные профили:
# cis_server_l1, cis_server_l2 - CIS Level 1 / Level 2
# stig - DISA STIG
# ospp - OS Protection Profile
sudo oscap xccdf generate fix --profile xccdf_org.ssgproject.content_profile_cis_server_l1 \
--fix-type bash --output remediate.sh /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
Скрипт исправления читайте, но не запускайте на боевом сервере без теста: он перенастраивает разделы, сеть и PAM. Профиль STIG строже CIS и подходит для сравнения. Для ФСТЭК готовых профилей в SCAP Security Guide нет: сопоставляйте результаты по таблицам общей статьи.
Параметры ядра и права на файлы по методическому документу ФСТЭК, готовый sysctl-файл и скрипт проверки: рекомендации ФСТЭК по настройке Linux.




















