ryezone_labs.ansible_cis_ubuntu_2004

Ansible CIS Ubuntu 20.04 LTS Renforcement 
Ubuntu durci selon le CIS : prévention contre les cyberattaques et les malwares pour les systèmes critiques Les benchmarks CIS renforcent vos systèmes en supprimant :
- des programmes non sécurisés.
- des systèmes de fichiers inutilisés.
- des ports ou services non nécessaires.
- des opérations privilégiées auditables.
- des privilèges administratifs restrictifs.
Les recommandations des benchmarks CIS sont appliquées sur des machines virtuelles dans le cloud public et privé. Elles sont également utilisées pour sécuriser les déploiements sur site. Dans certaines industries, le durcissement d’un système selon une norme connue du public est un critère que les auditeurs recherchent. Les benchmarks CIS sont souvent un choix de durcissement proposé par les auditeurs pour les industries nécessitant une conformité PCI-DSS et HIPAA, comme la banque, les télécommunications et la santé. Si vous tentez d'obtenir la conformité à une norme de sécurité acceptée par l'industrie, comme le PCI DSS, l'APRA ou l'ISO 27001, vous devez démontrer que vous avez appliqué des normes de durcissement documentées à tous les systèmes dans le champ d'évaluation.
Les benchmarks CIS pour Ubuntu sont organisés en différents profils, à savoir « Niveau 1 » et « Niveau 2 », destinés aux environnements de serveur et de poste de travail.
Un profil de Niveau 1 est destiné à être une manière pratique et prudente de sécuriser un système sans trop d'impact sur les performances.
- Désactivation des systèmes de fichiers non nécessaires,
- Restriction des permissions des utilisateurs sur les fichiers et répertoires,
- Désactivation des services non nécessaires.
- Configuration des pare-feu réseau.
Un profil de Niveau 2 est utilisé lorsque la sécurité est considérée comme très importante et peut avoir un impact négatif sur les performances du système.
- Création de partitions séparées,
- Audit des opérations privilégiées.
L'outil de durcissement CIS Ubuntu vous permet de sélectionner le niveau de durcissement souhaité selon un profil (Niveau 1 ou Niveau 2) et l'environnement de travail (serveur ou poste de travail) pour un système. Exemple :
ansible-playbook -i inventory cis-ubuntu-20.yaml --tags="level_1_server"
Vous pouvez lister tous les tags en exécutant la commande ci-dessous :
ansible-playbook -i host run.yaml --list-tags
J'ai écrit tous les rôles basés sur
CIS Ubuntu Linux 20.04 LTS Benchmark
v1.0.0 - 21-07-2020
Vérifier le répertoire Exemple
Exigences
Vous devez lire attentivement les tâches pour vous assurer que ces modifications ne casseront pas vos systèmes avant d'exécuter ce playbook.
Vous pouvez télécharger gratuitement le livre Benchmark CIS à partir de cette URL Free Benchmark
Pour commencer à travailler dans ce Rôle, vous devez simplement installer Ansible. Installer Ansible
Variables de Rôle
Vous devez examiner toute la configuration par défaut avant d'exécuter ce playbook. De nombreuses variables de rôle sont définies dans defaults/main.yml.
- Si vous envisagez d'appliquer ce rôle à des serveurs, vous devez avoir une connaissance de base du benchmark CIS et comprendre l'impact que cela peut avoir sur un système.
- Lire et modifier les valeurs par défaut configurables.
Exemples de configurations qui devraient immédiatement être considérées pour exclusion :
5.1.8 Assurez-vous que cron est restreint aux utilisateurs autorisés et 5.2.17 Assurez-vous que l'accès SSH est limité, ce qui limite par défaut efficacement l'accès à l'hôte (y compris via ssh).
Par exemple :
- CIS-Ubuntu-20.04-Ansible/defaults/main.yml
#Section 5
#5.1.8 Assurez-vous que cron est restreint aux utilisateurs autorisés
allowd_hosts: "TOUS: 0.0.0.0/0.0.0.0, 192.168.2.0/255.255.255.0"
# 5.2.17 Assurez-vous que l'accès SSH est limité
allowed_users: ali saleh baker root #Mettez None ou liste d'utilisateurs avec un espace entre chaque utilisateur
Si vous avez besoin de modifier des modèles de fichiers, vous pouvez les trouver sous files/templates/*
.
Dépendances
- Version Ansible > 2.9
Exemple de Playbook
Voici un exemple de playbook
---
- hosts: host1
become: yes
remote_user: root
gather_facts: no
roles:
- { role: "CIS-Ubuntu-20.04-Ansible",}
Exécuter tout
Si vous souhaitez exécuter toutes les étiquettes, utilisez la commande ci-dessous :
ansible-playbook -i [inventoryfile] [playbook].yaml
Exécuter une section spécifiée
ansible-playbook -i host run.yaml -t section2
Exécuter plusieurs sections
ansible-playbook -i host run.yaml -t section2 -t 6.1.1
Remarque : Lorsque vous exécutez une tâche individuelle, assurez-vous des dépendances entre les tâches, par exemple, si vous exécutez le tag 4.1.1.2 Assurez-vous que le service auditd est activé avant d'exécuter 4.1.1.1 Assurez-vous que auditd est installé, vous obtiendrez une erreur au moment de l'exécution.
Les points avec
Tildene sont pas encore implémentés, je travaille actuellement dessus.Assurez-vous de sélectionner un service de temps, pour moi, j'utilise ntp, mais vous pouvez utiliser d'autres services comme [
systemd-timesyncd
,ntp
,chrony
] dans les paramètresdefaults/main.yaml
Tests 01/11/2020 Testé sur AWS EC2 ubuntu 20.04 LTS [Pass] 01/11/2020 Testé sur serveur local Ubuntu 20.04 LTS [Pass]
Avant d'exécuter, assurez-vous de mettre à jour la liste des utilisateurs sous
defaults/main.yaml
surlist_of_os_users
+allowed_users
Assurez-vous
de définir le bon sous-réseau sousdefaults/main.yaml
surallowd_hosts
Table des Rôles :
1 Configuration Initiale
- 1.1 Configuration du Système de Fichiers
- 1.1.1 Désactiver les systèmes de fichiers inutilisés
- 1.1.1.1 Assurez-vous que le montage des systèmes de fichiers cramfs est désactivé (Automatisé)
- 1.1.1.2 Assurez-vous que le montage des systèmes de fichiers freevxfs est désactivé - (Automatisé)
- 1.1.1.3 Assurez-vous que le montage des systèmes de fichiers jffs2 est désactivé (Automatisé)
- 1.1.1.4 Assurez-vous que le montage des systèmes de fichiers hfs est désactivé (Automatisé)
- 1.1.1.5 Assurez-vous que le montage des systèmes de fichiers hfsplus est désactivé - (Automatisé)
- 1.1.1.6 Assurez-vous que le montage des systèmes de fichiers udf est désactivé (Automatisé)
- 1.1.1.7 Assurez-vous que le montage des systèmes de fichiers FAT est limité (Manuel)
- 1.1.2 Assurez-vous que /tmp est configuré (Automatisé)
- 1.1.3 Assurez-vous que l'option nodev est définie sur la partition /tmp (Automatisé)
- 1.1.4 Assurez-vous que l'option nosuid est définie sur la partition /tmp (Automatisé)
- 1.1.5 Assurez-vous que l'option noexec est définie sur la partition /tmp (Automatisé)
- 1.1.6 Assurez-vous que /dev/shm est configuré (Automatisé)
- 1.1.7 Assurez-vous que l'option nodev est définie sur la partition /dev/shm (Automatisé)
- 1.1.8 Assurez-vous que l'option nosuid est définie sur la partition /dev/shm (Automatisé)
- 1.1.9 Assurez-vous que l'option noexec est définie sur la partition /dev/shm (Automatisé)
1.1.10 Assurez-vous qu'une partition séparée existe pour /var (Automatisé)1.1.11 Assurez-vous qu'une partition séparée existe pour /var/tmp (Automatisé)1.1.12 Assurez-vous que l'option nodev est définie sur la partition /var/tmp (Automatisé)1.1.13 Assurez-vous que l'option nosuid est définie sur la partition /var/tmp (Automatisé)1.1.14 Assurez-vous que l'option noexec est définie sur la partition /var/tmp (Automatisé)1.1.15 Assurez-vous qu'une partition séparée existe pour /var/log (Automatisé)1.1.16 Assurez-vous qu'une partition séparée existe pour /var/log/audit - (Automatisé)1.1.17 Assurez-vous qu'une partition séparée existe pour /home (Automatisé)1.1.18 Assurez-vous que l'option nodev est définie sur la partition /home (Automatisé)1.1.19 Assurez-vous que l'option nodev est définie sur les partitions de médias amovibles (Manuel)1.1.20 Assurez-vous que l'option nosuid est définie sur les partitions de médias amovibles - (Manuel)1.1.21 Assurez-vous que l'option noexec est définie sur les partitions de médias amovibles - (Manuel)- 1.1.22 Assurez-vous que le bit collant est défini sur tous les répertoires accessibles en écriture par tous - (Automatisé)
- 1.1.23 Désactiver le montage automatique (Automatisé)
- 1.1.24 Désactiver le stockage USB (Automatisé)
1.2 Configurer les Mises à Jour Logicielles
1.2.1 Assurez-vous que les dépôts de gestion de packages sont configurés (Manuel)1.2.2 Assurez-vous que les clés GPG sont configurées (Manuel)
1.3 Configurer sudo
- 1.3.1 Assurez-vous que sudo est installé (Automatisé)
- 1.3.2 Assurez-vous que les commandes sudo utilisent pty (Automatisé)
- 1.3.3 Assurez-vous qu'un fichier journal sudo existe (Automatisé)
1.4 Vérification de l'Intégrité du Système de Fichiers
- 1.4.1 Assurez-vous que AIDE est installé (Automatisé)
- 1.4.2 Assurez-vous que l'intégrité du système de fichiers est vérifiée régulièrement (Automatisé)
1.5 Paramètres de Démarrage Sécurisé
- 1.5.1 Assurez-vous qu'un mot de passe de chargeur de démarrage est défini (Automatisé)
- 1.5.2 Assurez-vous que les permissions sur la configuration du chargeur de démarrage sont configurées - (Automatisé)
- 1.5.3 Assurez-vous qu'une authentification est requise pour le mode utilisateur unique (Automatisé)
1.6 Durcissement de Processus Supplémentaires
- 1.6.1 Assurez-vous que le support XD/NX est activé (Automatisé)
- 1.6.2 Assurez-vous que l'aléatoire de l'espace d'adresses (ASLR) est activé - (Automatisé)
- 1.6.3 Assurez-vous que le pré-lien est désactivé (Automatisé)
- 1.6.4 Assurez-vous que les vidanges de mémoire noyau sont restreintes (Automatisé)
1.7 Contrôle d'Accès Obligatoire
- 1.7.1 Configurer AppArmor
- 1.7.1.1 Assurez-vous qu'AppArmor est installé (Automatisé)
- 1.7.1.2 Assurez-vous qu'AppArmor est activé dans la configuration du chargeur de démarrage - (Automatisé)
- 1.7.1.3 Assurez-vous que tous les Profils AppArmor sont en mode d'application ou de plainte - (Automatisé)
- 1.7.1.4 Assurez-vous que tous les Profils AppArmor sont appliqués (Automatisé)
1.8 Bannières d'Avertissement
- 1.8.1 Bannières d'Avertissement en Ligne de Commande
- 1.8.1.1 Assurez-vous que le message du jour est correctement configuré (Automatisé)
- 1.8.1.2 Assurez-vous que la bannière d'avertissement de connexion locale est correctement configurée - (Automatisé) 115
- 1.8.1.3 Assurez-vous que la bannière d'avertissement de connexion distante est correctement configurée - (Automatisé)
- 1.8.1.4 Assurez-vous que les permissions sur /etc/motd sont configurées (Automatisé)
- 1.8.1.5 Assurez-vous que les permissions sur /etc/issue sont configurées (Automatisé)
- 1.8.1.6 Assurez-vous que les permissions sur /etc/issue.net sont configurées - (Automatisé)
- 1.9 Assurez-vous que les mises à jour, correctifs et logiciels de sécurité supplémentaires sont - installés (Manuel)
- 1.10 Assurez-vous que GDM est supprimé ou que la connexion est configurée (Automatisé)
2 Services
- 2.1 Services inetd
- 2.1.1 Assurez-vous que xinetd n'est pas installé (Automatisé)
- 2.1.2 Assurez-vous que openbsd-inetd n'est pas installé (Automatisé)
- 2.2 Services à Usage Spécial
- 2.2.1 Synchronisation de Temps
- 2.2.1.1 Assurez-vous que la synchronisation de temps est en cours d'utilisation (Automatisé)
- 2.2.1.2 Assurez-vous que systemd-timesyncd est configuré (Manuel)
- 2.2.1.3 Assurez-vous que chrony est configuré (Automatisé)
- 2.2.1.4 Assurez-vous que ntp est configuré (Automatisé)
- 2.2.2 Assurez-vous que le Système X Window n'est pas installé (Automatisé)
- 2.2.3 Assurez-vous que le Serveur Avahi n'est pas installé (Automatisé)
- 2.2.4 Assurez-vous que CUPS n'est pas installé (Automatisé)
- 2.2.5 Assurez-vous que le Serveur DHCP n'est pas installé (Automatisé)
- 2.2.6 Assurez-vous que le serveur LDAP n'est pas installé (Automatisé)
- 2.2.7 Assurez-vous que NFS n'est pas installé (Automatisé)
- 2.2.8 Assurez-vous que le Serveur DNS n'est pas installé (Automatisé)
- 2.2.9 Assurez-vous que le Serveur FTP n'est pas installé (Automatisé)
- 2.2.10 Assurez-vous que le Serveur HTTP n'est pas installé (Automatisé)
- 2.2.11 Assurez-vous que les Serveurs IMAP et POP3 ne sont pas installés (Automatisé)
- 2.2.12 Assurez-vous que Samba n'est pas installé (Automatisé)
- 2.2.13 Assurez-vous que le Serveur Proxy HTTP n'est pas installé (Automatisé)
- 2.2.14 Assurez-vous que le Serveur SNMP n'est pas installé (Automatisé)
- 2.2.15 Assurez-vous que l'agent de transfert de mail est configuré en mode local-uniquement - (Automatisé)
- 2.2.16 Assurez-vous que le service rsync n'est pas installé (Automatisé)
- 2.2.17 Assurez-vous que le Serveur NIS n'est pas installé (Automatisé)
2.3 Clients de services
- 2.3.1 Assurez-vous que le client NIS n'est pas installé (Automatisé)
- 2.3.2 Assurez-vous que le client rsh n'est pas installé (Automatisé)
- 2.3.3 Assurez-vous que le client talk n'est pas installé (Automatisé)
- 2.3.4 Assurez-vous que le client telnet n'est pas installé (Automatisé)
- 2.3.5 Assurez-vous que le client LDAP n'est pas installé (Automatisé)
- 2.3.6 Assurez-vous que RPC n'est pas installé (Automatisé)
2.4 Assurez-vous que les services non essentiels sont supprimés ou masqués (Manuel)
3 Configuration Réseau
- 3.1 Désactiver les protocoles et dispositifs réseau inutilisés
- 3.1.1 Désactiver IPv6 (Manuel)
- 3.1.2 Assurez-vous que les interfaces sans fil sont désactivées (Automatisé)
3.2 Paramètres Réseau (Uniquement pour l'Hôte)
- 3.2.1 Assurez-vous que l'envoi de redirections de paquets est désactivé (Automatisé)
- 3.2.2 Assurez-vous que le transfert IP est désactivé (Automatisé)
3.3 Paramètres Réseau (Hôte et Routeur)
- 3.3.1 Assurez-vous que les paquets à routage source ne sont pas acceptés (Automatisé)
- 3.3.2 Assurez-vous que les redirections ICMP ne sont pas acceptées (Automatisé)
- 3.3.3 Assurez-vous que les redirections ICMP sécurisées ne sont pas acceptées (Automatisé)
- 3.3.4 Assurez-vous que les paquets suspects sont enregistrés (Automatisé)
- 3.3.5 Assurez-vous que les requêtes ICMP de diffusion sont ignorées (Automatisé)
- 3.3.6 Assurez-vous que les réponses ICMP fausses sont ignorées (Automatisé)
- 3.3.7 Assurez-vous que le filtrage de chemin inverse est activé (Automatisé)
- 3.3.8 Assurez-vous que les Cookies SYN TCP sont activés (Automatisé)
- 3.3.9 Assurez-vous que les annonces de routeur IPv6 ne sont pas acceptées (Automatisé)
3.4 Protocoles Réseau Inhabituels
- 3.4.1 Assurez-vous que DCCP est désactivé (Automatisé)
- 3.4.2 Assurez-vous que SCTP est désactivé (Automatisé)
- 3.4.3 Assurez-vous que RDS est désactivé (Automatisé)
- 3.4.4 Assurez-vous que TIPC est désactivé (Automatisé)
3.5 Configuration du Pare-feu
- 3.5.1 Configurer UncomplicatedFirewall
- 3.5.1.1 Assurez-vous qu'Uncomplicated Firewall est installé (Automatisé)
- 3.5.1.2 Assurez-vous qu'iptables-persistent n'est pas installé (Automatisé)
- 3.5.1.3 Assurez-vous que le service ufw est activé (Automatisé)
- 3.5.1.4 Assurez-vous que le trafic de boucle est configuré (Automatisé)
- 3.5.1.5 Assurez-vous que les connexions sortantes sont configurées (Manuel)
- 3.5.1.6 Assurez-vous que des règles de pare-feu existent pour tous les ports ouverts (Manuel)
- 3.5.1.7 Assurez-vous que la politique par défaut du pare-feu est de refuser (Automatisé)
3.5.2 Configurer nftables3.5.2.1 Assurez-vous que nftables est installé (Automatisé)3.5.2.2 Assurez-vous qu'Uncomplicated Firewall n'est pas installé ou désactivé - (Automatisé)3.5.2.3 Assurez-vous qu'iptables sont vidés (Manuel)3.5.2.4 Assurez-vous qu'une table existe (Automatisé)3.5.2.5 Assurez-vous que les chaînes de base existent (Automatisé)3.5.2.6 Assurez-vous que le trafic de boucle est configuré (Automatisé)3.5.2.7 Assurez-vous que les connexions sortantes et établies sont configurées - (Manuel)2433.5.2.8 Assurez-vous que la politique par défaut du pare-feu est de refuser (Automatisé)3.5.2.9 Assurez-vous que le service nftables est activé (Automatisé)3.5.2.10 Assurez-vous que les règles nftables sont permanentes (Automatisé)3.5.3 Configurer iptables3.5.3.1.1 Assurez-vous que les paquets iptables sont installés (Automatisé)3.5.3.1.2 Assurez-vous que nftables n'est pas installé (Automatisé)3.5.3.1.3 Assurez-vous qu'Uncomplicated Firewall n'est pas installé ou désactivé - (Automatisé)3.5.3.2.1 Assurez-vous que la politique par défaut du pare-feu est de refuser (Automatisé)3.5.3.2.2 Assurez-vous que le trafic de boucle est configuré (Automatisé)3.5.3.2.3 Assurez-vous que les connexions sortantes et établies sont configurées - (Manuel)3.5.3.2.4 Assurez-vous que des règles de pare-feu existent pour tous les ports ouverts (Automatisé)3.5.3.3.1 Assurez-vous que la politique par défaut du pare-feu IPv6 est de refuser (Automatisé)3.5.3.3.2 Assurez-vous que le trafic de boucle IPv6 est configuré (Automatisé)3.5.3.3.3 Assurez-vous que les connexions sortantes et établies IPv6 sont configurées (Manuel)3.5.3.3.4 Assurez-vous que des règles de pare-feu IPv6 existent pour tous les ports ouverts - (Manuel)
4 Journalisation et Audit
- 4.1 Configurer l'Accusé de Réception du Système (auditd)
- 4.1.1 Assurez-vous que l'audit est activé
- 4.1.1.1 Assurez-vous que auditd est installé (Automatisé)
- 4.1.1.2 Assurez-vous que le service auditd est activé (Automatisé)
- 4.1.1.3 Assurez-vous que l'audit des processus qui démarrent avant auditd est - activé (Automatisé)
- 4.1.1.4 Assurez-vous que audit_backlog_limit est suffisant (Automatisé)
- 4.1.2 Configurez la Conservation des Données
- 4.1.2.1 Assurez-vous que la taille de stockage des journaux d'audit est configurée (Automatisé)
- 4.1.2.2 Assurez-vous que les journaux d'audit ne sont pas automatiquement supprimés (Automatisé)
- 4.1.2.3 Assurez-vous que le système est désactivé lorsque les journaux d'audit sont pleins - (Automatisé)
- 4.1.3 Assurez-vous que les événements qui modifient la date et l'heure sont - collectés (Automatisé)
- 4.1.4 Assurez-vous que les événements qui modifient les informations d'utilisateur/groupe sont collectés - (Automatisé)
- 4.1.5 Assurez-vous que les événements qui modifient l'environnement réseau du système sont - collectés (Automatisé)
- 4.1.6 Assurez-vous que les événements qui modifient les contrôles d'accès obligatoires du système sont collectés (Automatisé)
- 4.1.7 Assurez-vous que les événements de connexion et de déconnexion sont collectés (Automatisé)
- 4.1.8 Assurez-vous que les informations d'initiation de session sont collectées (Automatisé)
- 4.1.9 Assurez-vous que les événements de modification des permissions de contrôle d'accès discrétionnaires sont collectés (Automatisé)
- 4.1.10 Assurez-vous que les tentatives d'accès de fichiers non autorisés échouées sont collectées (Automatisé)
- 4.1.11 Assurez-vous que l'utilisation de commandes privilégiées est collectée (Automatisé)
- 4.1.12 Assurez-vous que les montages de systèmes de fichiers réussis sont collectés (Automatisé)
- 4.1.13 Assurez-vous que les événements de suppression de fichiers par des utilisateurs sont collectés (Automatisé)
- 4.1.14 Assurez-vous que les modifications de la portée d'administration du système (sudoers) sont collectées (Automatisé)
- 4.1.15 Assurez-vous que les exécutions de commandes par un administrateur système (sudo) sont collectées (Automatisé)
- 4.1.16 Assurez-vous que le chargement et l unloading de modules de noyau sont collectés (Automatisé)
- 4.1.17 Assurez-vous que la configuration de l'audit est immuable (Automatisé)
4.2 Configurer la Journalisation
- 4.2.1 Configurer rsyslog
- 4.2.1.1 Assurez-vous que rsyslog est installé (Automatisé)
- 4.2.1.2 Assurez-vous que le Service rsyslog est activé (Automatisé)
- 4.2.1.3 Assurez-vous que la journalisation est configurée (Manuel)
- 4.2.1.4 Assurez-vous que les permissions par défaut du fichier rsyslog sont configurées - (Automatisé)
- 4.2.1.5 Assurez-vous que rsyslog est configuré pour envoyer des journaux à un hôte de journal à distance (Automatisé)
- 4.2.1.6 Assurez-vous que les messages rsyslog à distance ne sont acceptés que sur des hôtes de journal désignés. (Manuel)
- 4.2.2 Configurer journald
- 4.2.2.1 Assurez-vous que journald est configuré pour envoyer des journaux à rsyslog - (Automatisé)
- 4.2.2.2 Assurez-vous que journald est configuré pour compresser de grands fichiers journaux - (Automatisé)
- 4.2.2.3 Assurez-vous que journald est configuré pour écrire des fichiers journaux sur un disque persistant (Automatisé)
- 4.2.3 Assurez-vous que les permissions sur tous les fichiers journaux sont configurées (Automatisé)
- 4.3 Assurez-vous que logrotate est configuré (Manuel)
- 4.4 Assurez-vous que logrotate attribue des permissions appropriées (Automatisé)
5 Accès, Authentification et Autorisation
- 5.1 Configurer les planificateurs de tâches basés sur le temps
- 5.1.1 Assurez-vous que le démon cron est activé et en cours d'exécution (Automatisé)
- 5.1.2 Assurez-vous que les permissions sur /etc/crontab sont configurées (Automatisé)
- 5.1.3 Assurez-vous que les permissions sur /etc/cron.hourly sont configurées - (Automatisé)
- 5.1.4 Assurez-vous que les permissions sur /etc/cron.daily sont configurées - (Automatisé)
- 5.1.5 Assurez-vous que les permissions sur /etc/cron.weekly sont configurées - (Automatisé)
- 5.1.6 Assurez-vous que les permissions sur /etc/cron.monthly sont configurées - (Automatisé)
- 5.1.7 Assurez-vous que les permissions sur /etc/cron.d sont configurées (Automatisé)
- 5.1.8 Assurez-vous que cron est restreint aux utilisateurs autorisés (Automatisé)
- 5.1.9 Assurez-vous que at est restreint aux utilisateurs autorisés (Automatisé)
5.2 Configurer le Serveur SSH
- 5.2.1 Assurez-vous que les permissions sur /etc/ssh/sshd_config sont configurées - (Automatisé)
- 5.2.2 Assurez-vous que les permissions sur les fichiers de clés d'hôte privées SSH sont - configurées (Automatisé)
- 5.2.3 Assurez-vous que les permissions sur les fichiers de clés d'hôte publiques SSH sont configurées - (Automatisé)
- 5.2.4 Assurez-vous que le niveau de journalisation SSH est approprié (Automatisé)
- 5.2.5 Assurez-vous que le transfert X11 SSH est désactivé (Automatisé)
- 5.2.6 Assurez-vous que SSH MaxAuthTries est défini sur 4 ou moins (Automatisé)
- 5.2.7 Assurez-vous que SSH IgnoreRhosts est activé (Automatisé)
- 5.2.8 Assurez-vous que SSH HostbasedAuthentication est désactivé (Automatisé)
- 5.2.9 Assurez-vous que l'accès root SSH est désactivé (Automatisé)
- 5.2.10 Assurez-vous que SSH PermitEmptyPasswords est désactivé (Automatisé)
- 5.2.11 Assurez-vous que SSH PermitUserEnvironment est désactivé (Automatisé)
- 5.2.12 Assurez-vous que seuls des Chiffres forts sont utilisés (Automatisé)
- 5.2.13 Assurez-vous que seuls des algorithmes MAC forts sont utilisés (Automatisé)
- 5.2.14 Assurez-vous que seuls des algorithmes d'échange de clés forts sont utilisés - (Automatisé)
- 5.2.15 Assurez-vous que l'intervalle de temporisation d'inactivité SSH est configuré (Automatisé)
- 5.2.16 Assurez-vous que SSH LoginGraceTime est défini sur une minute ou moins - (Automatisé)
- 5.2.17 Assurez-vous que l'accès SSH est limité (Automatisé)
- 5.2.18 Assurez-vous que la bannière d'avertissement SSH est configurée (Automatisé)
- 5.2.19 Assurez-vous que SSH PAM est activé (Automatisé)
- 5.2.20 Assurez-vous que SSH AllowTcpForwarding est désactivé (Automatisé)
- 5.2.21 Assurez-vous que SSH MaxStartups est configuré (Automatisé)
- 5.2.22 Assurez-vous que SSH MaxSessions est limité (Automatisé)
5.3 Configurer PAM
- 5.3.1 Assurez-vous que les exigences de création de mot de passe sont configurées - (Automatisé)
- 5.3.2 Assurez-vous que le verrouillage des tentatives de mot de passe échouées est configuré - (Automatisé)
- 5.3.3 Assurez-vous que la réutilisation des mots de passe est limitée (Automatisé)
- 5.3.4 Assurez-vous que l'algorithme de hachage des mots de passe est SHA-512 (Automatisé)
5.4 Comptes Utilisateurs et Environnement
- 5.4.1 Définir les Paramètres de la Suite de Mot de Passe Shadow
- 5.4.1.1 Assurez-vous que l'expiration du mot de passe est de 365 jours ou moins (Automatisé)
- 5.4.1.2 Assurez-vous que des jours minimums entre les changements de mot de passe sont configurés - (Automatisé)
- 5.4.1.3 Assurez-vous que les jours d'avertissement d'expiration du mot de passe sont de 7 jours ou plus - (Automatisé)
- 5.4.1.4 Assurez-vous que le verrouillage des mots de passe inactifs est de 30 jours ou moins (Automatisé)
- 5.4.1.5 Assurez-vous que la dernière date de changement de mot de passe de tous les utilisateurs est dans le passé - (Automatisé)
- 5.4.2 Assurez-vous que les comptes système sont sécurisés (Automatisé)
- 5.4.3 Assurez-vous que le groupe par défaut pour le compte root est GID 0 (Automatisé)
- 5.4.4 Assurez-vous que le umask par défaut de l'utilisateur est 027 ou plus restrictif - (Automatisé)
- 5.4.5 Assurez-vous que le délai d'expiration du shell de l'utilisateur par défaut est de 900 secondes ou moins - (Automatisé)
- 5.5 Assurez-vous que la connexion root est restreinte à la console système (Manuel)
- 5.6 Assurez-vous que l'accès à la commande su est restreint (Automatisé)
6 Maintenance du Système
- 6.1 Permissions des Fichiers du Système
6.1.1 Audit des permissions des fichiers du système (Manuel)- 6.1.2 Assurez-vous que les permissions sur /etc/passwd sont configurées (Automatisé)
- 6.1.3 Assurez-vous que les permissions sur /etc/gshadow- sont configurées (Automatisé)
- 6.1.4 Assurez-vous que les permissions sur /etc/shadow sont configurées (Automatisé)
- 6.1.5 Assurez-vous que les permissions sur /etc/group sont configurées (Automatisé)
- 6.1.6 Assurez-vous que les permissions sur /etc/passwd- sont configurées (Automatisé)
- 6.1.7 Assurez-vous que les permissions sur /etc/shadow- sont configurées (Automatisé)
- 6.1.8 Assurez-vous que les permissions sur /etc/group- sont configurées (Automatisé)
- 6.1.9 Assurez-vous que les permissions sur /etc/gshadow sont configurées (Automatisé)
- 6.1.10 Assurez-vous qu'il n'existe pas de fichiers accessibles en écriture par tous (Automatisé)
- 6.1.11 Assurez-vous qu'il n'existe pas de fichiers ou de répertoires sans propriétaire (Automatisé)
- 6.1.12 Assurez-vous qu'il n'existe pas de fichiers ou répertoires sans groupe (Automatisé)
6.1.13 Audit des exécutables SUID (Manuel)6.1.14 Audit des exécutables SGID (Manuel)
6.2 Paramètres des Utilisateurs et Groupes
- 6.2.1 Assurez-vous que les champs de mot de passe ne sont pas vides (Automatisé)
6.2.2 Assurez-vous que root est le seul compte UID 0 (Automatisé)6.2.3 Assurez-vous de l'intégrité du PATH de root (Automatisé)- 6.2.4 Assurez-vous que tous les répertoires personnels des utilisateurs existent (Automatisé)
- 6.2.5 Assurez-vous que les permissions des répertoires personnels des utilisateurs sont de 750 ou plus restrictives (Automatisé)
- 6.2.6 Assurez-vous que les utilisateurs possèdent leurs répertoires personnels (Automatisé)
- 6.2.7 Assurez-vous que les fichiers dot des utilisateurs ne sont pas accessibles en écriture par le groupe ou par tous - (Automatisé)
6.2.8 Assurez-vous qu'aucun utilisateur n'a de fichiers .forward (Automatisé)6.2.9 Assurez-vous qu'aucun utilisateur n'a de fichiers .netrc (Automatisé)6.2.10 Assurez-vous que les fichiers .netrc des utilisateurs ne sont pas accessibles par le groupe ou par tous - (Automatisé)6.2.11 Assurez-vous qu'aucun utilisateur n'a de fichiers .rhosts (Automatisé)6.2.12 Assurez-vous que tous les groupes dans /etc/passwd existent dans /etc/group - (Automatisé)6.2.13 Assurez-vous qu'aucun UID en double n'existe (Automatisé)6.2.14 Assurez-vous qu'aucun GID en double n'existe (Automatisé)6.2.15 Assurez-vous qu'aucun nom d'utilisateur en double n'existe (Automatisé)6.2.16 Assurez-vous qu'aucun nom de groupe en double n'existe (Automatisé)6.2.17 Assurez-vous que le groupe shadow est vide (Automatisé)
Dépannage
- Si vous souhaitez exécuter le playbook sur la même machine, assurez-vous d'ajouter ceci pour exécuter la tâche :
- hosts: 127.0.0.1
connection: local
- si vous rencontrez des problèmes avec l'exécution, essayez d'exécuter le playbook dans un autre chemin, comme
/srv/
. - Pour une erreur comme celle-ci
stderr: chage: l'utilisateur 'ubuntu' n'existe pas dans /etc/passwd
, assurez-vous de mettre à jour la configuration sousCIS-Ubuntu-20.04-Ansible/defaults/main.yml
.
Licence
GNU GENERAL PUBLIC LICENSE
Informations sur l’Auteur
Le rôle a été initialement développé par Ali Saleh Baker.
Lorsque vous contribuez à ce dépôt, veuillez d'abord discuter du changement que vous souhaitez apporter via un problème GitHub, par e-mail ou par d'autres canaux avec moi :)
DevOps
ansible-galaxy install ryezone_labs.ansible_cis_ubuntu_2004