
Аудит защищённого дистрибутива Debian GNU/Linux
Аудит усиленных дистрибутивов Debian GNU/Linux и CentOS 8.
Основная тестовая среда — Debian GNU/Linux 9/10/11/12/13, CentOS 8 и Ubuntu 22; другие версии протестированы не полностью. В этом выпуске нет реализаций пунктов, связанных с рабочим столом.
Кодовая база основана на проекте OVH-debian-cis. Были изменены некоторые оригинальные реализации в соответствии с особенностями Debian 9/10/11/12/13 и CentOS 8, добавлены и реализованы проверки для STIG Red_Hat_Enterprise_Linux_7_V2R5, STIG Ubuntu V1R2 и рекомендаций cisecurity.org, а также добавлены и реализованы некоторые проверки сообществом HardenedLinux. Реализованы функции аудита и применения (apply) инфраструктуры, а для пунктов, подлежащих автоматическому исправлению, реализована функция автоматического исправления.
# bash bin/hardening.sh --audit-all
[...]
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/13.15_check_duplicate_gid.sh
13.15_check_duplicate_gid [INFO] Working on 13.15_check_duplicate_gid
13.15_check_duplicate_gid [INFO] Checking Configuration
13.15_check_duplicate_gid [INFO] Performing audit
13.15_check_duplicate_gid [ OK ] No duplicate GIDs
13.15_check_duplicate_gid [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 271
Total Checks Run : 271
Total Passed Checks : [ 226/271 ]
Total Failed Checks : [ 44/271 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 83.39 %
$ git clone https://github.com/hardenedlinux/harbian-audit.git && cd harbian-audit
# cp etc/default.cfg /etc/default/cis-hardening
# sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='$(pwd)'#" /etc/default/cis-hardening
# bin/hardening.sh --init
# bin/hardening.sh --audit-all
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 284
Total Checks Run : 284
Total Passed Checks : [ 260/284 ]
Total Failed Checks : [ 24/284 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 91.55 %
# bin/hardening.sh --set-hardening-level 5
# bin/hardening.sh --apply
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [INFO] Applying Hardening
1.1_install_updates [ OK ] No Upgrades to apply
1.1_install_updates [ OK ] Check Passed
[...]
Если используется сетевая установка с minimal CD для установки Debian GNU/Linux, перед использованием инструмента усиления необходимо установить пакеты.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS необходимо установить пакеты перед использованием инструмента усиления:
# yum install -y bc net-tools pciutils NetworkManager epel-release
Перед усилением необходимо задать пароль для всех пользователей. В противном случае после завершения усиления вы не сможете войти в систему. Пример (пользователи ОС: root и test):
# passwd
# passwd test
Скрипты усиления находятся в bin/hardening. Каждый скрипт имеет соответствующий файл конфигурации в etc/conf.d/[script_name].cfg.
Каждый скрипт усиления может быть индивидуально включён из своего файла конфигурации. Например, вот файл конфигурации по умолчанию для disable_system_accounts:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
Параметр status может принимать 3 значения:
disabled (ничего не делать): скрипт не будет запущен.audit (только чтение): скрипт проверит, следует ли внести какие-либо изменения.enabled (чтение/запись): скрипт проверит, нужно ли внести изменения, и автоматически применит то, что сможет.Вы также можете настроить элемент конфигурации для включения, изменив уровень, следуя командам:
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
Глобальная конфигурация находится в etc/hardening.cfg. Этот файл управляет уровнем журнала, а также каталогом резервного копирования. Когда скрипту указано отредактировать файл, он создаст резервную копию с отметкой времени в этом каталоге.
Чтобы выполнить проверки и применить исправления, запустите bin/hardening.sh.
Эта команда имеет 2 основных режима работы:
--audit: Аудит системы с использованием всех включённых скриптов и скриптов в режиме аудита.--apply: Аудит системы с использованием всех включённых скриптов и скриптов в режиме аудита и применение изменений для включённых скриптов.Кроме того, --audit-all может использоваться для принудительного запуска всех скриптов аудита, включая отключённые. Это не изменит систему.
--audit-all-enable-passed можно использовать как быстрый способ начать настройку. Он запустит все скрипты в режиме аудита. Если скрипт проходит проверку, он автоматически будет включён для последующих запусков. НЕ используйте эту опцию, если вы уже начали настройку своей конфигурации.
Используйте команду для усиления вашей ОС:
# bash bin/hardening.sh --apply
Если используется rsyslog и вы хотите выводить журнал harbian-audit в отдельный файл, конфигурация выглядит следующим образом:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
Журнал будет выводиться в файл /var/log/harbian-audit.log.
Если вы применяете docs/configurations/etc.iptables.rules.v4.sh к правилам брандмауэра и хотите выводить журнал iptables в отдельный файл, добавьте следующие строки в rsyslog.conf:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
При выполнении --apply и установке --set-hardening-level на 5 (самый высокий уровень) необходимо выполнить следующее: