
Audit de distribution Debian GNU/Linux durcie
Audit de distributions durcies Debian GNU/Linux et CentOS 8.
L'environnement de test principal est Debian GNU/Linux 9/10/11/12/13, CentOS 8 et Ubuntu 22. Les autres versions ne sont pas complètement testées. Cette version ne comporte aucune implémentation relative au bureau.
Le cadre du code est basé sur le projet OVH-debian-cis. Certaines implémentations originales ont été modifiées selon les caractéristiques de Debian 9/10/11/12/13 et CentOS 8. Des éléments de vérification ont été ajoutés et implémentés pour les recommandations STIG Red_Hat_Enterprise_Linux_7_V2R5, STIG Ubuntu V1R2 et cisecurity.org, ainsi que certains éléments de vérification par la communauté HardenedLinux. Les fonctions d'audit et d'application de l'infrastructure sont implémentées, et la fonction de correction automatique est implémentée pour les éléments pouvant être corrigés automatiquement.
# 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 vous utilisez une installation réseau à partir d'un CD minimal pour installer Debian GNU/Linux, vous devez installer des paquets avant d'utiliser l'outil de durcissement.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS nécessite l'installation de paquets avant d'utiliser l'outil de durcissement :
# yum install -y bc net-tools pciutils NetworkManager epel-release
Vous devez définir un mot de passe pour tous les utilisateurs avant le durcissement. Sinon, vous ne pourrez pas vous connecter après la fin du durcissement. Exemple (utilisateur OS : root et test) :
# passwd
# passwd test
Les scripts de durcissement se trouvent dans bin/hardening. Chaque script a un fichier de configuration correspondant dans etc/conf.d/[nom_script].cfg.
Chaque script de durcissement peut être activé individuellement à partir de son fichier de configuration. Par exemple, voici le fichier de configuration par défaut pour disable_system_accounts :
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
Le paramètre status peut prendre 3 valeurs :
disabled (ne rien faire) : Le script ne s'exécutera pas.audit (lecture seule) : Le script vérifiera si un changement devrait être appliqué.enabled (lecture-écriture) : Le script vérifiera si un changement doit être effectué et appliquera automatiquement ce qu'il peut.Vous pouvez également définir l'élément de configuration pour activer en modifiant le niveau, avec la commande suivante :
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
La configuration globale se trouve dans etc/hardening.cfg. Ce fichier contrôle le niveau de journalisation ainsi que le répertoire de sauvegarde. Lorsqu'un script est invité à modifier un fichier, il créera une sauvegarde horodatée dans ce répertoire.
Pour exécuter les vérifications et appliquer les corrections, exécutez bin/hardening.sh.
Cette commande a 2 modes de fonctionnement principaux :
--audit : Auditez votre système avec tous les scripts activés et en mode audit--apply : Auditez votre système avec tous les scripts activés et en mode audit et appliquez les modifications pour les scripts activésDe plus, --audit-all peut être utilisé pour forcer l'exécution de tous les scripts d'audit, y compris ceux désactivés. Cela ne modifiera pas le système.
--audit-all-enable-passed peut être utilisé comme un moyen rapide de démarrer votre configuration. Il exécutera tous les scripts en mode audit. Si un script réussit, il sera automatiquement activé pour les exécutions futures. N'UTILISEZ PAS cette option si vous avez déjà commencé à personnaliser votre configuration.
Utilisez la commande pour durcir votre OS :
# bash bin/hardening.sh --apply
Si rsyslog est utilisé et que vous souhaitez imprimer le journal harbian-audit dans un fichier journal séparé, la configuration est la suivante :
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
Le journal sera écrit dans le fichier /var/log/harbian-audit.log.
Si vous appliquez docs/configurations/etc.iptables.rules.v4.sh à vos règles de pare-feu et souhaitez imprimer le journal iptables dans un fichier journal séparé, insérez les lignes suivantes dans rsyslog.conf :
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
Lorsque vous exécutez --apply et que set-hardening-level est défini sur 5 (le niveau le plus élevé), vous devez effectuer les opérations suivantes :
# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
Commentez temporairement la ligne contenant pam_wheel.so. Après avoir fini d'utiliser la commande su, veuillez décommenter la ligne.
# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
Cet exemple n'autorise que 192.168.1.[1-255] 192.168.5.[1-255] à accéder à ce système. À configurer selon votre situation.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers
etc.iptables.rules.v4.sh Installez d'abord le paquet iptables-persistent, puis effectuez les opérations suivantes :
$ 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 Effectuez les opérations suivantes (votre nom d'interface réseau, par exemple 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
Certains éléments de vérification couvrent diverses situations et sont interdépendants ; ils doivent être appliqués (corrigés) plusieurs fois, et l'OS doit être redémarré après chaque application (correction).
8.1.35 Parce que cet élément est défini, les règles d'audit ne seront pas ajoutées.
8.4.1
8.4.2
Ils sont tous liés à aide. Il est préférable de corriger tous les éléments après qu'ils aient été corrigés pour fixer l'intégrité de la base de données dans le système.
4.5
Obtenir le code source
$ git clone https://github.com/hardenedlinux/harbian-audit.git
Ajouter un script de durcissement personnalisé
$ 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
Codez votre vérification en expliquant ce qu'elle fait, puis si vous voulez tester
$ 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
Ce document décrit les ajouts aux sections non incluses dans la documentation de référence CIS. Il inclut la documentation de référence STIG et des vérifications supplémentaires recommandées par la communauté 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
Ce projet est un ensemble d'outils. Ils sont destinés à aider l'administrateur système à construire un environnement sécurisé. Bien que nous les utilisions chez OVH pour durcir notre infrastructure conforme PCI-DSS, nous ne pouvons pas garantir qu'ils fonctionneront pour vous. Ils ne sécuriseront pas magiquement n'importe quel hôte.
De plus, citant la licence :
CE LOGICIEL EST FOURNI PAR OVH SAS ET LES CONTRIBUTEURS « EN L'ÉTAT » ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADÉQUATION À UN USAGE PARTICULIER SONT DÉCLINÉES. EN AUCUN CAS OVH SAS ET LES CONTRIBUTEURS NE SERONT TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACQUISITION DE BIENS OU SERVICES DE SUBSTITUTION ; LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU L'INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT CONTRACTUELLE, STRICTE OU DÉLICTUELLE (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE L'UTILISATION DE CE LOGICIEL, MÊME SI LA POSSIBILITÉ DE TELS DOMMAGES A ÉTÉ SIGNALÉE.
3-Clause BSD