
Аудит защищённого дистрибутива 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 (самый высокий уровень) необходимо выполнить следующее:
# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
Временно закомментируйте строку, содержащую pam_wheel.so. После завершения использования команды su раскомментируйте эту строку.
# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
Этот пример разрешает доступ к системе только 192.168.1.[1-255] 192.168.5.[1-255]. Необходимо настроить в соответствии с вашей ситуацией.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers
etc.iptables.rules.v4.sh Сначала установите пакет iptables-persistent, затем выполните следующее:
$ INTERFACENAME="your network interfacename(Example eth0)"
# bash docs/configurations/etc.iptables.rules.v4.sh $INTERFACENAME
# iptables-save > /etc/iptables/rules.v4
# ip6tables-save > /etc/iptables/rules.v6
nftables.conf Выполните следующее (ваше сетевое интерфейсное имя, пример eth0):
$ sed -i 's/^define int_if = ens33/define int_if = eth0/g' etc.nftables.conf
# nft -f ./etc.nftables.conf
# bin/hardening.sh --final
Некоторые проверки учитывают разнообразные ситуации и взаимозависимы; их необходимо применять (исправлять) несколько раз, и после каждого применения (исправления) необходима перезагрузка ОС.
8.1.35 Из-за настройки этого пункта правила аудита не будут добавлены.
8.4.1
8.4.2
Все они связаны с Aide. Лучше всего исправить все пункты после того, как они будут исправлены, чтобы исправить целостность базы данных в системе.
4.5
Получение исходного кода
$ git clone https://github.com/hardenedlinux/harbian-audit.git
Добавление собственного скрипта усиления
$ cp src/skel bin/hardening/99.99_custom_script.sh
$ chmod +x bin/hardening/99.99_custom_script.sh
$ cp src/skel.cfg etc/conf.d/99.99_custom_script.cfg
Напишите свою проверку, объясняя, что она делает, затем, если хотите протестировать:
$ sed -i "s/status=.+/status=enabled/" etc/conf.d/99.99_custom_script.cfg
$ bash bin/hardening.sh --audit --only 99.99
$ bash bin/hardening.sh --apply --only 99.99
Этот документ описывает дополнения к разделам, не включённым в эталонную документацию CIS. Включает эталонную документацию STIG и дополнительные проверки, рекомендованные сообществом HardenedLinux.
CIS Debian GNU/Linux 8 Benchmark v1.0.0
CIS Debian GNU/Linux 9 Benchmark v1.0.0
harbian audit Debian Linux 9 Benchmark
How to config grub2 password protection
How to persistent iptables rules with debian 9
How to deploy audisp-remote for auditd log
How to migrating from iptables to nftables in debian10
How to persistent nft rules with debian 10
How to fix SELinux access denied
Nodejs + redis + mysql demo
deploy-hyperledger-cello-on-debian-9
nginx-mutual-ssl-proxy-http
nginx-mutual-ssl-proxy-tcp-udp
how to creating and making an AMI public
how to use harbian-audit complianced for GNU/Linux Debian 9
How to creating and making a QEMU image of harbian-audit complianced Debian GNU/Linux 9
How to use QEMU image of harbian-audit complicanced Debian GNU/Linux 9
GPL 3.0
Этот проект представляет собой набор инструментов. Они предназначены для помощи системному администратору в создании безопасной среды. Хотя мы используем их в OVH для усиления нашей инфраструктуры, соответствующей PCI-DSS, мы не можем гарантировать, что они будут работать для вас. Они не магическим образом обезопасят любой хост.
Кроме того, цитируя лицензию:
THIS SOFTWARE IS PROVIDED BY OVH SAS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OVH SAS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3-Clause BSD