Premiers pas
AutomA est un projet de durcissement de système d’exploitation automatisé, basé sur les règles et les conseils de références dans le monde de la cybersécurité tel que l’ANSSI. Ce guide utilisateur à pour but de permettre la bonne prise en main de l’interface Web ainsi que la configuration du service SSH.

Sélection de l’environnement
Après avoir cliqué sur Start
sur la page d’accueil, il vous sera demandé de sélectionner l’environnement des machines qui vont êtres concernées par le durcissement.

Information
Vous ne pouvez que durcir qu’un seul type d’environnement à la fois
Hôte
Il est nécessaire de renseigner les machines à sécuriser dans l’onglet HOST INVENTORY
. Cet onglet permet de définir l’ensemble des machines à sécuriser.

Vous devez renseigner les informations suivantes :
- Name : Un nom arbitraire unique de votre machine
- IP : L’adresse IP de votre machine ou son FQDN (exemple : samba.local)
- Port : Le port d’écoute du service SSH de votre machine
- Connection Method : Vous avez le choix entre mot de passe et clef
- Username : Le nom d’utilisateur pour la connexion SSH à votre machine
- Auth : Le mot de passe ou le chemin d’accès à votre clef privée associée
- Sudo Username : Le nom d’utilisateur pour l’élévation de privilège
- Sudo Password : Le mot de passe de l’utilisateur ayant les droits d’administration
Ci-dessous, voici un exemple de configuration :

Il est possible de modifier les champs en cliquant dessus directement :

Génération des actions
Dans l’onglet HARDENING ACTION
, une liste d’actions de durcissement est disponible. Ces règles sont classées selon :
- La catégorie de la règle parmi les suivantes :
- KERNEL
- LOGGING
- MEMORY
- MONITORING
- NETWORK_STACK
- PACKAGE_MANAGEMENT
- PARTITIONING
- PERMISSIONS
- SERVICES
- USERS
- Le niveau de recommandation de la règle
- MINIMAL
- INTERMEDIATE
- REINFORCED
- HIGH
- Le révérenciel de la règle (ANSSI, NIST, etc …)
Il est possible de choisir une règle en cliquant dessus et en validant celle-ci :

Certaines règles demandent des informations supplémentaires de la part de l’utilisateur pour définir le comportement adapté.
Par exemple cette règle permet de faire des mise à jours automatiquement sur une fréquence que l’utilisateur peut choisir. Un menu déroulant apparait avec une liste de choix possibles :

Ici nous avons choisi monthly
:

Lancement des actions
Une fois que la configuration est terminée, l’utilisateur doit générer sa configuration en cliquant sur le bouton GENERATE
.
Il est ainsi possible de lancer les règles sur les machines configurées en appuyant sur le bouton RUN
. Il est aussi possible de cliquer sur la flèche pour afficher le bouton DOWNLOAD
, vous permettant alors de récupérer l’ensemble des fichiers pour les lancer manuellement.
Nous pouvons ainsi observer l’exécution des playbooks et des actions grâce à la génération de logs directement sur l’interface :

Configuration du SI
Nous utilisons Ansible pour propager les actions de durcissment, il est alors nécessaire d’ouvrir un port ssh pour qu’Ansible puisse y effectuer les actions nécessaires. Dans cette page, vous trouverez les informations nécessaire à la mise en place d’un serveur SSH sur une machine linux de type Debian 12.
Configuration du service SSH
Vérification du statut
La commande suivante permet de vérifier l’état du service OpenSSH
:
sudo systemctl status ssh

Activation du service
Si le service est désactivé, la commande suivante permet de le lancer :
Service au démarrage
Sur la plus part des systèmes Linux, le service SSH se lance au démarrage. Si ce n’est pas le cas et que vous voulez obtenir ce comportement, la commande suivante permet de l’activer au démarrage de la machine :
sudo systemctl enable ssh
Configuration du service
Le fichier /etc/ssh/sshd_config
permet de configurer le daemon SSH. Par défaut, le service s’exécute sur le port TCP/22.
Il est recommandé de :
- Désactiver la connexion du compte
root
- Désactiver la connexion par mot de passe et préférer la connexion par clé
- Désactiver l’écoute sur l’IPv6 si elle n’est pas utilisée
- Désactiver le
X11 Forwarding
- Changer le port d’écoute (22 par défaut)
# OpenSSH config file
Port 50122 # Mettez le port que vous souhaitez
ListenAddress 0.0.0.0 # Ecoute sur l'IPv4
# Pour désactiver l'IPv6, vous devez avoir la ligne suivante commentée
#ListenAddress ::
PubkeyAuthentification yes
PermitRootLogin no
PasswordAuthentification no
PermitEmptyPassowrd no
X11Forwarding no
Génération des clés
Pour générer une paire de clés, SSH intègre la commande suivante :
ssh-keygen -t ecdsa -b 521 -f /home/user1/.ssh/id_ecdsa_debian12
Remarque
Il est fortement recommandé de protéger votre clef privée avec un mot de passe !
Cela permet de générer deux fichiers, id_ecdsa_debian12
qui contient la clé privée, et id_ecdsa_debian12.pub
qui contient la clé publique. Ces deux fichiers sont stockés dans le dossier ~/.ssh
.
Utilisation des clés
La clé privée de la machine est requise pour utiliser l’authentification par clé dans AutomA
. Veuillez générer les clés sur la machine hébergeant AutomA
et ajouter la clé publique correspondante dans le fichier ~/.ssh/authorized_keys
de la machine concernée.
Pour mettre votre clef publique sur la machine distance, il existe plusieurs techniques :
SSH-COPY
Vous pouvez utiliser le binaire ssh-copy
comme suit :
ssh-copy-id -i ~/.ssh/<your_key>.pub <username>@<ip_address> -p <port>
Cette technique ne fonctionne que si le serveur SSH accepte la connexion par mot de passe.
Clef USB
Vous pouvez copier votre clef publique sur une clef usb qui est maitrisée. Ensuite, sur la machine de destination, créer le dossier ~/.ssh
et le fichier ~/.ssh/authorized_keys
dans lequel vous copiez le contenu de la clef publique provenant de votre clef USB.
Il est nécessaire d’y appliquer les bonnes permissions.
chmod 700 /home/user/.ssh
chmod 600 /home/user/.ssh/authorized_keys
chown -R user:user /home/user/.ssh