Installation de l'agent Linux¶
L'agent Linux sert, pour cyberelements.io / cyberelements Cleanroom, à limiter les accès réseaux possibles depuis les serveurs SSH accédés par les utilisateurs (définis dans les politiques / contrats d'accès).
Prérequis¶
Quelques prérequis sont nécessaires au bon fonctionnement de l'agent :
- OS compatible : Red Hat 9 et Debian 12
- Présence du pare-feu
iptables - Connexion avec un compte différent de
root
Information
L'agent Linux n'agit pas sur l'utilisateur root, car celui-ci possède constamment les droits suffisants pour se retirer les restrictions qui lui seraient appliquées.
De plus, certains services utilisant les droits root, l'ajout de restrictions réseaux pourrait rendre instable le fonctionnement de ces services.
Fonctionnement¶
L'agent Linux est décomposé en plusieurs parties :
- Un service systemd nommé
cleanroom-filter - Un module PAM nommé
pam_clr_filter - Une politique SELinux pour Red Hat afin d'autoriser le serveur SSH à communiquer avec le service
cleanroom-filter
Le fonctionnement général suit la séquence suivante :
sequenceDiagram
autonumber
participant MED as Mediation Controller
participant GW_SSH as Edge Gateway<br/>Enregistreur SSH
participant SSH as Cible SSH<br/>Serveur SSH
participant PAM as Cible SSH<br/>Module PAM pam_clr_filter
participant svc as Cible SSH<br/>Service cleanroom-filter
MED->>GW_SSH: Demande d'ouverture d'une<br/>application SSH
GW_SSH->>+MED: Récupération des informations<br/>de filtrage pour la session
MED->>-GW_SSH: Envoi des informations de<br/>filtrage réseau
GW_SSH->>+SSH: Connexion SSH
SSH-->-PAM: Création d'une session SSH
PAM->>+svc: Envoi du nom d'utilisateur
Note right of svc: Création d'une chaîne <br/>iptables pour l'utilisateur ayant<br/> pour nom clr-LOGIN
svc->>-PAM: Envoi d'un jeton unique
Note over PAM: Ajout à la session de l'utilisateur<br/> la variable d'environnement CLR-ID<br/> contenant le jeton unique
GW_SSH->>svc: Envoi de la liste des réseaux à autoriser
Note over svc: Création d'une règle iptables OUTPUT<br/> pour rediriger le traffic de l'utilisateur dans<br/> la chaîne iptables créée précédemment
Note over svc: Ajout des autorisations dans la chaîne<br/> iptables créée pour l'utilisateur
break Fin de session SSH
SSH->>+GW_SSH: Notification de fin de session
SSH-->svc: Détection de la fin de session SSH
Note over svc: Suppression de la règle iptables<br/> OUTPUT créée pour l'utilisateur
Note over svc: Suppression de la chaîne iptables<br/> créée pour l'utilisateur
GW_SSH->>-MED: Notification de fin de session<br/> SSH pour l'utilisateur
end
- Le serveur Mediation Controller envoie l'information à la Edge Gateway d'ouvrir une nouvelle session SSH.
- Le service d'enregistrement SSH demande au serveur Mediation Controller les informations de filtrage réseau à appliquer à la session SSH.
- Le Mediation Controller donne en réponse la liste des réseaux à autorisés.
- Le service d'enregistrement SSH établit ensuite la connexion vers le serveur SSH cible.
- La connexion au serveur SSH déclenche la séquence de création de session, et donc du passage par les modules PAM affectés à
sshd. - Le module PAM
pam_clr_filterde l'agent Linux envoie le nom d'utilisateur au servicecleanroom-filterqui créé ensuite une nouvelle chaîne iptables ayant pour nomclr-LOGINoù LOGIN est remplacé par le d'utilisateur reçu. - Après création de la chaîne iptables, le service
cleanroom-filtercrée et envoie un jeton aléatoire au module PAMpam_clr_filter. Ce dernier va ajouter ce jeton dans la variable d'environnementCLR-IDde l'utilisateur. - Le service d'enregistrement SSH envoie, par l'intermédiaire de l'exécutable
/usr/local/ipdiva/bin/cleanroom-netfiltersession.py, la liste des réseaux à autoriser au servicecleanroom-filter. Le service crée ensuite une règle iptablesOUTPUTpour rediriger tout le trafic de l'utilisateur, identifié par son UID, dans la chaîne iptables créée au point 6. L'ensemble des flux à autoriser pour l'utilisateur sont ajoutés dans la chaîne iptables. - Lorsque la fin de session SSH est déclenchée, l'information remonte au service d'enregistrement SSH de la Edge Gateway.
- Le service
cleanroom-filterdétecte la fin de session de l'utilisateur et procède au nettoyage des règles iptables ajoutées : suppression de la directiveOUTPUTredirigeant le trafic de l'utilisateur dans une chaîne iptables et suppression de cette dernière. - La Edge Gateway ayant reçu la fin de session SSH, elle retransmet cette information au Mediation Controller.
Installation¶
Droits root requis
Les droits root pour l'installation de l'agent est obligatoire.
Le paquet .deb ou .rpm est téléchargeable depuis la console d'administration :
Une fois le paquet récupéré, envoyez-le sur le serveur Linux dans le répertoire /tmp/.
Suivez ensuite les instructions d'installation adaptées à l'OS :
Exécutez les commandes suivantes avec les droits root :
1 2 | |
La seconde commande permet d'automatiser l'ajout de deux lignes dans le fichier /etc/pam.d/sshd, mais cette opération peut aussi être réalisée manuellement :
27 28 29 30 31 32 33 34 35 36 37 | |
Exécutez les commandes suivantes avec les droits root :
1 2 | |
La seconde commande permet d'automatiser l'ajout de deux lignes dans le fichier /etc/pam.d/sshd, mais cette opération peut aussi être réalisée manuellement :
11 12 13 14 15 16 17 | |





