Last fixes 2022 tuto3

This commit is contained in:
nemunaire 2022-02-18 22:36:00 +01:00
parent 72b8c1d32c
commit ad11e9ce7f
3 changed files with 41 additions and 11 deletions

View File

@ -145,6 +145,7 @@ services:
options: ["rw","nosuid","noexec","nodev","relatime"]
binds:
- /var/lib/adlin/wrt-etc:/etc
- /var/lib/adlin/wireguard/ansible.fact:/etc/ansible/facts.d/maatma.fact
- /etc/rinittab:/etc/inittab
- /etc/hosts:/etc/hosts:ro
- /etc/dresolv.conf:/etc/resolv.conf
@ -564,8 +565,11 @@ files:
# Avoid listening on IPv6
sed -r -i '/list\s+listen_http\s+\[::\]:80/d;/list\s+listen_https\s+\[::\]:443/d' /var/lib/adlin/wrt-etc/config/uhttpd
rm /var/lib/adlin/wrt-etc/config/network
}
# Configure networking
cat > /var/lib/adlin/wrt-etc/config/network <<EOF
[ -f /var/lib/adlin/wrt-etc/config/network ] || cat > /var/lib/adlin/wrt-etc/config/network <<EOF
config interface 'loopback'
option ifname 'lo'
@ -578,7 +582,6 @@ files:
option proto 'dhcp'
EOF
}
[ -e /var/lib/adlin/wrt-config ] && {
mv /var/lib/adlin/wrt-config/* /var/lib/adlin/wrt-etc/config/
@ -594,6 +597,7 @@ files:
EOF
[ -f /var/lib/adlin/wireguard/adlin.conf ] && /usr/bin/update-wg-conf
[ -f /var/lib/adlin/wireguard/ansible.fact ] || touch /var/lib/adlin/wireguard/ansible.fact
mode: "0755"
- path: usr/bin/update-wg-conf
@ -605,7 +609,7 @@ files:
WKSIP=$(echo "${TUNIP}" | sed "s#:[^:/]*/.*\$#1::1/96#")
grep -q wireguard /var/lib/adlin/wrt-etc/config/network && {
sed -i -r "s#list addresses '[^']+'#list addresses '${TUNIP}'#;s#option private_key '[^']+'#option private_key '${TUNPVKEY}'#;" /var/lib/adlin/wrt-etc/config/network
sed -i -r "s#list addresses '[^']*'#list addresses '${TUNIP}'#;s#option private_key '[^']*'#option private_key '${TUNPVKEY}'#;" /var/lib/adlin/wrt-etc/config/network
}
grep -q wireguard /var/lib/adlin/wrt-etc/config/network || cat >> /var/lib/adlin/wrt-etc/config/network <<EOF
@ -636,6 +640,14 @@ files:
option interface 'wg0'
EOF
cat <<EOF > /var/lib/adlin/wireguard/ansible.fact
[tun]
pvkey=${TUNPVKEY}
ip6=${TUNIP}
srvip6=${SRVIP}
wksip6=${WKSIP}
EOF
mode: "0755"
- path: etc/init.d/014-get-ssh-keys
@ -673,7 +685,7 @@ files:
- path: /etc/init.d/800-rw-passwd.sh
contents: |
#!/bin/sh
sed -ri '/^root/s@^root:x:.*$@root:$1$ChIJgCib$1IYTTG.wKCXqbo1RMEQCc0:18706:0:99999:7:::@' /var/lib/adlin/wrt-etc/shadow
sed -ri '/^root/s@^root::.*$@root:$1$ChIJgCib$1IYTTG.wKCXqbo1RMEQCc0:18706:0:99999:7:::@' /var/lib/adlin/wrt-etc/shadow
mkdir -p /var/lib/adlin/wrt-etc/dropbear/
[ -f /var/lib/adlin/authorized_keys ] && ! [ -f /var/lib/adlin/wrt-etc/dropbear/authorized_keys ] && cp /var/lib/adlin/authorized_keys /var/lib/adlin/wrt-etc/dropbear/authorized_keys
@ -689,7 +701,7 @@ files:
cp /etc/services /containers/services/${svc}/rootfs/etc/services
mkdir -p /containers/services/${svc}/rootfs/root/.ssh
[ -f /var/lib/adlin/authorized_keys ] && cp /var/lib/adlin/authorized_keys /containers/services/${svc}/rootfs/root/.ssh/authorized_keys
nsenter -t $(ctr -n services.linuxkit t ls | grep ${svc} | awk '{ print $2 }') -a ssh-keygen -A
nsenter -t $(ctr -n services.linuxkit t ls | grep ${svc} | awk '{ print $2 }') -a -- ssh-keygen -A
done
exit 0

View File

@ -55,19 +55,23 @@ login_x-TP3/roles/revproxy/templates/nginx.conf.j2
- votre routeur filtre les paquets entrants (IPv4, IPv6) selon la politique que vous avez défini,
- votre routeur bloque les connexions entrantes vers le réseau des stations de travail,
- votre routeur effectue du NAT en IPv4 pour les serveurs et les stations de travail.
\
- Votre vitrine est exposée en HTTP et HTTPS,
- les options HTTPS ont été choisies avec soin, selon les recommandations de l'ANSSI,
- le visiteur est redirigé systématiquement vers la version HTTPS,
- le visiteur est redirigé vers `www.login_x.srs.p0m.fr` lorsqu'il visite `login_x.srs.p0m.fr`,
- `news.login_x.srs.p0m.fr` affiche miniflux,
- `matrix.login_x.srs.p0m.fr` est prêt.
\
- Votre serveur de nom de domaines est accessible en TCP et UDP,
- votre nom de domaine se résout depuis un résolveur public,
\
- La configuration de tous les serveurs accessibles respectent les recommandations de l'ANSSI,
- votre IPv6 publique peut évoluer en changeant simplement une variable `group_vars/all`.
\
- Vous avez utilisé des
[rôles](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html)
pour rendre vos recettes Ansible réutilisables.
## Signature du rendu

View File

@ -85,8 +85,8 @@ celles-ci sont automatiquement ajoutées aux différents serveurs. Cependant,
seuls les clefs RSA et DSA sont utilisables pour se connecter sur le routeur,
le serveur SSH ne gère pas les courbes éliptiques.
Notez que vous n'avez pas accès à la machine hébergeant la base de données, le
lecteur de flux RSS, ni à celle du résolveur DNS.
Notez que vous n'avez pas accès à la machine hébergeant la base de données, ni
à celle hébergeant le lecteur de flux RSS.
Objectif du TP
@ -103,6 +103,20 @@ s'assurer que ce soit également le cas des stations de travail).
*Playbook* Ansible semble plutôt adaptée !
### Mots de passes
Tous les mots de passes sont `adlin2022` pour tous les services.
3 bases de données Postgres sont à votre disposition pour vos différents
services :
- `matrix`
- `miniflux`
- `website`
Pour chacune, un utilisateur du même nom existe pour s'y connecter à distance.
Au secours ça ne marche pas !
-----------------------------