From f8ae329ebb744dd243701278987034079c9c7775 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Wed, 16 Oct 2019 04:07:15 +0200 Subject: [PATCH] Made a special subject for owncloud --- subject/owncloud/Makefile | 12 ++++ subject/owncloud/end.md | 1 + subject/owncloud/ex-owncloud.md | 46 +++++++++++++ subject/owncloud/rendu.md | 118 ++++++++++++++++++++++++++++++++ subject/owncloud/subject.md | 6 ++ 5 files changed, 183 insertions(+) create mode 100644 subject/owncloud/Makefile create mode 100644 subject/owncloud/end.md create mode 100644 subject/owncloud/ex-owncloud.md create mode 100644 subject/owncloud/rendu.md create mode 100644 subject/owncloud/subject.md diff --git a/subject/owncloud/Makefile b/subject/owncloud/Makefile new file mode 100644 index 0000000..955fbfa --- /dev/null +++ b/subject/owncloud/Makefile @@ -0,0 +1,12 @@ +include ../../tutorial/pandoc-opts.mk + +SOURCES = subject.md ex-owncloud.md rendu.md end.md + + +all: subject.pdf + +subject.pdf: ${SOURCES} + pandoc ${PANDOCOPTS} -o $@ $+ + +clean:: + rm subject.pdf diff --git a/subject/owncloud/end.md b/subject/owncloud/end.md new file mode 100644 index 0000000..9dc41f2 --- /dev/null +++ b/subject/owncloud/end.md @@ -0,0 +1 @@ +Bon courage ! diff --git a/subject/owncloud/ex-owncloud.md b/subject/owncloud/ex-owncloud.md new file mode 100644 index 0000000..db54f1b --- /dev/null +++ b/subject/owncloud/ex-owncloud.md @@ -0,0 +1,46 @@ +Projet +====== + +Pour mettre en pratiques toutes les notions que l'on a vu jusque là, écrivez un +script `mycloud-run.sh` pour automatiser le lancement de votre instance +personnelle de [`nextcloud`](https://hub.docker.com/_/nextcloud/) ou +d'[`owncloud`](https://hub.docker.com/r/owncloud/server/). Une attention +particulière devra être apportée à la manière dont vous gérerez le rappel du +script pour éventuellement relancer un conteneur qui se serait arrêté +(évidemment sans perdre les données). + +À la fin de son exécution, le script affichera un lien utilisable sur l'hôte +pour se rendre sur la page de connexion. Une autre machine de votre réseau +local devrait également pouvoir accéder à la plate-forme, simplement en +renseignant l'IP de votre machine et en ajoutant éventuellement des règles de +pare-feu (mais cette dernière partie n'est pas demandée, gardez simplement en +tête que cela doit pouvoir être fait manuellement au cas par cas : sur une +machine sans pare-feu configurée, cela ne demande pas d'étape supplémentaire). + +Votre script devra se limiter aux notions vues durant cette partie du TP +(ie. sans utiliser `docker-compose` ou `docker stack` que l'on verra dans la +seconde partie). Il pourra cependant faire usage des commandes `docker OBJECT +inspect` pour ne pas avoir à faire d'analyse syntaxique sur les retours des +commandes lisibles par les humains. + +Cette instance devra utiliser une base de données MySQL (lancée par vos soins +dans un autre conteneur) et contenir ses données dans un ou plusieurs volumes +(afin qu'elles persistent à une mise à jour des conteneurs par exemple). + +L'exécution doit être la plus sécurisée possible (pas de port MySQL exposé sur +l'hôte par exemple, etc.) et la plus respectueuse des bonnes pratiques que l'on +a pu voir durant ce premier cours. + + +## Exemple d'exécution + +
+```bash +42sh$ ./mycloud-run.sh +http://localhost:12345/ +42sh$ #docker kill db +42sh$ ./mycloud-run.sh # le script relancera une base de données, + # sans avoir perdu les données +http://localhost:12345/ +``` +
diff --git a/subject/owncloud/rendu.md b/subject/owncloud/rendu.md new file mode 100644 index 0000000..5ba4bd7 --- /dev/null +++ b/subject/owncloud/rendu.md @@ -0,0 +1,118 @@ +Rendu +===== + +Modalités de rendu +------------------ + +En tant que personnes sensibilisées à la sécurité des échanges électroniques, +vous devrez m'envoyer vos rendus signés avec votre clef PGP. + +Un service automatique s'occupe de réceptionner vos rendus, de faire des +vérifications élémentaires et de vous envoyer un accusé de réception (ou de +rejet). + +Ce service écoute sur l'adresse , c'est donc à cette adresse +et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu +envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne +sera pas pris en compte. + +Par ailleurs, n'oubliez pas de répondre à +[l'évaluation du cours](https://www.epitaf.fr/moodle/mod/quiz/view.php?id=213). + + +Tarball +------- + +Tous les fichiers identifiés comme étant à rendre pour ce TP sont à +placer dans une tarball (pas d'archive ZIP, RAR, ...). + +Voici une arborescence type (vous pourriez avoir des fichiers supplémentaires, +cela dépendra de votre avancée dans le projet) : + +
+``` +login_x-TP1/ +login_x-TP1/mycloud-run.sh +login_x-TP1/... +``` +
+ + +## Signature du rendu + +Deux méthodes sont utilisables pour signer votre rendu : + +* signature du courriel ; +* signature de la tarball. + +Dans les deux cas, si vous n'en avez pas déjà une, vous devrez créer une clef +PGP à **votre nom et prénom**. + +Pour valider la signature, il est nécessaire d'avoir reçu la clef publique +**séparément**. Vous avez le choix de l'uploader sur un serveur de clefs, soit +de me fournir votre clef en main propre, soit l'envoyer dans un courriel +distinct. + +### Signature du courriel + +[Enigmail](https://enigmail.net) est une extension très bien réputée pour +signer ses mails depuis Thunderbird. + +Utilisez le service automatique pour savoir si votre +courriel est correctement signé et que je suis en mesure de vérifier la +signature. + + +### Astuces + +#### No public key + +Si vous recevez un rapport avec l'erreur suivante : + +
+``` +[FAIL] Bad signature. Here is the gnupg output: + +gpg: Signature made Tue Jan 01 16:42:23 2014 CET +gpg: using RSA key 842807A84573CC96 +gpg: requesting key E2CCD99DD37BD32E from hkp server keys.openpgp.org +gpg: Can't check signature: No public key +``` +
+ +C'est que votre clef publique n'est pas dans mon trousseau et que les +méthodes de récupération automatique n'ont pas permis de la +trouver. Uploadez votre clef sur [un serveur de +clefs](https://keys.openpgp.org/) ou envoyez un courriel au service +avec votre clef publique en pièce-jointe, avant de retenter votre +rendu. + + +#### Not explicit username + +Si vous recevez un rapport avec l'erreur suivante : + +
+``` +[FAIL] The username of your key is not explicit, I can't find you. +``` +
+ +Votre clef ne contient sans doute pas vos noms et prénoms ou l'adresse +électronique associée à la clef n'est pas celle que j'ai dans ma base de +données. + + +#### I've decided to skip your e-mail + +Si vous recevez un rapport concluant ainsi : + +
+``` +After analyzing your e-mail, I've decided to SKIP it. +``` +
+ +Cela signifie que la lecture de votre courriel qui a été préférée n'est pas +celle d'un rendu. Vérifiez que vous n'envoyez pas votre clef publique avec +votre rendu. diff --git a/subject/owncloud/subject.md b/subject/owncloud/subject.md new file mode 100644 index 0000000..ff59a09 --- /dev/null +++ b/subject/owncloud/subject.md @@ -0,0 +1,6 @@ +--- +title: Virtualisation légère -- Projet n^o^ 1 +author: Pierre-Olivier *nemunaire* Mercier +institute: EPITA +date: EPITA -- SRS 2020 +...