RHUM : Différence entre versions

De Wiki_DR13
Aller à : navigation, rechercher
(Chiffrement)
(Contacts)
 
(14 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 12 : Ligne 12 :
 
*3 Le fichier de données est lui même chiffré via GPG
 
*3 Le fichier de données est lui même chiffré via GPG
  
 +
==Contacts==
  
 +
 +
Stéphane Denys
 +
Administrateur Système
 +
Service Infrastructure et Cloud (SIC)
 +
stephane.denys@umontpellier.fr
 +
 +
Aurelien Morat
 +
Admin réseau
 +
aurelien.morat@umontpellier.fr
  
 
==Schéma de principe==
 
==Schéma de principe==
Ligne 42 : Ligne 52 :
  
 
https://src.koda.dsi.cnrs.fr/dr/dr06/partenaires
 
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. Pour le transfert, le mot de passe de la clés privée RSA est chiffré dans le fichier pass.
 +
 +
Attention, il faut que la clé RSA soit compatible avec la lib php ssh -> elle doit être du type pem (doit commencer par -----BEGIN RSA PRIVATE KEY-----)
 +
 +
Si ce n'est pas le cas, il faut la changer de forme avec la commande suivante :
 +
 +
ssh-keygen -p -m PEM -f /root/.ssh/id_rsa
 +
 +
 +
 +
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]
 +
  
  
Ligne 58 : Ligne 140 :
 
  php /root/partenaires/partenaires.php um
 
  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 :
 
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 :
Ligne 95 : Ligne 172 :
 
   
 
   
 
  fi
 
  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.
 +
 +
 +
  
  
Ligne 104 : Ligne 189 :
  
 
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
 
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 ==
 
== Chiffrement ==
  
 
Les secrets de connexion aux webservices RESEDA sont chiffrés, voir doc sur le GIT
 
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
  
  
Ligne 121 : Ligne 206 :
  
 
  gpg --import ../pkey_UM.pub
 
  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 :'''  
 
'''Lister les clés :'''  
Ligne 141 : Ligne 236 :
 
  uid          [ inconnue] UM <transfert@UM>
 
  uid          [ inconnue] UM <transfert@UM>
 
  sub  rsa4096 2023-09-28 [SEA] [expire : 2024-09-27]
 
  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

Version actuelle datée du 14 février 2024 à 14:57

RHUM[modifier]

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

Contacts[modifier]

Stéphane Denys
Administrateur Système
Service Infrastructure et Cloud (SIC)
stephane.denys@umontpellier.fr
Aurelien Morat
Admin réseau
aurelien.morat@umontpellier.fr

Schéma de principe[modifier]

Rhum-principe.png



Réseau :[modifier]

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[modifier]

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. Pour le transfert, le mot de passe de la clés privée RSA est chiffré dans le fichier pass.

Attention, il faut que la clé RSA soit compatible avec la lib php ssh -> elle doit être du type pem (doit commencer par -----BEGIN RSA PRIVATE KEY-----)

Si ce n'est pas le cas, il faut la changer de forme avec la commande suivante :

ssh-keygen -p -m PEM -f /root/.ssh/id_rsa


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


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[modifier]

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