alivx.cis_ubuntu_20_04_ansible

Ansible CIS Ubuntu 20.04 LTS Durcissement V1.1.0 Dernière État de construction

CIS durci pour Ubuntu : prévention des cyberattaques et des logiciels malveillants pour les systèmes critiques Les normes CIS protègent vos systèmes en supprimant :

  1. les programmes non sécurisés.
  2. les systèmes de fichiers inutilisés.
  3. les ports ou services non nécessaires.
  4. l'audit des opérations privilégiées.
  5. la restriction des privilèges administratifs.

Les recommandations des normes CIS sont adoptées dans les machines virtuelles dans les clouds publics et privés. Elles sont également utilisées pour sécuriser les déploiements sur site. Pour certaines industries, durcir un système selon une norme publique reconnue est un critère que les auditeurs recherchent. Les normes CIS sont souvent un choix de durcissement recommandé par les auditeurs pour les industries nécessitant la conformité PCI-DSS et HIPAA, telles que la banque, les télécommunications et les soins de santé. Si vous tentez d'obtenir la conformité à un standard de sécurité accepté par l'industrie, comme PCI DSS, APRA ou ISO 27001, vous devez montrer que vous avez appliqué des normes de durcissement documentées à tous les systèmes concernés.

Les normes CIS Ubuntu sont organisées en différents profils, à savoir ‘Niveau 1’ et ‘Niveau 2’ destinés aux environnements serveurs et stations de travail.

Un profil de Niveau 1 est conçu pour sécuriser un système de manière pratique et prudente, sans impact significatif sur la performance.

  • Désactiver les systèmes de fichiers inutiles,
  • Restreindre les permissions des utilisateurs sur les fichiers et répertoires,
  • Désactiver les services non nécessaires.
  • Configurer les pare-feux 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 la performance du système.

  • Créer des partitions séparées,
  • Auditer les opérations privilégiées.

L'outil de durcissement CIS pour Ubuntu vous permet de sélectionner le niveau de durcissement souhaité (Niveau 1 ou Niveau 2) et l'environnement de travail (serveur ou station de travail) pour un système. Exemple :

ansible-playbook -i inventory cis-ubuntu-20.yaml --tags="level_1_server"

Vous pouvez lister toutes les balises en exécutant la commande ci-dessous :

ansible-playbook -i host run.yaml --list-tags

J'ai écrit tous les rôles en fonction de

CIS Ubuntu Linux 20.04 LTS Benchmark
v1.1.0 - 07-21-2020

Vérifier le répertoire Exemple


Exigences

Vous devez lire attentivement les tâches pour vous assurer que ces changements ne vont pas casser vos systèmes avant d'exécuter ce playbook.

Vous pouvez télécharger gratuitement le livre de normes CIS depuis cette URL Norme gratuite

Pour commencer à travailler avec ce rôle, vous devez simplement installer Ansible. Installation d'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 devriez avoir une familiarité de base avec la norme CIS et comprendre son impact potentiel sur un système.
  • Lisez et modifiez les valeurs par défaut configurables.

Exemples de configurations qui devraient être immédiatement envisagées pour exclusion :

5.1.8 S'assurer que cron est restreint aux utilisateurs autorisés et 5.2.17 S'assurer que l'accès SSH est limité, ce qui limite effectivement l'accès à l'hôte (y compris via ssh) par défaut.

Par exemple :

  • CIS-Ubuntu-20.04-Ansible/defaults/main.yml

#Section 5
#5.1.8 S'assurer que cron est restreint aux utilisateurs autorisés
allowed_hosts: "ALL: 0.0.0.0/0.0.0.0, 192.168.2.0/255.255.255.0"
# 5.2.17 S'assurer que l'accès SSH est limité
allowed_users: ali saleh baker root #Mettre None ou liste des utilisateurs séparée par des espaces

Si vous devez modifier des modèles de fichiers, vous pouvez les trouver dans files/templates/*


Dépendances

  • Version d'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 balises, utilisez la commande ci-dessous :

ansible-playbook -i [inventoryfile] [playbook].yaml

Exécuter une section spécifique

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 la balise 4.1.1.2 S'assurer que le service auditd est activé avant de lancer 4.1.1.1 S'assurer qu'auditd est installé, vous obtiendrez une erreur lors de l'exécution.

  • Les points avec Tilde ne sont pas encore implémentés ; je travaille actuellement dessus.

  • Assurez-vous de sélectionner un service à la fois ; pour moi, j'utilise ntp, mais vous pouvez utiliser d'autres services tels que [systemd-timesyncd,ntp,chrony] dans les paramètres defaults/main.yaml

    Test 11/1/2020 Testé sur AWS EC2 ubuntu 20.04 LTS [Passé] 11/1/2020 Testé sur le serveur local Ubuntu 20.04 LTS [Passé]

  • Avant d'exécuter, assurez-vous de mettre à jour la liste des utilisateurs dans defaults/main.yaml sur list_of_os_users + allowed_users

  • Assurez-vous de définir le bon sous-réseau dans defaults/main.yaml sur allowed_hosts


Tableau des rôles :

1 Configuration initiale

  • 1.1 Configuration du système de fichiers
  • 1.1.1 Désactiver les systèmes de fichiers non utilisés
  • 1.1.1.1 S'assurer que le montage des systèmes de fichiers cramfs est désactivé (Automatisé)
  • 1.1.1.2 S'assurer que le montage des systèmes de fichiers freevxfs est désactivé (Automatisé)
  • 1.1.1.3 S'assurer que le montage des systèmes de fichiers jffs2 est désactivé (Automatisé)
  • 1.1.1.4 S'assurer que le montage des systèmes de fichiers hfs est désactivé (Automatisé)
  • 1.1.1.5 S'assurer que le montage des systèmes de fichiers hfsplus est désactivé (Automatisé)
  • 1.1.1.6 S'assurer que le montage des systèmes de fichiers udf est désactivé (Automatisé)
  • 1.1.1.7 S'assurer que le montage des systèmes de fichiers FAT est limité (Manuel)
  • 1.1.2 S'assurer que /tmp est configuré (Automatisé)
  • 1.1.3 S'assurer que l'option nodev est définie sur la partition /tmp (Automatisé)
  • 1.1.4 S'assurer que l'option nosuid est définie sur la partition /tmp (Automatisé)
  • 1.1.5 S'assurer que l'option noexec est définie sur la partition /tmp (Automatisé)
  • 1.1.6 S'assurer que /dev/shm est configuré (Automatisé)
  • 1.1.7 S'assurer que l'option nodev est définie sur la partition /dev/shm (Automatisé)
  • 1.1.8 S'assurer que l'option nosuid est définie sur la partition /dev/shm (Automatisé)
  • 1.1.9 S'assurer que l'option noexec est définie sur la partition /dev/shm (Automatisé)
  • 1.1.10 S'assurer qu'une partition séparée existe pour /var (Automatisé)
  • 1.1.11 S'assurer qu'une partition séparée existe pour /var/tmp (Automatisé)
  • 1.1.12 S'assurer que l'option nodev est définie sur la partition /var/tmp (Automatisé)
  • 1.1.13 S'assurer que l'option nosuid est définie sur la partition /var/tmp (Automatisé)
  • 1.1.14 S'assurer que l'option noexec est définie sur la partition /var/tmp (Automatisé)
  • 1.1.15 S'assurer qu'une partition séparée existe pour /var/log (Automatisé)
  • 1.1.16 S'assurer qu'une partition séparée existe pour /var/log/audit (Automatisé)
  • 1.1.17 S'assurer qu'une partition séparée existe pour /home (Automatisé)
  • 1.1.18 S'assurer que l'option nodev est définie sur la partition /home (Automatisé)
  • 1.1.19 S'assurer que l'option nodev est définie sur les partitions de médias amovibles (Manuel)
  • 1.1.20 S'assurer que l'option nosuid est définie sur les partitions de médias amovibles (Manuel)
  • 1.1.21 S'assurer que l'option noexec est définie sur les partitions de médias amovibles (Manuel)
  • 1.1.22 S'assurer que le bit collant est défini sur tous les répertoires accessibles en écriture par tous (Automatisé)
  • 1.1.23 Désactiver l'automontage (Automatisé)
  • 1.1.24 Désactiver le stockage USB (Automatisé)

1.2 Configurer les mises à jour logicielles

  • 1.2.1 S'assurer que les dépôts du gestionnaire de paquets sont configurés (Manuel)
  • 1.2.2 S'assurer que les clés GPG sont configurées (Manuel)

1.3 Vérification de l'intégrité du système de fichiers

  • 1.3.1 S'assurer qu'AIDE est installé (Automatisé)
  • 1.3.2 S'assurer que l'intégrité du système de fichiers est vérifiée régulièrement (Automatisé)

1.4 Paramètres de démarrage sécurisé

  • 1.4.1 S'assurer que le mot de passe du chargeur de démarrage est défini (Automatisé)
  • 1.4.2 S'assurer que les permissions sur la configuration du chargeur de démarrage sont configurées (Automatisé)
  • 1.4.3 S'assurer qu'une authentification est requise pour le mode utilisateur unique (Automatisé)

1.5 Durcissement supplémentaire des processus

  • 1.5.1 S'assurer que la prise en charge XD/NX est activée (Automatisé)
  • 1.5.2 S'assurer que l'aléatoirisation de l'espace d'adresses (ASLR) est activée (Automatisé)
  • 1.5.3 S'assurer que le prélien est désactivé (Automatisé)
  • 1.5.4 S'assurer que les vidages de cœur sont restreints (Automatisé)

1.6 Contrôle d'accès obligatoire

  • 1.6.1 Configurer AppArmor
  • 1.6.1.1 S'assurer qu'AppArmor est installé (Automatisé)
  • 1.6.1.2 S'assurer qu'AppArmor est activé dans la configuration du chargeur de démarrage (Automatisé)
  • 1.6.1.3 S'assurer que tous les profils AppArmor sont en mode d'exécution ou de plainte (Automatisé)
  • 1.6.1.4 S'assurer que tous les profils AppArmor sont en mode exécution (Automatisé)

1.7 Bannières d'avertissement

  • 1.7.1.1 S'assurer que le message du jour est correctement configuré (Automatisé)
  • 1.7.1.2 S'assurer que la bannière d'avertissement de connexion locale est correctement configurée (Automatisé)
  • 1.7.1.3 S'assurer que la bannière d'avertissement de connexion à distance est correctement configurée (Automatisé)
  • 1.7.1.4 S'assurer que les permissions sur /etc/motd sont configurées (Automatisé)
  • 1.7.1.5 S'assurer que les permissions sur /etc/issue sont configurées (Automatisé)
  • 1.7.1.6 S'assurer que les permissions sur /etc/issue.net sont configurées (Automatisé)

1.8 Gestionnaire d'affichage GNOME

  • 1.8.1 S'assurer que le gestionnaire d'affichage GNOME est supprimé (Manuel)
  • 1.8.2 S'assurer que la bannière de connexion GDM est configurée (Manuel)
  • 1.8.3 S'assurer que la liste des utilisateurs désactivés est activée (Manuel)
  • 1.8.4 S'assurer que XDCMP n'est pas activé (Manuel)

1.9 S'assurer que les mises à jour, correctifs et logiciels de sécurité supplémentaires sont installés (Automatisé)

2 Services

  • 2.1 Services inetd
  • 2.1.1 S'assurer que xinetd n'est pas installé (Automatisé)
  • 2.1.2 S'assurer que openbsd-inetd n'est pas installé (Automatisé)
  • 2.2 Services à but spécial
  • 2.2.1 Synchronisation du temps
  • 2.2.1.1 S'assurer que la synchronisation du temps est utilisée (Automatisé)
  • 2.2.1.2 S'assurer que systemd-timesyncd est configuré (Manuel)
  • 2.2.1.3 S'assurer que chrony est configuré (Automatisé)
  • 2.2.1.4 S'assurer que ntp est configuré (Automatisé)
  • 2.2.2 S'assurer que le système X Window n'est pas installé (Automatisé)
  • 2.2.3 S'assurer que le serveur Avahi n'est pas installé (Automatisé)
  • 2.2.4 S'assurer que CUPS n'est pas installé (Automatisé)
  • 2.2.5 S'assurer que le serveur DHCP n'est pas installé (Automatisé)
  • 2.2.6 S'assurer que le serveur LDAP n'est pas installé (Automatisé)
  • 2.2.7 S'assurer que NFS n'est pas installé (Automatisé)
  • 2.2.8 S'assurer que le serveur DNS n'est pas installé (Automatisé)
  • 2.2.9 S'assurer que le serveur FTP n'est pas installé (Automatisé)
  • 2.2.10 S'assurer que le serveur HTTP n'est pas installé (Automatisé)
  • 2.2.11 S'assurer que les serveurs IMAP et POP3 ne sont pas installés (Automatisé)
  • 2.2.12 S'assurer que Samba n'est pas installé (Automatisé)
  • 2.2.13 S'assurer que le serveur proxy HTTP n'est pas installé (Automatisé)
  • 2.2.14 S'assurer que le serveur SNMP n'est pas installé (Automatisé)
  • 2.2.15 S'assurer que l'agent de transfert de courrier est configuré en mode local uniquement (Automatisé)
  • 2.2.16 S'assurer que le service rsync n'est pas installé (Automatisé)
  • 2.2.17 S'assurer que le serveur NIS n'est pas installé (Automatisé)

2.3 Clients de service

  • 2.3.1 S'assurer que le client NIS n'est pas installé (Automatisé)
  • 2.3.2 S'assurer que le client rsh n'est pas installé (Automatisé)
  • 2.3.3 S'assurer que le client talk n'est pas installé (Automatisé)
  • 2.3.4 S'assurer que le client telnet n'est pas installé (Automatisé)
  • 2.3.5 S'assurer que le client LDAP n'est pas installé (Automatisé)
  • 2.3.6 S'assurer que RPC n'est pas installé (Automatisé)
  • 2.4 S'assurer 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 S'assurer que les interfaces sans fil sont désactivées (Automatisé)

3.2 Paramètres réseau (uniquement hôte)

  • 3.2.1 S'assurer que l'envoi de redirections de paquets est désactivé (Automatisé)
  • 3.2.2 S'assurer que le transfert IP est désactivé (Automatisé)

3.3 Paramètres réseau (hôte et routeur)

  • 3.3.1 S'assurer que les paquets routés par source ne sont pas acceptés (Automatisé)
  • 3.3.2 S'assurer que les redirections ICMP ne sont pas acceptées (Automatisé)
  • 3.3.3 S'assurer que les redirections ICMP sécurisées ne sont pas acceptées (Automatisé)
  • 3.3.4 S'assurer que les paquets suspects sont enregistrés (Automatisé)
  • 3.3.5 S'assurer que les demandes ICMP diffusées sont ignorées (Automatisé)
  • 3.3.6 S'assurer que les réponses ICMP fausses sont ignorées (Automatisé)
  • 3.3.7 S'assurer que le filtrage inverse de chemin est activé (Automatisé)
  • 3.3.8 S'assurer que les cookies TCP SYN sont activés (Automatisé)
  • 3.3.9 S'assurer que les annonces de routeurs IPv6 ne sont pas acceptées (Automatisé)

3.4 Protocoles réseau peu courants

  • 3.4.1 S'assurer que DCCP est désactivé (Automatisé)
  • 3.4.2 S'assurer que SCTP est désactivé (Automatisé)
  • 3.4.3 S'assurer que RDS est désactivé (Automatisé)
  • 3.4.4 S'assurer que TIPC est désactivé (Automatisé)

3.5 Configuration du pare-feu

  • 3.5.1 Configurer UncomplicatedFirewall
  • 3.5.1.1 S'assurer que Uncomplicated Firewall est installé (Automatisé)
  • 3.5.1.2 S'assurer que iptables-persistent n'est pas installé (Automatisé)
  • 3.5.1.3 S'assurer que le service ufw est activé (Automatisé)
  • 3.5.1.4 S'assurer que le trafic de boucle locale est configuré (Automatisé)
  • 3.5.1.5 S'assurer que les connexions sortantes sont configurées (Manuel)
  • 3.5.1.6 S'assurer que les règles du pare-feu existent pour tous les ports ouverts (Manuel)
  • 3.5.1.7 S'assurer que la politique par défaut du pare-feu refuse (Automatisé)
  • 3.5.2 Configurer nftables
  • 3.5.2.1 S'assurer que nftables est installé (Automatisé)
  • 3.5.2.2 S'assurer que le pare-feu uncomplicated n'est pas installé ou désactivé (Automatisé)
  • 3.5.2.3 S'assurer que les iptables sont purgés (Manuel)
  • 3.5.2.4 S'assurer qu'une table existe (Automatisé)
  • 3.5.2.5 S'assurer que des chaînes de base existent (Automatisé)
  • 3.5.2.6 S'assurer que le trafic de boucle locale est configuré (Automatisé)
  • 3.5.2.7 S'assurer que les connexions sortantes et établies sont configurées (Manuel)
  • 3.5.2.8 S'assurer que la politique par défaut du pare-feu refuse (Automatisé)
  • 3.5.2.9 S'assurer que le service nftables est activé (Automatisé)
  • 3.5.2.10 S'assurer que les règles nftables sont permanentes (Automatisé)
  • 3.5.3 Configurer iptables
  • 3.5.3.1.1 S'assurer que les paquets iptables sont installés (Automatisé)
  • 3.5.3.1.2 S'assurer que nftables n'est pas installé (Automatisé)
  • 3.5.3.1.3 S'assurer que le pare-feu uncomplicated n'est pas installé ou désactivé (Automatisé)
  • 3.5.3.2.1 S'assurer que la politique par défaut du pare-feu refuse (Automatisé)
  • 3.5.3.2.2 S'assurer que le trafic de boucle locale est configuré (Automatisé)
  • 3.5.3.2.3 S'assurer que les connexions sortantes et établies sont configurées (Manuel)
  • 3.5.3.2.4 S'assurer que les règles du pare-feu existent pour tous les ports ouverts (Automatisé)
  • 3.5.3.3.1 S'assurer que la politique par défaut du pare-feu IPv6 refuse (Automatisé)
  • 3.5.3.3.2 S'assurer que le trafic de boucle locale IPv6 est configuré (Automatisé)
  • 3.5.3.3.3 S'assurer que les connexions sortantes et établies IPv6 sont configurées (Manuel)

4 Journalisation et audit

  • 4.1 Configurer la comptabilité système (auditd)
  • 4.1.1 S'assurer que l'audit est activé
  • 4.1.1.1 S'assurer qu'auditd est installé (Automatisé)
  • 4.1.1.2 S'assurer que le service auditd est activé (Automatisé)
  • 4.1.1.3 S'assurer que l'audit des processus qui démarrent avant auditd est activé (Automatisé)
  • 4.1.1.4 S'assurer que audit_backlog_limit est suffisant (Automatisé)
  • 4.1.2 Configurer la conservation des données
  • 4.1.2.1 S'assurer que la taille de stockage des journaux d'audit est configurée (Automatisé)
  • 4.1.2.2 S'assurer que les journaux d'audit ne sont pas supprimés automatiquement (Automatisé)
  • 4.1.2.3 S'assurer que le système est désactivé lorsque les journaux d'audit sont pleins (Automatisé)
  • 4.1.3 S'assurer que les événements qui modifient les informations de date et d'heure sont collectés (Automatisé)
  • 4.1.4 S'assurer que les événements qui modifient les informations sur les utilisateurs/groupes sont collectés (Automatisé)
  • 4.1.5 S'assurer que les événements qui modifient l'environnement réseau du système sont collectés (Automatisé)
  • 4.1.6 S'assurer que les événements qui modifient les contrôles d'accès obligatoires du système sont collectés (Automatisé)
  • 4.1.7 S'assurer que les événements de connexion et de déconnexion sont collectés (Automatisé)
  • 4.1.8 S'assurer que les informations sur l'initiation de session sont collectées (Automatisé)
  • 4.1.9 S'assurer que les événements de modification des permissions de contrôle d'accès discrétionnaire sont collectés (Automatisé)
  • 4.1.10 S'assurer que les tentatives d'accès non autorisées aux fichiers sont collectées (Automatisé)
  • 4.1.11 S'assurer que l'utilisation des commandes privilégiées est collectée (Automatisé)
  • 4.1.12 S'assurer que les montages réussis du système de fichiers sont collectés (Automatisé)
  • 4.1.13 S'assurer que les événements de suppression de fichiers par des utilisateurs sont collectés (Automatisé)
  • 4.1.14 S'assurer que les modifications d'administration du système (sudoers) sont collectées (Automatisé)
  • 4.1.15 S'assurer que l'exécution des commandes par l'administrateur système (sudo) est collectée (Automatisé)
  • 4.1.16 S'assurer que le chargement et le déchargement de modules du noyau sont collectés (Automatisé)
  • 4.1.17 S'assurer que la configuration d'audit est immuable (Automatisé)

4.2 Configurer la journalisation

  • 4.2.1 Configurer rsyslog
  • 4.2.1.1 S'assurer que rsyslog est installé (Automatisé)
  • 4.2.1.2 S'assurer que le service rsyslog est activé (Automatisé)
  • 4.2.1.3 S'assurer que la journalisation est configurée (Manuel)
  • 4.2.1.4 S'assurer que les permissions par défaut des fichiers rsyslog sont configurées (Automatisé)
  • 4.2.1.5 S'assurer que rsyslog est configuré pour envoyer des journaux à un hôte distant (Automatisé)
  • 4.2.1.6 S'assurer que les messages rsyslog distants ne sont acceptés que sur des hôtes désignés. (Manuel)
  • 4.2.2 Configurer journald
  • 4.2.2.1 S'assurer que journald est configuré pour envoyer des journaux à rsyslog (Automatisé)
  • 4.2.2.2 S'assurer que journald est configuré pour compresser les gros fichiers journaux (Automatisé)
  • 4.2.2.3 S'assurer que journald est configuré pour écrire les fichiers journaux sur disque persistant (Automatisé)
  • 4.2.3 S'assurer que les permissions sur tous les fichiers journaux sont configurées (Automatisé)
  • 4.3 S'assurer que logrotate est configuré (Manuel)
  • 4.4 S'assurer que logrotate attribue les 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 S'assurer que le démon cron est activé et en cours d'exécution (Automatisé)
  • 5.1.2 S'assurer que les permissions sur /etc/crontab sont configurées (Automatisé)
  • 5.1.3 S'assurer que les permissions sur /etc/cron.hourly sont configurées (Automatisé)
  • 5.1.4 S'assurer que les permissions sur /etc/cron.daily sont configurées (Automatisé)
  • 5.1.5 S'assurer que les permissions sur /etc/cron.weekly sont configurées (Automatisé)
  • 5.1.6 S'assurer que les permissions sur /etc/cron.monthly sont configurées (Automatisé)
  • 5.1.7 S'assurer que les permissions sur /etc/cron.d sont configurées (Automatisé)
  • 5.1.8 S'assurer que cron est restreint aux utilisateurs autorisés (Automatisé)
  • 5.1.9 S'assurer que at est restreint aux utilisateurs autorisés (Automatisé)

5.2 Configurer le serveur SSH

  • 5.2.1 S'assurer que les permissions sur /etc/ssh/sshd_config sont configurées (Automatisé)
  • 5.2.2 S'assurer que les permissions sur les fichiers de clé hôte SSH privés sont configurées (Automatisé)
  • 5.2.3 S'assurer que les permissions sur les fichiers de clé hôte SSH publics sont configurées (Automatisé)
  • 5.2.4 S'assurer que le niveau de journalisation SSH est approprié (Automatisé)
  • 5.2.5 S'assurer que le transfert SSH X11 est désactivé (Automatisé)
  • 5.2.6 S'assurer que SSH MaxAuthTries est fixé à 4 ou moins (Automatisé)
  • 5.2.7 S'assurer que SSH IgnoreRhosts est activé (Automatisé)
  • 5.2.8 S'assurer que l'authentification basée sur l'hôte SSH est désactivée (Automatisé)
  • 5.2.9 S'assurer que la connexion root SSH est désactivée (Automatisé)
  • 5.2.10 S'assurer que les mots de passe vides SSH sont désactivés (Automatisé)
  • 5.2.11 S'assurer que SSH PermitUserEnvironment est désactivé (Automatisé)
  • 5.2.12 S'assurer que seuls des chiffres forts sont utilisés (Automatisé)
  • 5.2.13 S'assurer que seuls de forts algorithmes MAC sont utilisés (Automatisé)
  • 5.2.14 S'assurer que seuls des algorithmes d'échange de clés robustes sont utilisés (Automatisé)
  • 5.2.15 S'assurer que l'intervalle de temporisation d'inactivité SSH est configuré (Automatisé)
  • 5.2.16 S'assurer que le temps accordé pour la connexion SSH est fixé à une minute ou moins (Automatisé)
  • 5.2.17 S'assurer que l'accès SSH est limité (Automatisé)
  • 5.2.18 S'assurer que la bannière d'avertissement SSH est configurée (Automatisé)
  • 5.2.19 S'assurer que SSH PAM est activé (Automatisé)
  • 5.2.20 S'assurer que SSH AllowTcpForwarding est désactivé (Automatisé)
  • 5.2.21 S'assurer que SSH MaxStartups est configuré (Automatisé)
  • 5.2.22 S'assurer que les sessions SSH sont limitées (Automatisé)

5.3 Configurer PAM

  • 5.3.1 S'assurer que les exigences de création de mot de passe sont configurées (Automatisé)
  • 5.3.2 S'assurer que le verrouillage pour les tentatives de mot de passe échouées est configuré (Automatisé)
  • 5.3.3 S'assurer que la réutilisation des mots de passe est limitée (Automatisé)
  • 5.3.4 S'assurer que l'algorithme de hachage des mots de passe est SHA-512 (Automatisé)

5.4 Comptes d'utilisateur et environnement

  • 5.4.1 Définir les paramètres de la suite de mots de passe Shadow
  • 5.4.1.1 S'assurer que l'expiration des mots de passe est de 365 jours ou moins (Automatisé)
  • 5.4.1.2 S'assurer que le nombre de jours minimum entre les changements de mot de passe est configuré (Automatisé)
  • 5.4.1.3 S'assurer que les jours d'avertissement d'expiration des mots de passe sont de 7 ou plus (Automatisé)
  • 5.4.1.4 S'assurer que le verrouillage de mot de passe inactif est de 30 jours ou moins (Automatisé)
  • 5.4.1.5 S'assurer que la dernière date de changement de mot de passe de tous les utilisateurs est dans le passé (Automatisé)
  • 5.4.2 S'assurer que les comptes système sont sécurisés (Automatisé)
  • 5.4.3 S'assurer que le groupe par défaut pour le compte root est GID 0 (Automatisé)
  • 5.4.4 S'assurer que la umask utilisateur par défaut est 027 ou plus restrictive (Automatisé)
  • 5.4.5 S'assurer que le délai d'expiration du shell utilisateur par défaut est de 900 secondes ou moins (Automatisé)
  • 5.5 S'assurer que la connexion root est restreinte à la console système (Manuel)
  • 5.6 S'assurer que l'accès à la commande su est restreint (Automatisé)

6 Maintenance du système

  • 6.1 Permissions des fichiers système
  • 6.1.1 Auditer les permissions des fichiers système (Manuel)
  • 6.1.2 S'assurer que les permissions sur /etc/passwd sont configurées (Automatisé)
  • 6.1.3 S'assurer que les permissions sur /etc/gshadow sont configurées (Automatisé)
  • 6.1.4 S'assurer que les permissions sur /etc/shadow sont configurées (Automatisé)
  • 6.1.5 S'assurer que les permissions sur /etc/group sont configurées (Automatisé)
  • 6.1.6 S'assurer que les permissions sur /etc/passwd- sont configurées (Automatisé)
  • 6.1.7 S'assurer que les permissions sur /etc/shadow- sont configurées (Automatisé)
  • 6.1.8 S'assurer que les permissions sur /etc/group- sont configurées (Automatisé)
  • 6.1.9 S'assurer que les permissions sur /etc/gshadow sont configurées (Automatisé)
  • 6.1.10 S'assurer qu'il n'existe pas de fichiers accessibles en écriture par tous (Automatisé)
  • 6.1.11 S'assurer qu'il n'existe pas de fichiers ou de répertoires sans propriétaire (Automatisé)
  • 6.1.12 S'assurer qu'il n'existe pas de fichiers ou de répertoires sans groupe (Automatisé)
  • 6.1.13 Auditer les exécutables SUID (Manuel)
  • 6.1.14 Auditer les exécutables SGID (Manuel)

6.2 Paramètres des utilisateurs et des groupes

  • 6.2.1 S'assurer que les champs de mot de passe ne sont pas vides (Automatisé)
  • 6.2.2 S'assurer que root est le seul compte UID 0 (Automatisé)
  • 6.2.3 S'assurer de l'intégrité du PATH de root (Automatisé)
  • 6.2.4 S'assurer que tous les répertoires personnels des utilisateurs existent (Automatisé)
  • 6.2.5 S'assurer que les permissions des répertoires personnels des utilisateurs sont de 750 ou plus restrictives (Automatisé)
  • 6.2.6 S'assurer que les utilisateurs possèdent leurs répertoires personnels (Automatisé)
  • 6.2.7 S'assurer que les fichiers cachés des utilisateurs ne sont pas accessibles en écriture par le groupe ou par tous (Automatisé)
  • 6.2.8 S'assurer qu'aucun utilisateur n'a de fichiers .forward (Automatisé)
  • 6.2.9 S'assurer qu'aucun utilisateur n'a de fichiers .netrc (Automatisé)
  • 6.2.10 S'assurer que les fichiers .netrc des utilisateurs ne sont pas accessibles par le groupe ou par tous (Automatisé)
  • 6.2.11 S'assurer qu'aucun utilisateur n'a de fichiers .rhosts (Automatisé)
  • 6.2.12 S'assurer que tous les groupes dans /etc/passwd existent dans /etc/group (Automatisé)
  • 6.2.13 S'assurer qu'il n'existe pas de UID en double (Automatisé)
  • 6.2.14 S'assurer qu'il n'existe pas de GID en double (Automatisé)
  • 6.2.15 S'assurer qu'il n'existe pas de noms d'utilisateur en double (Automatisé)
  • 6.2.16 S'assurer qu'il n'existe pas de noms de groupe en double (Automatisé)
  • 6.2.17 S'assurer 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 à la tâche à exécuter :
- hosts: 127.0.0.1
  connection: local
  • Si vous rencontrez des problèmes d'exécution, essayez de lancer le playbook dans un autre chemin, comme /srv/.
  • Pour une erreur comme celle-ci stderr: chage: user 'ubuntu' does not exist in /etc/passwd, assurez-vous de mettre à jour la configuration sous CIS-Ubuntu-20.04-Ansible/defaults/main.yml
TASK [CIS-Ubuntu-20.04-Ansible : 1.4.1 S'assurer qu'AIDE est installé] ***********************************************************************************************************************************************************************************************************fatal: [192.168.80.129]: FAILED! => {"cache_update_time": 1611229159, "cache_updated": false, "changed": false, "msg": "'/usr/bin/apt-get -y -o \"Dpkg::Options::=--force-confdef\" -o \"Dpkg::Options::=--force-confold\" install 'nullmailer' 'aide-common' 'aide' -o APT::Install-Recommends=no' failed: E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5194 (unattended-upgr)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?\n", "rc": 100, "stderr": "E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 5194 (unattended-upgr)\nE: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?", "stdout": "", "stdout_lines": []}
  • Pour l'erreur ci-dessus, vous devez vous assurer qu'aucun processus apt n'est en cours d'exécution en arrière-plan, ou vous devez attendre que le processus apt se termine.
TASK [CIS-Ubuntu-20.04-Ansible : 5.4.1.1 S'assurer que l'expiration du mot de passe est de 365 jours ou moins | chage] ***************************************************************************************************************************************************************************failed: [192.168.80.129] (item=ubuntu) => {"ansible_loop_var": "item", "changed": true, "cmd": ["chage", "--maxdays", "300", "ubuntu"], "delta": "0:00:00.005478", "end": "2021-01-21 12:49:45.463615", "item": "ubuntu", "msg": "non-zero return code", "rc": 1, "start": "2021-01-21 12:49:45.458137", "stderr": "chage: user 'ubuntu' does not exist in /etc/passwd", "stderr_lines": ["chage: user 'ubuntu' does not exist in /etc/passwd"], "stdout": "", "stdout_lines": []}
  • Assurez-vous de définir le bon utilisateur dans defaults/main.yaml
TASK [CIS-Ubuntu-20.04-Ansible : Création d'utilisateurs sans accès administrateur] ***************************************************************************************************************
fatal: [golden]: FAILED! => {"msg": "crypt.crypt not supported on Mac OS X/Darwin, install passlib python module"}

Installez pip install passlib


Licence

LICENCE PUBLIQUE GÉNÉRALE GNU

Informations sur l'auteur

Le rôle a été initialement développé par Ali Saleh Baker.

Lorsque vous souhaitez contribuer à ce dépôt, veuillez d'abord discuter du changement que vous souhaitez apporter via un problème GitHub, un e-mail ou d'autres canaux avec moi :)

Installer
ansible-galaxy install alivx.cis_ubuntu_20_04_ansible
Licence
gpl-3.0
Téléchargements
402
Propriétaire
Everything