Update tuto2 for 2021

This commit is contained in:
nemunaire 2020-03-27 13:13:10 +01:00
commit 1650c7df13
8 changed files with 52 additions and 59 deletions

View file

@ -1,11 +1,9 @@
kernel: kernel:
image: linuxkit/kernel:4.9.165 image: linuxkit/kernel:4.19.104
# cmdline: "console=ttyS0 console=tty0"
# cmdline: "console=tty0 console=ttyS0 root=/dev/sda1 root=/dev/sr0 adlin.net=easy"
cmdline: "console=tty0 console=ttyS0 root=/dev/sda1 root=/dev/sr0 adlin.format=/dev/sda quiet" cmdline: "console=tty0 console=ttyS0 root=/dev/sda1 root=/dev/sr0 adlin.format=/dev/sda quiet"
init: init:
- nemunaire/adlin-tuto2:017a5c0b4eb825e9f7f979e7261fa17573ee3c58 - nemunaire/adlin-tuto2:41e341472a4a1b27dcf61c7d364f1f0a5f76fbe7
files: files:
- path: etc/hostname - path: etc/hostname
@ -50,21 +48,20 @@ files:
[ "$value" != "" ] && echo "$value" [ "$value" != "" ] && echo "$value"
} }
# Hide us!
/bin/rm -f /init /linuxrc
mount -n -t devtmpfs devtmpfs /dev mount -n -t devtmpfs devtmpfs /dev
mount -n -t proc proc /proc mount -n -t proc proc /proc
#mount -n -t tmpfs run /run #mount -n -t tmpfs run /run
#mount -m -t sysfs sys /sys #mount -m -t sysfs sys /sys
INITDEBUG=$(cmdline adlin.debuginit)
[ -n "${INITDEBUG}" ] && /bin/busybox cttyhack ${INITDEBUG}
INITP=$(cmdline init) INITP=$(cmdline init)
[ -z "$INITP" ] && INITP=/lib/systemd/systemd [ -z "$INITP" ] && INITP=/lib/systemd/systemd
WGTOKEN=$(cmdline adlin.token) WGTOKEN=$(cmdline adlin.token)
ROOTFS=$(cmdline root) ROOTFS=$(cmdline root)
echo "rootfs=$ROOTFS"
[ -z "$ROOTFS" ] && { echo "No root= provided, continuing on initramfs only."; exec "${INITP}"; } [ -z "$ROOTFS" ] && { echo "No root= provided, continuing on initramfs only."; exec "${INITP}"; }
[ "$ROOTFS" = "/dev/sr0" ] && { echo "No root= provided, continuing on initramfs only."; exec "${INITP}"; } [ "$ROOTFS" = "/dev/sr0" ] && { echo "No root= provided, continuing on initramfs only."; exec "${INITP}"; }
[ -b "$ROOTFS" -a -z "$(cmdline adlin.alwaysformat)" ] || { [ -b "$ROOTFS" -a -z "$(cmdline adlin.alwaysformat)" ] || {
@ -93,8 +90,6 @@ files:
mkdir -p ${ovr_rwdata}/work mkdir -p ${ovr_rwdata}/work
/bin/mount -n -t overlay -o upperdir=${ovr_rwdata}/data,workdir=${ovr_rwdata}/work,lowerdir=${ovr_robase} overlay ${ovr_combined} || { echo "Unable to create overlayfs."; exit 3; } /bin/mount -n -t overlay -o upperdir=${ovr_rwdata}/data,workdir=${ovr_rwdata}/work,lowerdir=${ovr_robase} overlay ${ovr_combined} || { echo "Unable to create overlayfs."; exit 3; }
/bin/umount -n /proc
/bin/mkdir -p ${ovr_combined}/overlay/rwdata /bin/mkdir -p ${ovr_combined}/overlay/rwdata
/bin/mount -n --move ${ovr_rwdata} ${ovr_combined}/overlay/rwdata /bin/mount -n --move ${ovr_rwdata} ${ovr_combined}/overlay/rwdata
/bin/mkdir -p ${ovr_combined}/overlay/robase /bin/mkdir -p ${ovr_combined}/overlay/robase
@ -104,6 +99,7 @@ files:
cd ${ovr_combined} cd ${ovr_combined}
mount --move /dev dev mount --move /dev dev
mount --move /proc proc
mount --move . / mount --move . /
/bin/umount -n /overlay /bin/umount -n /overlay
@ -116,8 +112,8 @@ files:
echo -n "You didn't define your token to connect the network. Please copy it here now: " echo -n "You didn't define your token to connect the network. Please copy it here now: "
read WGTOKEN read WGTOKEN
} }
/sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0
/bin/ip link set up dev eth0 || { /sbin/modprobe e1000; /bin/ip link set up dev eth0; } /bin/ip link set up dev eth0 || { /sbin/modprobe e1000; /bin/ip link set up dev eth0; }
/sbin/sysctl -w net.ipv6.conf.eth0.autoconf=0
/bin/busybox udhcpc -n -q /bin/busybox udhcpc -n -q
[ -f "etc/wireguard/adlin.conf" ] && WGPRVKEY=$(sed 's/^.*PrivateKey *= *//p;d' etc/wireguard/adlin.conf) [ -f "etc/wireguard/adlin.conf" ] && WGPRVKEY=$(sed 's/^.*PrivateKey *= *//p;d' etc/wireguard/adlin.conf)
[ -z "${WGPRVKEY}" ] && WGPRVKEY=$(/usr/bin/wg genkey) [ -z "${WGPRVKEY}" ] && WGPRVKEY=$(/usr/bin/wg genkey)
@ -192,31 +188,29 @@ files:
- path: etc/shadow - path: etc/shadow
contents: | contents: |
root:$6$B0qzwsEh$vfWGpIFUrKGrkT0PVtGhhomBwc.60IBIxjMLyG8mz.NJLFRryjqLK9sA/mzxNSaQViiHsYYrsgmcWVHblfdHg1:17968:0:99999:7::: root:$6$QNuPvO59Xk4UO3le$3P0V2ef6dHlKgO1FHsKcPPgOvL.YeCOPFqfIVTtpYn5eEn3xkgGYeM1RMCQ9l/eTc6rRc.l.WeRe1iJVznVGj/:18336:0:99999:7:::
daemon:*:17575:0:99999:7::: daemon:*:18316:0:99999:7:::
bin:*:17575:0:99999:7::: bin:*:18316:0:99999:7:::
sys:*:17575:0:99999:7::: sys:*:18316:0:99999:7:::
sync:*:17575:0:99999:7::: sync:*:18316:0:99999:7:::
games:*:17575:0:99999:7::: games:*:18316:0:99999:7:::
man:*:17575:0:99999:7::: man:*:18316:0:99999:7:::
lp:*:17575:0:99999:7::: lp:*:18316:0:99999:7:::
mail:*:17575:0:99999:7::: mail:*:18316:0:99999:7:::
news:*:17575:0:99999:7::: news:*:18316:0:99999:7:::
uucp:*:17575:0:99999:7::: uucp:*:18316:0:99999:7:::
proxy:*:17575:0:99999:7::: proxy:*:18316:0:99999:7:::
www-data:*:17575:0:99999:7::: www-data:*:18316:0:99999:7:::
backup:*:17575:0:99999:7::: backup:*:18316:0:99999:7:::
list:*:17575:0:99999:7::: list:*:18316:0:99999:7:::
irc:*:17575:0:99999:7::: irc:*:18316:0:99999:7:::
gnats:*:17575:0:99999:7::: gnats:*:18316:0:99999:7:::
nobody:*:17575:0:99999:7::: nobody:*:18316:0:99999:7:::
_apt:*:17575:0:99999:7::: _apt:*:18316:0:99999:7:::
messagebus:*:17594:0:99999:7::: systemd-timesync:*:18333:0:99999:7:::
sshd:*:17594:0:99999:7::: systemd-network:*:18333:0:99999:7:::
systemd-timesync:*:17594:0:99999:7::: systemd-resolve:*:18333:0:99999:7:::
systemd-network:*:17594:0:99999:7::: sshd:*:18333:0:99999:7:::
systemd-resolve:*:17594:0:99999:7:::
systemd-bus-proxy:*:17594:0:99999:7:::
mode: "0640" mode: "0640"
trust: trust:

View file

@ -41,14 +41,14 @@ Résultat attendu
nouvelle machine, identique à celle que vous venez de configurer, à partir nouvelle machine, identique à celle que vous venez de configurer, à partir
d'une ISO et d'un nouveau disque. 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 toutes ses dépendances : celui-ci doit faire les configurations basiques du
système et des utilisateurs. système et des utilisateurs.
Un deuxième playbook est à rendre : `login_x-TP2/vitrine.yml`, celui-ci doit 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 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 typique d'une entreprise (cf. la 4e question de cours ;)). Cette page doit être
accessible depuis votre domaine <https://login_x.adlin2020.p0m.fr/>. accessible depuis votre domaine <https://login-x.adlin2021.p0m.fr/>.
Mon première commande Mon première commande
@ -139,7 +139,7 @@ exister. À l'application de cette nouvelle recette, si un tel utilisateur est
trouvé, il sera donc supprimé. trouvé, il sera donc supprimé.
### Collecte du mercredi ### Collecte du lundi
Parmi les modules de base, le module `setup` permet de récupérer un grand 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 : nombre de caractéristiques de la machine distance, voyez plutôt :
@ -183,8 +183,8 @@ Par exemple, voici à quoi pourrait ressembler un tel recueil :
tasks: tasks:
- name: ensure postgresql is at the latest version - name: ensure postgresql is at the latest version
yum: name=postgresql state=latest yum: name=postgresql state=latest
- name: ensure that postgresql is started - name: ensure that mysql is started
service: name=postgresql state=started service: name=mysqld state=started
``` ```
</div> </div>

View file

@ -24,10 +24,9 @@ une solution de messagerie décentralisée et permet de réaliser du chiffrement
de bout-en-bout. de bout-en-bout.
Vous trouverez la documentation d'installation précise et détaillée à : Vous trouverez la documentation d'installation précise et détaillée à :
<https://github.com/matrix-org/synapse/blob/master/README.rst> (attention, une <https://github.com/matrix-org/synapse/blob/master/README.rst> (attention,
release 1.0 est prévue pour dans peu de temps, pensez à vous fixer une version, pensez à vous fixer une version, n'utilisez pas la branche master qui risque de
n'utilisez pas la branche master qui risque de ne plus fonctionner au moment du ne plus fonctionner au moment du moulinétage de votre rendu).
moulinétage de votre rendu).
Vous devrez attacher une importance tout particulière à la sécurité de Vous devrez attacher une importance tout particulière à la sécurité de
la solution que vous déployez : configurations durcies, utilisateur la solution que vous déployez : configurations durcies, utilisateur
@ -61,7 +60,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 Vous n'êtes pas tenu d'installer un client. Pour vos tests, vous pouvez
utiliser <https://riot.im/app/>, en changeant l'adresse du serveur Matrix pour utiliser <https://riot.im/app/>, en changeant l'adresse du serveur Matrix pour
votre sous-domaine dédié à Matrix (normalement votre sous-domaine dédié à Matrix (normalement
<https://matrix.login_x.srs.p0m.fr/>). (Conservez le serveur d'identité à <https://matrix.login-x.srs.p0m.fr/>). (Conservez le serveur d'identité à
<https://vector.im>). <https://vector.im>).

View file

@ -62,8 +62,8 @@ Domaine de test
En plus de vous fournir une IPv6, vous disposerez d'un nom de domaine ainsi En plus de vous fournir une IPv6, vous disposerez d'un nom de domaine ainsi
qu'une délégation sur un sous-domaine. qu'une délégation sur un sous-domaine.
Commencez par demander un nom de domaine *Association simple*, sans un premier Commencez par demander un nom de domaine *Association simple*, dans un premier
temps. Ceci créera un domaine qui vous permettra d'accéder à votre machine dans temps. Ceci créera un domaine qui vous permettra d'accéder à votre machine sans
avoir à connaître son IP. avoir à connaître son IP.
Dans un deuxième temps, nous verrons comment tirer parti de la délégation. Vous Dans un deuxième temps, nous verrons comment tirer parti de la délégation. Vous

View file

@ -13,9 +13,9 @@ Voici les grandes étapes :
* choisir un serveur DNS autoritaire (BIND, NSD, Knot, PowerDNS, djbDNS, ...) ; * choisir un serveur DNS autoritaire (BIND, NSD, Knot, PowerDNS, djbDNS, ...) ;
* éditer la zone de votre domaine ; * éditer la zone de votre domaine ;
* configurer ce serveur pour qu'il réponde effectivement aux requêtes de votre zone ; * 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 ; * 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` ; * 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` ;
* 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) ; * 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 ANY login_x.srs.p0m.fr` que votre serveur est bien joignable. * tester avec `dig @9.9.9.9 ANY login-x.srs.p0m.fr` 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/>. 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/>.

View file

@ -1,9 +1,9 @@
--- ---
title: Administration Linux avancée -- TP n^o^ 2 title: Administration Linux avancée -- TP n^o^ 2
subtitle: Maatma : l'hébergeur DIY subtitle: "Maatma : l'hébergeur DIY"
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps} author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA institute: EPITA
date: Jeudi 14 mars 2019 date: Lundi 16 mars 2020
abstract: | abstract: |
Durant ce deuxième TP, nous allons apprendre à déployer des services sur un Durant ce deuxième TP, nous allons apprendre à déployer des services sur un
serveur, de manière industrielle ! serveur, de manière industrielle !
@ -11,14 +11,14 @@ abstract: |
\vspace{1em} \vspace{1em}
La partie 4 de ce TP est un projet à rendre à <adlin@nemunai.re> au plus tard La partie 4 de ce TP est un projet à rendre à <adlin@nemunai.re> au plus tard
le **vendredi 29 mars 2019 à 00 h 42 du matin**. Consultez la dernière le **dimanche 29 mars 2020 à 00 h 42 du matin**. Consultez la dernière
section de chaque partie pour plus d'information sur les éléments à section de chaque partie pour plus d'information sur les éléments à
rendre. Et n'oubliez pas de répondre aux [questions de rendre. Et n'oubliez pas de répondre aux [questions de
cours](https://www.epitaf.fr/moodle/mod/quiz/view.php?id=268). cours](https://adlin.nemunai.re/quiz/2).
En tant que personnes sensibilisées à la sécurité des échanges électroniques, 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 à vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) [me](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re)
faire signer votre clef et n'hésitez pas à [faire signer votre faire signer votre clef et n'hésitez pas à [faire signer votre
clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/). clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
... ...

View file

@ -20,7 +20,7 @@ reporter dans un fichiers au chapitre suivant !
Ma première vitrine Ma première vitrine
------------------- -------------------
Sur le domaine `login_x.adlin2020.p0m.fr`, déployez une vitrine d'entreprise Sur le domaine `login_x.adlin2021.p0m.fr`, déployez une vitrine d'entreprise
basique (pas besoin d'un Wordpress, un simple lot de pages HTML fera l'affaire). basique (pas besoin d'un Wordpress, un simple lot de pages HTML fera l'affaire).
Vous aurez pour cela besoin d'un serveur web, dont le choix est laissé à votre Vous aurez pour cela besoin d'un serveur web, dont le choix est laissé à votre

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` Une fois la machine virtuelle démarrée, vous pouvez vous y connecter en `root`
avec le mot de passe `adlin2020`. avec le mot de passe `adlin2021`.
Vous pouvez également démarrer en mode *single user*, mais comme votre disque 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 n'est sans doute pas encore utilisable à ce stade, vous ne pourrez pas changer