
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:
# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
Comente temporalmente la línea que contiene pam_wheel.so. Después de haber terminado de usar el comando su, descomente la línea.
# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
Este ejemplo solo permite que 192.168.1.[1-255] 192.168.5.[1-255] accedan a este sistema. Debe configurarse según su situación.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers
etc.iptables.rules.v4.sh Primero instale el paquete iptables-persistent, luego haga lo siguiente:
$ 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 Haga lo siguiente (su nombre de interfaz de red (ejemplo 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
Algunos elementos de verificación examinan una variedad de situaciones y son interdependientes; deben aplicarse (corregirse) varias veces, y el SO debe reiniciarse después de cada aplicación (corrección).
8.1.35 Debido a que este elemento está configurado, las reglas de auditoría no se agregarán.
8.4.1 8.4.2 Todos estos están relacionados con aide. Es mejor corregir todos los elementos después de que se hayan corregido para arreglar la integridad de la base de datos en el sistema.
4.5
Obtener el código fuente
$ git clone https://github.com/hardenedlinux/harbian-audit.git
Agregar un script de endurecimiento personalizado
$ 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
Codifique su comprobación explicando lo que hace, luego si desea probar
$ 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
Este documento es una descripción de las adiciones a las secciones no incluidas en la documentación de referencia de CIS. Incluye la documentación de referencia de STIG y las comprobaciones adicionales recomendadas por la comunidad 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
Cómo configurar la protección por contraseña de grub2
Cómo hacer persistentes las reglas de iptables con Debian 9
Cómo implementar audisp-remote para el registro de auditd
Cómo migrar de iptables a nftables en Debian 10
Cómo hacer persistentes las reglas nft con Debian 10
Cómo solucionar denegación de acceso de SELinux
Demo de Nodejs + redis + mysql
Implementar hyperledger-cello en Debian 9
nginx-mutual-ssl-proxy-http
nginx-mutual-ssl-proxy-tcp-udp
Cómo crear y hacer una imagen QEMU de Debian GNU/Linux 9 compatible con harbian-audit
Cómo usar la imagen QEMU de Debian GNU/Linux 9 compatible con harbian-audit
GPL 3.0
Este proyecto es un conjunto de herramientas. Están destinadas a ayudar al administrador del sistema a construir un entorno seguro. Si bien lo usamos en OVH para endurecer nuestra infraestructura compatible con PCI-DSS, no podemos garantizar que funcione para usted. No asegurará mágicamente ningún host aleatorio.
Además, citando la Licencia:
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.
BSD de 3 cláusulas