Projet

Général

Profil

Léo Comères

15 Avril 2024

Arriver au Fablab, découverte des outils et de l'environnement.
Créations comptes Git cohabit, Redmine et serveur.
Créations de clé SSH mise sur clé USB pour des raisons de sécurité.
Liste des projets/travaux en cours.

Mise à jour du serveur de production en debian 12.

Pour cela on regarde la version actuelle
lsb_release -t //Cette commande permet d'obtenir des informations sur le système d'exploitation
sudo apt get update //Permet d'aller mettre à jour les paquets.
sudo apt get upgrade //Permet de d'installer les mises à jour des paquets

Pour des raisons de sécurité nous copié le fichier "sources.list" qui pourra nous servir de sauvegarde en cas de soucis, une fois sauvegarder il nous faut l'éditer pour remplacer les mentions de "bullseye" en "bookworm". "Bullseye" est le nom de la version 11 de debian, "Bookworm" est le nom de la version 12.
sed -i 's/bullseye/bookworm/g' /etc/apt/sources.list //Cette commande remplace le mot "bulleye" en "bookworm"

Il nous faut ensuite re-update le tout.
sudo apt update
sudo apt upgrade --without-new-pkgs //Ici on veut éviter de retirer un trop grand nombre de paquets
sudo apt full-upgrade //C'est grâce à cette commande que l'on va mettre à jour le système d'exploitation entier
Il nous reste plus qu'à reboot.

Problème rencontré :
Le redmine ne fonctionnait plus à cause d'une dépendance manquante.
Il a donc fallu mettre à jour bundle et même le réinstaller.
sudo apt update bundle //On met à jour le paquet "bundle"
gem install bundler //On re-installe le paquet bundle
sudo apt install postgress-contrib libpg-dev
sudo apt update bundle //On met à jour le paquet "bundle"
apache2 service restart //On redémarre le service Apache2
Et nous voici avec un serveur debian 12 fonctionnel.

Mise à jour de Forgejo
Pour mettre à jour Forgejo, on supprime le Dump de l'ancienne version, et on en crée un nouveau.
On va venir cherhcer la dernière version
wget https://codeberg.org/forgejo/forgejo/releases/download/v1.21.10-0/forgejo-1.21.10-0-linux-amd64 //Téléchargement
chmod +x forgejo-1.21.10-0-linux-amd64 //Attribution des droits
On vient ensuite vérifier les clés GPG
gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710
wget https://codeberg.org/forgejo/forgejo/releases/download/v1.21.10-0/forgejo-1.21.10-0-linux-amd64.asc
gpg --verify forgejo-1.21.10-0-linux-amd64.asc forgejo-1.21.10-0-linux-amd64
On vient de vérifier l'identité de notre fichier, il faut maintenant le déployer sur le forgejo.
sudo mv /etc/forgejo/forgejo-1.21.10-0-linux-amd64 /usr/local/bin/forgejo
systemctl restart forgejo //On restart le processus
systemctl status forgejo //On vérifie qu'il tourne bien
Et nous voici avec un forgejo opérationnel !

Problème rencontré :
Il y a un jeu de droit plutot entravant dans le dossier /etc/forgejo qui rend la commande dump impossible. Pour cela une solution est de prendre le rôle "git" dont provient le fichier app.init qui nous intéresse.
sudo su git //Permet de prendre le rôle "Git" qui possède donc les droits sur les fichiers

16 Avril 2024

Études protocole NTP, Documentation Wireguard, TLS.
Nous avons un souci sur les ordinateurs en Wi-Fi ceux-ci n'arrivent pas à avoir l'heure, ce processus de synchronisation se fait normalement avec le processus NTP.
Une première piste qui fit explorer était l'état du processus, celui-ci n'est en réalité pas présent sur les machines, c'est un processus similaire qui est présent sous le nom : "systemd-timesyncd".
Après un peu de lecture de documentation, nous réalisons que le processus "systemd-timesyncd" n'est pas configuré sur le serveur NTP donné par Arquinet, à savoir que les serveurs NTP proposés initialement dans la configuration son refusé, ce qui pourrait poser problème sur l'obtention de l'heure. Il faut donc configurer la bonne adresse, redémarrer le processus et tester.
Recherche pour TLS/SSL, on pourrait trouver une solution pour améliorer le niveau de sécurité des mails = OPENSSL

17 Avril 2024

Mise à jour puis réinstallation de Postfix
Postfix est notre serveur mail, avant nous travaillions avec Sendmail qui fonctionne en coordination avec postfix, mais celui-ci fut déprécier, maintenant nous utilisons juste Postfix.
Ce dernier a posé quelques soucis à l'intégration du SSL. Le problème venait de la version du logiciel et de son fichier de configuration.
Son fichier de configuration était celui d'une version antérieur à la version 2.3, la version actuelle étant la version 3.7.10 le processus ne comprenais donc pas sa propre configuration.
Nous avons dû donc corriger cela en désinstallant le tout (et en faisant une backup au cas où) puis en le réinstallant. À noter que la désinstallation ne supprimait pas tous les dossiers, cela peut poser problème, car le fichier de configuration en fait partie et donc ne se réinstalle pas si on ne le supprime pas.

Installation du TLS
Le TLS permet une sécurisation des données envoyées par mail grâce au chiffrement, on peut le voir sous forme de cadenas de couleurs sur Gmail par exemple.
Ici, on fait appel à OPENSSL qui est une extension à Postfix et on y glisse les clés dans le fichier de configuration de Postfix.
Un petit souci ayant survenu étant un fichiers manquant à la réinstallation le fichier "postfix-file" nous somme aller le chercher dans la backup, ce qui a fait fonctionner le tout.

Installation de DMARC
Le DMARC permet de vérifier l'authentification des utilisateurs, c'est un outil pour éviter le "spoofing".
Son installation se fait via le DNS, pour nous, il faut donc aller le configurer sur OVH qui dispose des outils et option pour cela.
Nous avons juste à ajouter une entrée DMARC avec comme sous-domaine "_dmarc", la version "DMARC1", la règle de domaine "reject" et finalement la vérification SPF en "strict".
NB : SPF signifie "Sender Policy Framework", c'est un outil d'anti-spoofing.

Recherche S/MIME
S/MIME est le dernier niveau de sécurité visible sur GMAIL, il nous donnerait un petit cadenas vert ainsi que théoriquement un haut niveau de sécurité.
Grâce à S/MIME le chiffrement se ferait en englobant l'intégralité du mail et pas seulement sont contenu.
Un souci venant avec lui cependant est la difficulté pour acquérir une certification gratuite, la majorité des certifications sont payantes et une grande partie des résultats sont des services pour acquérir ces certifications (ce qui ne nous intéresse pas).

Nous essayons actuellement avec Actalis, mais n'arrivons pas à faire ce que nous voulons, actuellement seule l'adresse de Monsieur Pierre possède cette certification.

18 Avril 2024

Recherche S/MIMIE,
S/MIME est une norme cryptographique, qui permet par exemple de tout chiffrer dans un mail, pas seulement le contenu. Ici, notre objectif est d'obtenir le petit cadenas vert sur les mails, qui démontre théoriquement un haut niveau de sécurité.

À noter que cette sécurité à une faille celle-ci s'appelle EFAIL, mais ici, ce n'est pas limité à S/MIME, mais est bien plus général.

Après quelque recherche, nous réalisons que le sur les différents services proposant la certification S/MIME gratuitement, beaucoup ne sont plus disponible pour diverse raison (rachat principalement). Le seul disponible semble être Actalis qui est une autorité de certification. Nous avons donc pu créer un compte au nom du Fablab ayant pour objectif de certifier les mails du Fablab cependant ne pouvant recevoir de messages sur cette adresse (n'étant pas encore paramétré), l'adresse choisis fut celle de Monsieur Pierre Grangé Praderas. Ce fut aussi son adresse qui fut certifiée, ce n'est finalement donc pas ce que nous recherchions.

Étant donné que nous ne pouvons pas certifier pour le moment, nous avons donc mis cette partie de coté.

Recherche API pour imprimante 3D
L'idée de pouvoir connecter les imprimantes à une API pour obtenir toutes sortes d'informations nous est venue en tête, nous avons par curiosité recherchés un peu sur le sujet, il semblerait que certains ait réussi à connecter des machines X1 carbon de chez Bambulab grâce à MQTT.

Cependant, n'étant pas dans notre domaine, nous avons mis cela de côté n'étant pas urgent, ni même une demande actuelle.

Reflexion LDAP
Sur les services du Fablab, il y a deux titres, Utilisateur qui n'a aucun droit et Admin qui à tous les droits, cela représente en soit un problème de sécurité. Pour résoudre ceci, il faudrait passer par un LDAP et ainsi crée d'autres groupes d'utilisateurs, nous aurions aussi la possibilité de fonctionner avec des TAG pour différencier les utilisateurs, groupes d'utilisateurs, etc...

Cela fait partie d'un plus gros projet visant à regrouper tous les services en un seul, facilitant et fluidifiant l'accès pour tous.

Concernant les droits, nous avons pensé à 3 catégories et plusieurs catégories spéciales.
Les 3 catégories principales seraient :
- Visiteur : Accès en lecture au News, à la Documentation.
- Membres : Accès en écriture et lecture leurs pages personnelles, portfolio, Projets et Code (Git), la possibilité de réserver la graveuse laser.
- Administrateurs : Accès au SSH, lecture & écriture à tout.

Nous aurions aussi des rôles plus spécifiques.
Manager : Accès aux documents administratifs
Contributeur : Permet de contribuer avec l'accord à d'autres projets.

Ces rôles changeront certainement, mais c'est notre premier draft les concernant, ainsi évitant de soit ne rien avoir soit avoir tous les droits.

19 Avril 2024

Recherche migration serveur de prod
Notre serveur est un ancien modèle, cela a son importance dans la façon dont les données sont stockées.
Nous cherchons à changer de machine, car celle-ci ne semble plus adaptée, d'un point de vue mémoire possédant 8 Go de Ram, celle-ci ne semble pas dépasser les 1,5 voir 2 Go de Ram en utilisation, une machine sur 4 Go pourrais donc faire l'affaire, le système de stockage pourrait aussi être à revoir actuellement en ext4, il n'y pas de vrais soucis avec ce format cependant, on pourrait trouver plus adapte.
  • XFS serait intéréssant par exemple si on cherche a avoir plusieurs tâche en même temps, le serveur de production faisant actuellement tourner les services du Fablab cela pourrait nous intéresser.
  • Nous pourrions aussi envisager BTRFS dont ces qualités sont dans l'implémentation de "features", le fablab évolue de jour en jour l'ajout de service pourrait donc être facilité.

29 Avril 2024

  • Mise à jour de Forgejo version 1.21.10 à 7.0.1
    La manipulation est la même que la première que nous avons effectuée le 15 avril 2024.
  • Création d'un schéma Réseau.
  • Recherche sur la mise en place d'un client & serveur Wireguard pour effectuer un tunnel permettant d'esquiver les restrictions de la DSI

30 Avril 2024

Créations d'un tunnel à l'aide de Wireguard en créant un VPN.
Pour cela, il faut un client et un serveur, ici notre client est le routeur et le serveur est le serveur de production. L'idée est d'utiliser son identité pour tout appareil connecté sur le wifi (plus tard potentiellement les appareils branchés aussi en ethernet).

Pour faire cela, on s'est créé un serveur de test à l'aide d'une raspberry Pi 3 qui sera suffisante pour notre utilisation. Nous avons juste due trouver une carte SD de plus de 4/8Go et installer un Debian12 dessus pour "imiter" le serveur de production.

Concernant Wireguard, il faut bien entendu l'installer, mais surtout le configurer, nous avons donnés cette configuration pour le serveur de test.

Fichier wg0.conf :

[Interface]
PrivateKey = Clé Privé du Serveur
Address = 10.153.242.1/24
MTU = 1420
ListenPort = 5151
[Peer]
PublicKey = Clé Publique du Client
PresharedKey = W7fVFTD/wPtBNJwk9QczSw4Drp3LwR7sRbt3q42fN3c=
AllowedIPs = 10.153.242.2/32

Fichier wg0-client.conf :

[Interface]
PrivateKey = Clé Privé du Client
Address = 10.153.242.2/24
DNS = 208.67.222.222, 208.67.220.220

[Peer]
PublicKey = Clé publique du Serveur
PresharedKey = W7fVFTD/wPtBNJwk9QczSw4Drp3LwR7sRbt3q42fN3c=
Endpoint = 147.210.95.11:5151
AllowedIPs = 0.0.0.0/0, ::0/0

Après quelques tests, nous réalisons que cela fonctionne sans trop de problèmes.
Nous envoyons donc cela sur le serveur de production, en adaptant les adresse IPs et clé et testons, cependant cela ne semble pas fonctionner et recherchons la source du problème.

2 Mai 2024

- Recherche de solution pour l'utilisation du client/serveur Wireguard, en conséquence demande de prise de rendez-vous avec la DSI par mail.

- Nous avons ajouté un second réseau wifi , celui-ci est décrit comme "invité", il n'a pour le moment pas d'utilité, mais pourrait en avoir si nous arrivons à résoudre la situation "Wireguard", où seul l'accès au réseau wifi permettrait d'utiliser le pont vers le serveur de production, le wifi "invité" ne le permettant pas.

- Nous avons aussi rajouté l'IPV6 Native sur le réseau wifi, tous les appareils se connectant sur le réseau auront une IPV6.

- Visite de la baie de brassage.