tuto2: Update for 2023 students

This commit is contained in:
nemunaire 2022-03-08 21:17:08 +01:00
parent 7925fd8a65
commit 0ebf69f4cd
9 changed files with 200 additions and 76 deletions

View File

@ -39,18 +39,25 @@ ne risquez pas de vous retrouver avec une usine à gaz impossible à retirer.
Résultat attendu
----------------
À la fin de cette partie, vous devez être en mesure de pouvoir déployer une
nouvelle machine, identique à celle que vous venez de configurer, à partir
d'une ISO et d'un nouveau disque.
À la fin de cette partie, vous devez être en mesure de déployer une nouvelle
machine, identique à celle que vous venez de configurer, à partir d'une ISO et
d'un nouveau disque.
Le fichier à rendre est un playbook `login-x-TP2/basis.yml`, accompagné de
Le fichier à rendre est un *playbook* `login-x-TP2/basis.yml`, accompagné de
toutes ses dépendances : celui-ci doit faire les configurations basiques du
système et des utilisateurs.
Un deuxième playbook est à rendre : `login-x-TP2/vitrine.yml`, celui-ci doit
permettre de déployer (en parallèle de tous les autres), une page vitrine
typique d'une entreprise (cf. la 4e question de cours ;)). Cette page doit être
accessible depuis votre domaine <https://login-x.adlin2022.p0m.fr/>.
permettre de déployer, une page vitrine typique d'une entreprise (cf. la 4e
question de cours ;)). Cette page doit être accessible depuis votre domaine
<https://login-x.adlin2023.example.tld/>.\
::::: {.warning}
Il est attendu que la vitrine soit générée avec [Hugo](https://gohugo.io/), sur
la machine exécutant Ansible (et non pas sur la machine où elle sera hébergée).
:::::
Mon première commande
@ -73,11 +80,15 @@ all:
```
</div>
::::: {.more}
Vous pouvez lancer une autre machine virtuelle à ce stade et ajouter son IP sur
une nouvelle ligne du fichier `hosts`.
:::::
Plus tard, c'est dans ce fichier que vous pourrez créer des groupes de machines
(par exemple pour regrouper les serveurs web, les bases de données, etc.) ou
(pour, par exemple, regrouper les serveurs web, les bases de données, etc.) ou
donner des caractéristiques spécifiques à vos machines.
@ -97,12 +108,15 @@ Lancez ensuite la commande suivante :
Vous devriez avoir un retour similaire à celui-ci, indiquant simplement que la
connexion a bien été effectuée et que le nécessaire est bien installé sur la
machine distance.
machine distance.\
::::: {.question}
Si votre clef SSH n'a pas été récupérée depuis le CRI, vous pouvez rajouter
l'option `--ask-pass`, afin de pouvoir indiquer le mot de passe de connexion au
compte, sinon vous obtiendrez une erreur plutôt incrompréhensible.
compte, sinon vous obtiendrez une erreur plutôt incompréhensible.
:::::
### Confort
@ -145,7 +159,7 @@ exister. À l'application de cette nouvelle recette, si un tel utilisateur est
trouvé, il sera donc supprimé.
### Collecte du lundi
### Collecte ~~du lundi~~ d'informations
Parmi les modules de base, le module `setup` permet de récupérer un grand
nombre de caractéristiques de la machine distance, voyez plutôt :
@ -156,7 +170,7 @@ ansible -i hosts all -m setup
```
</div>
Les informations récupérées (quelque soit le module), sont ensuite accessible
Les informations récupérées (quelque soit le module), sont ensuite accessibles
dans des variables afin de permettre de compléter des modèles ou pour faire de
l'exécution conditionnelle d'état (par exemple on pourra utiliser la variable
`ansible_facts.ansible_distribution` pour distinguer les gestionnaires de
@ -238,10 +252,10 @@ Voici à quoi ressemblerait votre premier playbook créant l'utilisateur
</div>
La création de l'utilisateur se fait à l'aide du module
[`user`](http://docs.ansible.com/ansible/latest/user_module.html).
[`user`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html).
À vous maintenant, à l'aide [des modules à votre
disposition](http://docs.ansible.com/ansible/latest/modules_by_category.html)
À vous maintenant, à l'aide [des collections de modules à votre
disposition](https://docs.ansible.com/ansible/latest/collections/index.html)
de copier vos fichiers de configuration à leur place et avec les bons droits
(`authorized_keys`, `.bashrc`, ...). Installez également les paquets que vous
aviez installé à la main (client DHCP, `htop`, ...).
@ -281,13 +295,14 @@ Il est attendu que le nom de la notification corresponde à l'attribut `name`
d'un handler.
Voir [la
documentation](http://docs.ansible.com/ansible/latest/playbooks_intro.html#handlers-running-operations-on-change)
documentation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_handlers.html)
pour davantage de détails et d'exemples.
La configuration de votre serveur SSH laisse à désirer. Corriger les problèmes
énoncés par ces deux articles :
- <https://linuxhandbook.com/ssh-hardening-tips/> ;
- <https://www.ssi.gouv.fr/guide/recommandations-pour-un-usage-securise-dopenssh/> ;
- <https://stribika.github.io/2015/01/04/secure-secure-shell.html>.
Mettez en place un *handler* pour relancer votre serveur SSH en cas de

View File

@ -9,10 +9,10 @@ gestionnaire de configuration.
Après cet échauffement, vous devriez être prêt à créer un *playbook*
dédié à l'installation d'un serveur [Matrix](https://matrix.org/) :
![Element](riot.png "Element : un des clients utilisable pour joindre son serveur Matrix")
![Element : un des clients utilisable pour joindre son serveur Matrix](riot.png)
Vous connaissez et utilisez sans doute Slack, un service de messagerie
Vous connaissez et utilisez sans doute Discord ou Slack, un service de messagerie
instantannée qui a supplanté IRC, Jabber, ... Il vient avec le gros
inconvénient qu'il est centralisé, qu'il ne permet pas de faire discuter des
personnes qui, bien qu'utilisant le même service, ne sont pas dans le même
@ -24,9 +24,25 @@ une solution de messagerie décentralisée et permet de réaliser du chiffrement
de bout-en-bout.
Vous trouverez la documentation d'installation précise et détaillée à :
<https://github.com/matrix-org/synapse/blob/master/README.rst> (attention,
pensez à vous fixer une version, n'utilisez pas la branche master qui risque de
ne plus fonctionner au moment du moulinétage de votre rendu).
<https://matrix-org.github.io/synapse/latest/>.\
::::: {.warning}
Vous avez 5 solutions pour réaliser cette partie, mais 2 sont à proscrire. Vous pouvez :
- utiliser [le playbook officiel](https://github.com/spantaleev/matrix-docker-ansible-deploy) ;
- installer [les paquets officiels de la dernière version
stable](https://matrix-org.github.io/synapse/latest/setup/installation.html#debianubuntu)
et réaliser le playbook vous-même (quitte à recopier des bouts du playbook
officiel) ;
- installer [les modules Python depuis PyPI](https://matrix-org.github.io/synapse/latest/setup/installation.html#installing-as-a-python-module-from-pypi).
Vous ne pouvez pas :
- déployer le conteneur Docker ;
- déployer à partir des sources.
:::::
Vous devrez attacher une importance tout particulière à la sécurité de
la solution que vous déployez : configurations durcies, utilisateur
@ -34,9 +50,17 @@ dédié lorsque c'est possible (pas de `root` !), droits d'accès et
permissions des répertoires, etc.
Profitez des [modules de base de
données](https://docs.ansible.com/ansible/2.9/modules/list_of_database_modules.html)
données](https://docs.ansible.com/ansible/latest/collections/community/postgresql/index.html)
pour l'initialiser correctement. Et bien entendu de l'ensemble des
modules décrits dans la documentation standard !
modules décrits dans la documentation standard !\
::::: {.warning}
L'utilisation des modules
[`ansible.builtin.command`](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/command_module.html#ansible-collections-ansible-builtin-command-module)
et assimilés est interdite en toute circonstance.
:::::
## Configurations
@ -44,9 +68,28 @@ modules décrits dans la documentation standard !
Tous les éléments de configuration (mot de passes de connexion à la
base de données, chemins, etc.) sont à déclarer comme variables dans
le fichier `vars/matrix-config.yml`, que vous prendrez soin d'importer
dans votre *Playbook*.
dans votre *Playbook*.\
Vous devrez générer un certificat TLS afin de joindre les autres serveurs.
::::: {.warning}
Vous devez utiliser `ansible-vault` pour stocker de manière sûre les données
sensibles tels que les mots de passes. Vous pouvez ajouter un second fichier de
variables pour cela, si cela vous paraît plus opportun.
:::::
Vous devrez générer un certificat TLS afin de joindre les autres serveurs.\
::::: {.warning}
À aucun moment la clef privée de votre certificat ne doit faire parti de votre
dépôt. Dans certaines circonstances, il peut être pratique d'avoir cette clef
dans un *vault*, mais ici ce que l'on attend c'est que le certificat soit
généré s'il n'existe pas déjà ou qu'il a expiré. Éventuellement, une solution
automatisant son renouvellement automatique serait appréciable (mais non
obligatoire).
:::::
## Backup
@ -60,7 +103,7 @@ de données. Le *dump* obtenu est à placer dans `/var/backups/`.
Vous n'êtes pas tenu d'installer un client. Pour vos tests, vous pouvez
utiliser <https://app.element.io/>, en changeant l'adresse du serveur Matrix pour
votre sous-domaine dédié à Matrix (normalement
<https://matrix.login-x.srs.p0m.fr/>). (Conservez le serveur d'identité à
<https://matrix.login-x.srs.example.tld/>). (Conservez le serveur d'identité à
<https://vector.im>).
@ -71,4 +114,4 @@ Pour valider l'installation de votre serveur, rejoignez le canal
`#adlin:nemunai.re` et envoyez un message « Ping ! » pour signaler votre
présence.
Vous devriez également pouvoir tester entre-vous.
Vous devriez également pouvoir tester en communiquant entre-vous.

View File

@ -4,15 +4,19 @@ Maatma
======
Maatma sera votre bureau d'enregistrement (*registrar*) et votre fournisseur
d'accès à une plage d'IPv6 routable sur Internet.
d'accès à une plage d'IPv6 routable sur Internet.\
**Avertissement :** Ce service vous est proposé à titre éducatif. Vous savez
::::: {.warning}
Ce service vous est proposé à titre éducatif. Vous savez
combien Internet peut être un milieu hostile, il est donc de votre devoir de ne
pas tenter le diable et de prendre toutes les mesures qui s'imposent pour vous
protéger en conséquence. D'autre part, il va de soit que ce service vous est
fourni en échange de votre consentement à ne pas l'utiliser d'une manière
condamnable (mais libre à vous de tester la plate-forme en elle-même).
:::::
L'interface de Maatma est accessible à cette adresse :
<https://adlin.nemunai.re/maatma/>. Utilisez votre identifiant CRI pour vous y
connecter.
@ -57,8 +61,8 @@ Votre passerelle répond aux `ping`, une fois la connexion établie, vous devrie
pouvoir `ping 2a01:e0a:2b:2252::1`.
Domaine de test
---------------
IPs et domaine de test
----------------------
En plus de vous fournir une IPv6, vous disposerez d'un nom de domaine ainsi
qu'une délégation sur un sous-domaine.

View File

@ -13,10 +13,10 @@ Voici les grandes étapes :
* choisir un serveur DNS autoritaire (BIND, NSD, Knot, PowerDNS, djbDNS, ...) ;
* éditer la zone de votre domaine ;
* configurer ce serveur pour qu'il réponde effectivement aux requêtes de votre zone ;
* tester avec `dig @votreIPv4locale ANY login-x.srs.p0m.fr` que votre serveur réagit bien correctement ;
* publier sur Maatma le nom de domaine où votre serveur de nom est joignable (généralement `ns.login-x.srs.p0m.fr`), il s'agit d'un enregistrement `NS` ;
* tester avec `dig @votreIPv4locale ANY login-x.srs.example.tld` que votre serveur réagit bien correctement ;
* publier sur Maatma le nom de domaine où votre serveur de nom est joignable (généralement `ns.login-x.srs.example.tld`), il s'agit d'un enregistrement `NS` ;
* publier également sa *GLUE*, afin de résoudre le problème de poule et d'œuf (le domaine de votre serveur de noms étant dans la zone qu'il est sensé servir, le bureau d'enregistrement enverra également l'IP correspondant au domaine) ;
* tester avec `dig @9.9.9.9 AAAA login-x.srs.p0m.fr` que votre serveur est bien joignable.
* tester avec `dig @9.9.9.9 AAAA login-x.srs.example.tld` que votre serveur est bien joignable.
Un ouvrage de référence, qui répondra à l'intégralité de vos questions et manières d'utiliser votre serveur DNS se trouve à <http://www.zytrax.com/books/dns/>.
@ -26,14 +26,14 @@ Un ouvrage de référence, qui répondra à l'intégralité de vos questions et
Pourquoi une telle complexité apparente pour déléguer une zone DNS ?
Vous êtes sur le point d'obtenir le contrôle total d'un domaine :
`login-x.srs.p0m.fr.`. Cela signifie que vous allez pouvoir décider,
`login-x.srs.example.tld.`. Cela signifie que vous allez pouvoir décider,
depuis votre propre serveur de noms (respectueux des
[standards](https://www.ietf.org/rfc/rfc1034.txt)), comment vous allez
répondre aux serveurs résolveurs des utilisateurs.
Le protocole DNS étant décentralisé, mais basé sur une arborescence
unique, il est nécessaire que les serveurs faisant autorité sur une
zone (`fr.`, `srs.p0m.fr.`, ...) fournissent toutes les informations
zone (`fr.`, `srs.example.tld.`, ...) fournissent toutes les informations
nécessaire pour que cette délégation fonctionne.
À cet instant, vous connaissez l'adresse IPv6 routable sur Internet de votre
@ -44,7 +44,7 @@ autorité.
Concrètement, vous allez devoir vous attribuer un sous-domaine pour votre
serveur de noms, car c'est grâce à un enregistrement `NS` figurant dans la zone
parente (pour vous, la zone parente c'est `srs.p0m.fr`) que la délégation va se
parente (pour vous, la zone parente c'est `srs.example.tld`) que la délégation va se
faire.
Dans le cas basique, on va utiliser les serveurs de quelqu'un d'autre (d'un
@ -52,6 +52,7 @@ hébergement spécialisé par exemple, ou celui de son bureau d'enregistrement
s'ils proposent ce service). Auquel cas, on fera figurer ce genre
d'informations :
<div lang="en-US">
```
42sh$ dig @e.ext.nic.fr. NS epita.fr.
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 17590
@ -69,6 +70,7 @@ epita.fr. 172800 IN NS banjo.ionis-it.com.
;; Time 2042-12-04 13:42:23 CET
;; From 2a00:d78:0:102:193:176:144:22@53(UDP) in 13.9 ms
```
</div>
La commande est envoyée spécifiquement aux serveurs de l'AFNIC, faisant
autorité pour la zone `fr.`. Les serveurs de l'AFNIC nous indiquent en retour,
@ -79,6 +81,7 @@ Mais dans votre cas, vous hébergez vous-même votre propre serveur au sein de
votre zone, vous n'avez pas d'autre domaine à votre disposition. C'est
également le cas de Wikipédia :
<div lang="en-US">
```
42sh$ dig @d0.org.afilias-nst.org. NS wikipedia.org.
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 47396
@ -94,6 +97,7 @@ wikipedia.org. 86400 IN NS ns1.wikimedia.org.
[...]
```
</div>
On voit ici que pour résoudre les sous-domaines de `wikipedia.org.`, il faut
demander à `nsX.wikimedia.org.`. Mais comment obtenir alors, l'adresse de ces
@ -103,6 +107,7 @@ C'est là que les *GLUE records* entrent en jeu !
J'ai volontairement tronqué la sortie de la commande précédente, en entier, c'est :
<div lang="en-US">
```
42sh$ dig @d0.org.afilias-nst.org. NS wikipedia.org.
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 47396
@ -125,6 +130,7 @@ ns2.wikimedia.org. 86400 IN A 91.198.174.239
;; Time 2042-12-04 13:42:23 CET
;; From 2001:500:f::1@53(UDP) in 15.2 ms
```
</div>
Afin d'éviter de tourner en rond sans jamais avoir réponse à notre question, en
même temps que de nous répondre sur qui sont les serveurs faisant autorité pour

View File

@ -29,10 +29,6 @@ login_x-TP2/basis.yml
login_x-TP2/vitrine.yml
login_x-TP2/name-server.yml
login_x-TP2/matrix.yml
login_x-TP2/vars/matrix-config.yml
login_x-TP2/pgdump.sh
login_x-TP2/homeserver.yaml
login_x-TP2/matrix.nginx.conf
...
```
</div>
@ -49,17 +45,20 @@ 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 la téléverser sur un serveur de clefs,
soit de me fournir votre clef en main propre, soit de l'envoyer dans un
courriel **distinct**.
**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 de 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 courriels depuis Thunderbird.
Une version récente de [Thunderbird](https://www.thunderbird.net/fr/) vous
permettra d'envoyer des courriels signés. Si vous n'avez qu'une version
ancienne, l'extension [Enigmail](https://enigmail.net) est très bien réputée
pour signer ses mails depuis Thunderbird. Bien entendu, de nombreuses autres
solutions sont disponibles.
Utilisez le service automatique <signcheck@nemunai.re> pour savoir si votre
message est correctement signé et que je suis en mesure de vérifier la
courriel est correctement signé et que je suis en mesure de vérifier la
signature.
@ -75,20 +74,18 @@ Si vous recevez un rapport avec l'erreur suivante :
gpg: Signature made Tue Jan 01 16:42:23 2014 CET
gpg: using RSA key 842807A84573CC96
gpg: requesting key E2CCD99DD37BD32E from hkp server pool.sks-keyservers.net
gpg: requesting key E2CCD99DD37BD32E from hkp server keys.openpgp.org
gpg: Can't check signature: No public key
```
</div>
C'est que votre clef publique n'est pas dans mon trousseau et que les méthodes
de récupération automatique[^methods] n'ont pas permis de la trouver. Uploadez
votre clef sur un serveur de clefs (et attendez quelques minutes sa
propagation) ou envoyez un courriel au service signcheck avec votre clef
publique en pièce-jointe, avant de retenter votre rendu.
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.
[^methods]: Le service va rechercher : un enregistrement PKA, un enregistrement
DANE OPENPGPKEY, un Web Key Directory, un enregistrement DNS CERT ou sur un
keyserver (soit keys.openpgp.org, soit pool.sks-keyservers.net).
#### Not explicit username
@ -103,3 +100,18 @@ Si vous recevez un rapport avec l'erreur suivante :
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 :
<div lang="en-US">
```
After analyzing your e-mail, I've decided to SKIP it.
```
</div>
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.

View File

@ -13,7 +13,7 @@ possédant les caractéristiques suivantes :
Le choix de la technologie de virtualisation est laissé à votre
appréciation. L'ISO est réputée supportée par *Hyper-V* (Windows), *qemu*/*KVM*
(macOS, Linux, Windows) et VMware (macOS, Windows).
(macOS, Linux, Windows) et VMware (macOS, Windows).\
L'hyperviseur qui vous laissera le plus de liberté (et avec lequel vous pourrez
apprendre le plus de choses !) est sans doute *qemu*, sous Linux ; vous pouvez
@ -42,17 +42,32 @@ de vous permettre de commencer à travailler sans plus attendre !
Gérer le réseau de son hyperviseur
----------------------------------
::::: {.more}
Cette section est là pour vous donner un aperçu du fonctionnement de votre
installation, pour que plus jamais, vous ne puissiez vous demander «On la met
en NAT ou en Bridge la VM? », sans vraiment savoir de quoi vous parler.
On vous encourage évidemment à comprendre les éléments présentés et à tester
par vous-même avec `qemu`, mais tous les hyperviseurs fonctionnent de la même
manière et vous pouvez donc tester avec votre hyperviseur habituel.
:::::
Rares sont les machines qui, aujourd'hui, ne sont pas connectées à Internet (ou
au moins à un réseau local, pour permettre d'y apporter les mises à jour).
La première chose qu'il va falloir faire avec notre hyperviseur, est donc de
lui indiquer comment notre machine virtuelle accédera au réseau.
lui indiquer comment notre machine virtuelle accédera au réseau.\
**Note :** Nous ne présenterons ici que les méthodes qui permettent d'obtenir un
::::: {.question}
Nous ne présenterons ici que les méthodes qui permettent d'obtenir un
réseau ayant toutes les caractéristiques d'utilisation et de contrôle que l'on
pourrait en attendre. Nous ne verrons donc pas le mode `user` de *qemu* par
exemple.
:::::
### Interface physique
@ -224,6 +239,15 @@ où `wlp3s0` correspond à l'interface de notre route par défaut.
Démarrer la machine virtuelle
-----------------------------
::::: {.more}
Comme pour la section précédentes, les exemples sont donnés pour `qemu`. Ils
sont à adapter en fonction de votre hyperviseur. Avec `qemu`, les exemples sont
à combiner avec la ligne de commande établie précédemment, il faut accumuler
les arguments avant de lancer la machine virtuelle.
:::::
### Ajouter un disque vierge
Pour réaliser ce TP, nous aurons besoin d'un disque vierge :
@ -294,8 +318,8 @@ pouvoir émettre un paquet sur le réseau.
<div lang="en-US">
```
42sh$ ip link
1: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
^^^^^^^^^^
1: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT
^^^^^^^^^^
```
</div>

View File

@ -3,7 +3,7 @@ title: Administration Linux avancée -- TP n^o^ 2
subtitle: "Maatma : l'hébergeur DIY"
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA
date: Jeudi 4 mars 2021
date: Mercredi 9 mars 2022
abstract: |
Durant ce deuxième TP, nous allons apprendre à déployer des services sur un
serveur, de manière industrielle !
@ -11,10 +11,10 @@ abstract: |
\vspace{1em}
La partie 5 de ce TP est un projet à rendre à <adlin@nemunai.re> au plus tard
le **jeudi 18 mars 2021 à 12 h 42**. Consultez la dernière
le **jeudi31mars 2021 à 23h42**. Consultez la dernière
section de chaque partie pour plus d'information sur les éléments à
rendre. Et n'oubliez pas de répondre aux [questions de
cours](https://adlin.nemunai.re/quiz/9).
cours](https://adlin.nemunai.re/quiz/20).
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à

View File

@ -16,28 +16,40 @@ Faites le tour des configurations afin de vous assurer qu'elles sont
suffisamment durcies. Pensez à noter vos changements, vous devrez les
reporter dans un fichiers au chapitre suivant !
À ce stade, vous devez suivre les recommandations de l'ANSSI que vous
jugez adaptées à votre déploiement :
<https://www.ssi.gouv.fr/guide/recommandations-de-securite-relatives-a-un-systeme-gnulinux/>
Ma première vitrine
-------------------
Sur le domaine `login-x.adlin2022.p0m.fr`, déployez une vitrine d'entreprise
basique (pas besoin d'un Wordpress, un simple lot de pages HTML fera l'affaire).
Sur le domaine `login-x.adlin2023.example.tld`, déployez une vitrine
d'entreprise basique. Vous n'allez pas déployer tout un Wordpress, mais un
simple lot de pages HTML ... générées avec Hugo.
Vous aurez pour cela besoin d'un serveur web, dont le choix est laissé à votre
discrétion.
Vous pouvez utiliser les services de [Let's Encrypt](https://letsencrypt.org/)
pour obtenir un certificat TLS. Compte tenu des limitations imposées, vous ne
pourrez pas tous en créer un aujourd'hui, mais n'hésitez pas à retenter un peu
plus tard dans la semaine. Vous pouvez également obtenir vos certificats depuis
de nombreux autres services gratuits similaire :
[ZeroSSL](https://zerossl.com/), [buypass](https://www.buypass.com/), ...
pour obtenir un certificat TLS.\
::::: {.warning}
Compte tenu [des limitations
imposées](https://letsencrypt.org/docs/rate-limits/), vous ne pourrez pas tous
en créer un aujourd'hui, mais n'hésitez pas à retenter un peu plus tard dans la
semaine. Vous pouvez également obtenir vos certificats depuis de nombreux
autres services gratuits similaire : [ZeroSSL](https://zerossl.com/),
[buypass](https://www.buypass.com/), ...\
D'ailleurs, si vous disposez de votre propre nom de domaine et que vous
souhaitez l'utiliser pour ce TP, vous pouvez suivre les instructions dans
l'interface de Maatma pour pouvoir l'utiliser.
:::::
Une fois votre serveur web configuré et votre vitrine installée, accédez à
Une fois votre serveur web configuré et votre vitrine déployée, accédez à
votre domaine depuis votre poste pour constater la bonne marche de
l'installation.

View File

@ -7,7 +7,7 @@ Accéder à la machine virtuelle
------------------------------
Une fois la machine virtuelle démarrée, vous pouvez vous y connecter en `root`
avec le mot de passe `adlin2022`.
avec le mot de passe `adlin2023`.
Vous pouvez également démarrer en mode *single user*, mais comme votre disque
n'est sans doute pas encore utilisable à ce stade, vous ne pourrez pas changer
@ -23,13 +23,17 @@ Se mettre à l'aise
------------------
Un serveur SSH est déjà installé et configuré pour vous permettre d'avoir une
interface plus agréable que celle de votre hyperviseur.
interface plus agréable que celle de votre hyperviseur.\
**Attention :** si votre machine virtuelle est directement connectée au réseau
::::: {.warning}
Si votre machine virtuelle est directement connectée au réseau
local (sans passer par un NAT), n'oubliez pas de modifier le mot de passe
`root` pour éviter que n'importe qui sur le réseau local (et ayant accès à ce
TP), ne rentre sur votre machine.
:::::
Afin de vous faciliter la configuration de la machine par la suite, vos clefs
SSH publiques, [déclarées au
CRI](https://cri.epita.fr/users/nemunaire/ssh-keys/), sont automatiquement
@ -81,7 +85,9 @@ Après avoir installé le paquet, vous devrez ajouter les utilisateurs autorisé
à se servir de `sudo` dans le groupe `sudo` ou `wheel` (en fonction des
distributions). Vous pouvez également définir des conditions plus précise en
éditant le fichier `/etc/sudoers` (utilisez impérativement `visudo(1)` pour
éditer ce fichier).
éditer ce fichier).\
::::: {.code}
**Super astuce !** votre terminal rit encore de vous, affichant `Permission
Denied` car vous avez oublié de préfixer votre commande par `sudo` ? essayez :
@ -92,6 +98,8 @@ sudo !!
```
</div>
:::::
### Top confort dans son coquillage
Un shell brut de configuration, c'est souvent source d'erreur ! N'hésitez pas à