Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur. ====== TX sécurité A18 ====== Ce dépôt contient la documentation rédigée par Stanlkey RAGAVA et Igor WITZ à l'occasion de la TX sécurité réalisée au semestre d'automne 2018. Les dépôts Gitlab suivants ont été créés lors de cette TX : * [[https://gitlab.utc.fr/picasoft/wiki|picasoft-wiki]] pour stocker la documentation * [[https://gitlab.utc.fr/picasoft/wiki|Wiki]] où la documentation est stockée après fin de la TX * [[https://gitlab.utc.fr/picasoft/dockerfiles/tree/dev-ci|test-ci]] pour le développement de la chaîne d'intégration Gitlab Les travaux ont été séparés en une partie infrastructure et une partie Docker. ===== Partie infrastructure ===== ==== Inventaire de bonnes pratiques Docker ==== **Wiki :** * [[https://wiki.picasoft.net/doku.php?id=adminsys:redaction_des_images_docker&s[]=bonnes&s[]=pratiques&s[]=docker|Rédaction des images Docker]] * Mises à jour mineures sur de la documentation interne sur Docker **Gitlab :** * Rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/recommendations-systemes-pour-docker.md|article]] contenant des recommandations systèmes pour Docker ==== Etude de l'infrastructure technique de Picasoft ==== **Wiki :** * Refonte de l'article [[https://wiki.picasoft.net/doku.php?id=infrastructure:architecture_globale|architecture globale]] du Wiki comprenant : * un nouveau schéma de l'infrastructure * la liste des machines physiques et virtuelles ainsi que leur rôle * la liste des services pour chaque machine * la liste des noms de domaine identifiés ainsi que les machines spécifiques vers lesquelles ils pointent * la liste des briques logicielles et matérielles utilisées * la liste et la description des points névralgiques ayant pu être identifiés lors de l'état des lieux ==== Gestion des mises à jour ==== **Gitlab :** * Définition d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/Gestion_des_mises_a_jour.md|plan de gestion des mises à jour]] comprenant : * Un comparatif entre les versions de chaque services et les dernières versions publiées * Un planning des mises à jour à effectuer * Développement d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/SCRIPTS/MACHINE_TEST_auto_update_cronapt.sh|script]] permettant d'effectuer les mises à jour de sécurité ou autres sur des machines Debian et basées sur Linux ==== Procédures de départ et d'arrivée ==== * [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/procedure-depart-arrivee.md|Liste]] des actions à réaliser lors de l'arrivée et du départ d'utilisateurs ===== Partie Docker ===== ==== Etude de Hashicorp Vault ==== **Gitlab :** * Production de [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/hashicorp-vault/rapport-essai-vault.md|documentation]], expliquant notamment pourquoi l'utilisation de cette technologie n'a pas été retenue. ==== Analyse de l'image pica-etherpad ==== * Tests avec docker-bench-security et Clair * Tests manuels et confrontation de l'image aux bonnes pratiques déterminées préalablement * Rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-etherpad/rapport-audit-image-etherpad.md|rapport d'analyse]] * Correction des vulnérabilités, rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-etherpad/correction-vulnerabilites-etherpad.md|rapport de correction]], insertion de l'image dans le [[https://gitlab.utc.fr/picasoft/dockerfiles/merge_requests/9|dépôt Picasoft]], mise en production de l'image, [[https://gitlab.utc.fr/picasoft/dockerfiles/merge_requests/11/diffs|modifications]] de l'image pour réfléter les modifications apportées lors de la mise en production et [[https://gitlab.utc.fr/picasoft/dockerfiles/merge_requests/12|correction supplémentaire]]. La version actuelle de l'image se trouve [[https://gitlab.utc.fr/picasoft/dockerfiles/blob/master/pica-etherpad/Dockerfile|ici]] ==== Création d'une chaîne d'intégration Gitlab pour le dépôt picasoft/dockerfiles ==== * Création d'un [[https://gitlab.utc.fr/witzigor/test-ci|dépôt Gitlab]] pour le test de la CI * Installation d'un runner sur pica01-test et [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/chaine-integration.md|documentation]] du fonctionnement de la CI ==== Analyse de l'image pica-dokuwiki ==== * Analyse de l'image et rédaction d'un [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-wiki/rapport-audit-image-pica-wiki.md|rapport]] * Corrections des vulnérabilités détectées ===== Reste à faire ===== * **Chaîne d'intégration :** * intégration à la CI de l'image pica-mattermost selon la documentation * finir la partie "déploiement en production" -> en particulier, exposer le démon Docker de la VM sur laquelle se trouve pica-dokuwiki au réseau ce qui n'est pas fait actuellement * **Correction des images Mattermost** * À partir du [[https://gitlab.utc.fr/picasoft/wiki/blob/master/docker/audit-mattermost/AUDIT_REPORT/rapport-audit-images-mattermost.md|rapport d'audit des images de Mattermost]], décider s'il est nécessaire de corriger les images ou s'il suffit simplement de récupérer les nouvelles images de Mattermost depuis le [[https://github.com/mattermost/mattermost-docker|dépôt officiel]] à chaque nouvelle version. * **Mises à jour automatiques :** * Déploiement en sur une machine de test de picasoft (pica01-test par exemple) : * Dans le [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/SCRIPTS/MACHINE_TEST_auto_update_cronapt.sh|script de test]], remplacer l'email de picasoft par celui de la personne qui réalise le test <code bash|>echo "MAILTO=\"picasoft@assos.utc.fr\"" >> /etc/cron-apt/config</code> * Faire en sorte que le cron s'execute toutes les 15 minutes pour les tests en changeant la ligne ci-dessous dans le script (cf. [[https://en.wikipedia.org/wiki/Cron#Overview|wiki cron]]) <code bash|># update 1st day of every months at 4:00 a.m. echo "0 4 * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt" > /etc/cron.d/cron-apt</code> * Exécuter le script sur la machine de tests de picasoft * Regarder si les rapports de mises à jour sont bien envoyés/reçus par email et si tout s'est passé correctement * Si OK, déployer ce script sur toute les machines de tests (en surveillant que tout se passe bien pendant les premiers mois) * Déploiement sur les machines de production de picasoft * Si la phase précédente s'est bien passée, mettre le [[https://gitlab.utc.fr/picasoft/wiki/blob/master/systeme/GESTION_DES_MAJ/SCRIPTS/MACHINE_PROD_auto_update_cronapt.sh|script de prod]] sur les machines de prod txs/secu/secu_a18/securite.txtde 127.0.0.1