RHUM

De Wiki_DR13
Révision datée du 13 février 2024 à 14:32 par 10.13.0.1 (discussion) (Logiciel)
Aller à : navigation, rechercher

RHUM

Réseau d'échange des données avec l'UM Il s'agit de mettre en place des ressources (serveurs, scripts, réseau) afin d'échanger avec l'UM des données RH (de type CSV) provenant de1 fichier nos SI RH respectif.


Les données échangée sont critique, il a été chois d'appliquer 3 niveaux de chiffrement :

  • 1 Les données transitent par un tunnel chiffré (IPSec)
  • 2 Les données transitent dans un canal chiffré (SFTP)
  • 3 Le fichier de données est lui même chiffré via GPG


Schéma de principe

Rhum-principe.png



Réseau :

1 Vdom dédié sur FW-Campus -> EXCH (Exchange)

  • Réseau Extra : 194.57.116.201/255.255.255.252, vlan 229
  • Réseau du serveur de récupération auprès de la DSI : 10.22.0.0/24 vlan 1250
  • Réseau d’échange avec l'UM : 10.22.1.0/24 vlan 1251

Le tunnel IPSEC est monté entre notre firewall et leur machine d’échange directement.


Machine d'export vers l'UM : 10.22.1.10. La machine UM qui viens récupérer les fichiers est 10.22.2.180 (au travers du tunnel IPSec)


RHUM Reseau.jpg

Logiciel

Le code est développé par la DR6, il est dispo sur la forge de la DSI CNRS :

https://src.koda.dsi.cnrs.fr/dr/dr06/partenaires


Configuration :

Le fichier de conf globale est /root/partenaires/.env

Donner l'ID de la clé privée qui permet de déchiffrer les paramètres de connexion (rsd_login et rsd_pwd)

ex :

# gpg --list-secret-keys
/root/.gnupg/pubring.kbx
------------------------
sec   rsa4096 2023-05-11 [SC]
      A1EE625028168BC49EB9AA624C1784CFF1FDEFF2
uid          [  ultime ] DR13 - SSI (Clé de chiffrement pour les fichiers de conf) <dr13.ssi@cnrs.fr>
ssb   rsa4096 2023-05-11 [E]
[...]
# cat .env
structures="https://webservices.dsi.cnrs.fr/services/eairef/v1/structures/v2/"
personnels="https://webservices.dsi.cnrs.fr/services/eairef/v1/personnes/v1/"
id_pgp_delegation="A1EE625028168BC49EB9AA624C1784CFF1FDEFF2"
depot = "10.22.1.10"
port="22"
utilisateur="exch"
pub = "/root/.ssh/id_rsa.pub"
rsa = "/root/.ssh/id_rsa"


L'export direct depuis le script php fonctionne a present. IL FAUT CHIFFRER le MDP de la clé pour etre conforme au script et ne pas avoir a le modifier de trop


Le fichier de conf pour l'UM est /root/partenaires/tutelles/um/um.yaml

Les lignes marquées d'un ### sont a passer a 0 dès que le script est réparé.

Il faut indiquer la clé publique de l'UM dans le fichier pour chiffrer les données :

cat /root/partenaires/tutelles/um/um.yaml
# u1m.yaml
# fichier de configuration de partenaire
partenaire: 22794 # idReseda du partenaire
id_pgp: 17CA360F1FD6C4DBCA990D17A5D92158A68550B9
pathdepot: '/home/exch/temp/' # exemple '/partenaires/ul/'


# gpg --list-public-keys
/root/.gnupg/pubring.kbx
------------------------
pub   rsa4096 2023-05-11 [SC]
      A1EE625028168BC49EB9AA624C1784CFF1FDEFF2
uid          [  ultime ] DR13 - SSI (Clé de chiffrement pour les fichiers de conf) <dr13.ssi@cnrs.fr>
sub   rsa4096 2023-05-11 [E] 

pub   rsa4096 2023-09-11 [SC] [expire : 2024-09-10]
      B95532C921C07CE7AAB9AAE9BD60BA20AEECE6A0
uid          [  ultime ] CNRS-DR13 (Clé d'échanges UM -> CNRS) <dr13.ssi@cnrs.fr>
sub   rsa4096 2023-09-11 [E] [expire : 2024-09-10]

pub   rsa4096 2023-09-28 [SCEA] [expire : 2024-09-27]
      17CA360F1FD6C4DBCA990D17A5D92158A68550B9
uid          [ inconnue] UM <transfert@UM>
sub   rsa4096 2023-09-28 [SEA] [expire : 2024-09-27]



SENS CNRS -> UM

Script lancé par la crontab de Import-Partenaires. La machine est déclarée auprès de la DSI pour pouvoir accéder au Webservice (en réalité, adresse de NAT de ce réseau). Le script est dispo dans /root/partenaires/partenaires.sh :

#!/bin/bash

cd /root/partenaires/

#Traitement de l'UM :

#Generation du fichier chiffré :
php /root/partenaires/partenaires.php um

#Copie du fichier chiffré sur le dépot Dock-Partenaires-UM :
scp /root/partenaires/tutelles/um/um.json-* exch@10.22.1.10:/home/exch/temp

#suppression du fichier
rm -f /root/partenaires/tutelles/um/um.json-*

Sur le Dock-Partenaires-UM un second script envoie les fichiers sur la machine de l'UM. Il se trouve sur /root/push-to-UM.sh :

#!/bin/bash 

unset -v latest
dir="/home/exch/temp"

if [ -z "$(ls -A $dir | grep um.json)" ]; then
   echo "Pas de fichier à transferer"

else
   echo "Le fichier de données existe" 

   for file in "$dir"/*; do
      $file -nt $latest  && latest=$file
   done

   echo Dernier fichier :  $file
   echo "Copie vers les serveurs de l'UM"

sftp svc-dock-um@10.22.2.180 << SFTP
 cd /data/dock
 put $file
 bye
SFTP

   echo Purge des anciens fichiers

rm -f $dir/um.json*

fi


Modification de l'authentification par clé :

Pour contrôler plus finement les connexion et limiter a SFTP, les clé autorisées sont dans /etc/ssh/authorized_keys/. Cela permet aux utilisateurs de ne pas changer leur clé eux même.



Sens UM -> CNRS

Les fichiers sont générés par l'UM

Fichiers déposés dans /home/dock-um/ via scp sur Dock-Partenaires-UM

Actuellement, aucun traitement ce ce fichier il faut faire un script de transfert vers Import-Partenaires puis un script de suppression avant de faire un script d'envoi vers la DSI

Chiffrement

Les secrets de connexion aux webservices RESEDA sont chiffrés, voir doc sur le GIT

l faut les chiffrer sur une machine windows avec le logiciel Katia


Les fichiers échangés sont chiffrés avec GPG. Voici quelques commandes utiles :


Tous les ans, il faut regénérer une nouvelle clé puis l’échanger avec l'UM. C'est vrai dans les 2 sens :


Importer la clé générée par l'UM :

gpg --import ../pkey_UM.pub

Exporter la clé publique CNRS :

gpg --output pkey_CNRS.pub --armor --export B95532C921C07CE7AAB9AAE9BD60BA20AEECE6A0


Déchiffrer le fichier UM :

gpg --decrypt DATARH-UM-CNRS.pdf.gpg
(voir la passphrase dans le gestionnaire de mot de passes)

Lister les clés :

gpg --list-k
/root/.gnupg/pubring.kbx
------------------------
pub   rsa4096 2023-05-11 [SC]
      A1EE625028168BC49EB9AA624C1784CFF1FDEFF2
uid          [  ultime ] DR13 - SSI (Clé de chiffrement pour les fichiers de conf) <dr13.ssi@cnrs.fr>
sub   rsa4096 2023-05-11 [E] 

pub   rsa4096 2023-09-11 [SC] [expire : 2024-09-10]
      B95532C921C07CE7AAB9AAE9BD60BA20AEECE6A0
uid          [  ultime ] CNRS-DR13 (Clé d'échanges UM -> CNRS) <dr13.ssi@cnrs.fr>
sub   rsa4096 2023-09-11 [E] [expire : 2024-09-10]

pub   rsa4096 2023-09-28 [SCEA] [expire : 2024-09-27]
      17CA360F1FD6C4DBCA990D17A5D92158A68550B9
uid          [ inconnue] UM <transfert@UM>
sub   rsa4096 2023-09-28 [SEA] [expire : 2024-09-27]


Générer une clé :

gpg --full-generate-key

Supprimer une clé :

gpg --delete-keys B429787F4574903F6EFAF55A7252CF800DEAB316