
Auditoría de distribución Debian GNU/Linux reforzada
Auditoría de distribuciones endurecidas Debian GNU/Linux y CentOS 8.
El entorno de prueba principal es Debian GNU/Linux 9/10/11/12/13, CentOS 8 y Ubuntu 22. Otras versiones no han sido completamente probadas. No hay implementaciones de elementos relacionados con escritorio en esta versión.
El marco de código se basa en el proyecto OVH-debian-cis. Se modificaron algunas implementaciones originales según las características de Debian 9/10/11/12/13 y CentOS 8. Se agregaron e implementaron elementos de verificación para STIG Red_Hat_Enterprise_Linux_7_V2R5, STIG Ubuntu V1R2 y las recomendaciones de cisecurity.org, y también se agregaron e implementaron algunos elementos de verificación por parte de la comunidad HardenedLinux. Se implementan las funciones de auditoría y aplicación de la infraestructura, y la función de corrección automática se implementa para los elementos que se pueden corregir automáticamente.
# 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
[...]
Si utiliza instalación de red desde un CD mínimo para instalar Debian GNU/Linux, necesita instalar paquetes antes de usar la herramienta de endurecimiento.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS necesita instalar paquetes antes de usar la herramienta de endurecimiento:
# yum install -y bc net-tools pciutils NetworkManager epel-release
Debe establecer una contraseña para todos los usuarios antes del endurecimiento. De lo contrario, no podrá iniciar sesión después de que se complete el endurecimiento. Ejemplo (usuario del SO: root y test):
# passwd
# passwd test
Los scripts de endurecimiento se encuentran en bin/hardening. Cada script tiene un archivo de configuración correspondiente en etc/conf.d/[nombre_script].cfg.
Cada script de endurecimiento puede habilitarse individualmente desde su archivo de configuración. Por ejemplo, este es el archivo de configuración predeterminado para disable_system_accounts:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
El parámetro status puede tomar 3 valores:
disabled (no hacer nada): El script no se ejecutará.audit (solo lectura): El script verificará si se debería aplicar algún cambio.enabled (lectura/escritura): El script verificará si se debe realizar algún cambio y aplicará automáticamente lo que pueda.También puede establecer el elemento de configuración para habilitar modificando el nivel, mediante el siguiente comando:
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
La configuración global está en etc/hardening.cfg. Este archivo controla el nivel de registro, así como el directorio de respaldo. Cuando un script recibe la instrucción de editar un archivo, creará una copia de seguridad con marca de tiempo en este directorio.
Para ejecutar las comprobaciones y aplicar las correcciones, ejecute bin/hardening.sh.
Este comando tiene 2 modos de operación principales:
--audit: Audite su sistema con todos los scripts habilitados y en modo auditoría.--apply: Audite su sistema con todos los scripts habilitados y en modo auditoría, y aplique los cambios para los scripts habilitados.Además, se puede usar --audit-all para forzar la ejecución de todos los scripts de auditoría, incluidos los deshabilitados. Esto no cambiará el sistema.
--audit-all-enable-passed se puede usar como una forma rápida de iniciar su configuración. Ejecutará todos los scripts en modo auditoría. Si un script pasa, se habilitará automáticamente para ejecuciones futuras. NO use esta opción si ya ha comenzado a personalizar su configuración.
Use el comando para endurecer su SO:
# bash bin/hardening.sh --apply
Si se usa rsyslog y desea imprimir el registro de harbian-audit en un archivo de registro separado, la configuración es la siguiente:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
El registro se enviará al archivo /var/log/harbian-audit.log.
Si aplica docs/configurations/etc.iptables.rules.v4.sh a sus reglas de firewall y desea imprimir el registro de iptables en un archivo de registro separado, inserte las siguientes líneas en rsyslog.conf:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
Cuando se ejecuta --apply y set-hardening-level se establece en 5 (el nivel más alto), debe hacer lo siguiente: