tuto3: done

This commit is contained in:
nemunaire 2021-03-22 01:07:10 +01:00
parent 6b81aebc71
commit 2baa88a7aa
6 changed files with 148 additions and 45 deletions

View File

@ -12,7 +12,7 @@ cmdline() {
[ -f "/var/lib/adlin/wireguard/adlin.token" ] && WGTOKEN=$(cat /var/lib/adlin/wireguard/adlin.token)
[ -z "${WGTOKEN}" ] && WGTOKEN=$(cmdline adlin.token)
[ -z "${WGTOKEN}" ] && {
echo "You didn't define your token to connect the network. Please run here `join-p0m` and then reboot."
echo "You didn't define your token to connect the network. Please run here `join-maatma` and then reboot."
exit 1
}
[ -f "/var/lib/adlin/wireguard/adlin.conf" ] && WGPRVKEY=$(sed 's/^.*PrivateKey *= *//p;d' /var/lib/adlin/wireguard/adlin.conf)

View File

@ -1,23 +1,30 @@
\newpage
Netfilter
=========
Routage
=======
Le projet `netfilter`[^netfilter] est l'implémentation de pare-feu au sein du
noyau Linux. Il s'agit d'un mécanisme de filtrage des paquets réseau basés sur
des règles, chargées par l'espace utilisateur dans le noyau. On utilise pour
cela les programmes `nft` (du projet `nftables`), ou de manière historique
`iptables`.
Votre entreprise dispose d'un modeste routeur utilisant
[OpenWrt](https://openwrt.org/). Il s'agit d'une petite distribution Linux
mettant à disposition une interface web pour configurer son routeur
facilement[^facilement].
[^netfilter]: <https://netfilter.org/>
[^facilement]: Si vous préférez, ce TP existe aussi en utilisant une simple
distribution Debian comme routeur. C'est tout aussi efficace et les mêmes
technologies sont en jeu. Demandez à votre professeur l'ISO si vous êtes
intéressés !
Au sein du noyau Linux, le [projet `netfilter`](https://netfilter.org/) est
l'implémentation de pare-feu standard. Il s'agit d'un mécanisme de filtrage des
paquets réseau basés sur des règles, chargées par l'espace utilisateur dans le
noyau. On utilise pour cela les programmes `nft` (du projet `nftables`), ou de
manière historique `iptables`.
Les deux projets ont une manière de fonctionner très similaire, mais il est
important de ne pas les utiliser en même temps, sous peine de voir apparaître
des problèmes incompréhensible à déboguer, plus ou moins aléatoirement.
Réseau fonctionnel ?
--------------------
## Réseau fonctionnel ?
Première étape : avez-vous vérifié l'état du réseau sur le routeur ?
@ -35,8 +42,7 @@ que vous devriez obtenir sont :
contacter.
Donner accès à Internet
-----------------------
## Donner accès à Internet
Votre administrateur système vous assure que le serveur de noms est bien lancé
et configuré comme demandé.
@ -59,9 +65,43 @@ Test à passer :
```
</div>
Vous pouvez utiliser, par exemple `tcpdump`, pour comprendre ce qu'il se passe
sur votre routeur :
Exposer un service web sur Internet
-----------------------------------
<div lang="en-US">
```
router# tcpdump -i ethsrv
router# tcpdump -i eth0 udp and port 53
```
</div>
## Accéder aux autres serveurs du parc
Depuis le routeur, vous pouvez vous SSH en utilisant le nom d'hôte attribué aux
machines :
<div lang="en-US">
- `ssh root@news`
- `ssh root@matrix`
- `ssh root@www`
</div>
Depuis l'extérieur, vous devez utiliser le routeur comme *bastion*. Avec SSH,
utilisez l'option `-J` pour désigner une machine intermédiaire qui servira à
accéder à la machine cible :
<div lang="en-US">
```
42sh$ ssh -J root@$EXT_ROUTER root@172.23.42.3
```
</div>
## Exposer les services
### Localement
Vous avez compris comment vos machines peuvent accéder à Internet sans avoir
pour autant d'IP routable sur Internet. Cependant, si cela répond parfaitement
@ -73,13 +113,16 @@ depuis l'interface externe du routeur. Après configuration, depuis un
navigateur sur votre poste, vous devriez pouvoir accéder à :
<div lang="en-US">
* `http://$EXT_ROUTER_IP:80/` : Vitrine
* `http://$EXT_ROUTER_IP:8000/` : Vitrine
* `http://$EXT_ROUTER_IP:8080/` : Miniflux
* `http://$EXT_ROUTER_IP:8448/` : Matrix
* `http://$EXT_ROUTER_IP:8008/` : Matrix
</div>
Notez bien qu'il s'agit là seulement d'un test avec l'IPv4 de votre routeur. Il
n'est pas encore demandé de faire cela sur l'IPv6 routable sur Internet.
### Miniflux
### Utiliser Miniflux
Utilisez le nom d'utilisateur `adeline` pour vous connecter à
miniflux. N'oubliez pas de changer le mot de passe avant que quelqu'un
@ -88,3 +131,11 @@ d'autre s'en charge à votre place !
Si vos serveurs ont bien accès à Internet, vous pourrez mettre à jour
la liste des flux pré-enregistrés dans miniflux, afin de faire un peu
de veille !
### On passe sur Internet ?
Si jusque là, tout se passe à merveille pour vous (c'est ce que je vous
souhaite !), vous pouvez maintenant rediriger le port 80 et 443 arrivant sur
l'IPv6 de votre routeur, vers ceux du serveur web. Sur lequel nous allons
installer un reverse-proxy...

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View File

@ -3,14 +3,14 @@ title: Administration Linux avancée -- TP n^o^ 3
subtitle:
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA
date: Lundi 30 mars 2020
date: Lundi 22 mars 2021
abstract: |
Durant ce troisième TP, nous allons faire un peu plus de réseau !
\vspace{1em}
Tous les éléments de ce TP (exercices et projet) sont à rendre à
<adlin@nemunai.re> au plus tard le dimanche 12 avril 2019 à 23
<adlin@nemunai.re> au plus tard le dimanche 11 avril 2021 à 23
h 42. Consultez la dernière section de chaque partie pour plus d'information
sur les éléments à rendre.

View File

@ -7,24 +7,32 @@ Présentation du système d'information
-------------------------------------
Le système d'information que vous allez avoir à gérer aujourd'hui est de taille
moyenne : vous aurez en votre possession un serveur DNS résolveur, un serveur
DNS autoritaire, un serveur de base de données ainsi que plusieurs serveurs web
(servant respectivement votre vitrine, [Miniflux](https://miniflux.app/), ainsi
que [Matrix](https://matrix.org/)).
moyenne. Vous aurez en votre possession :
- un serveur DNS résolveur,
- un serveur DNS faisant autorité,
- un serveur de base de données,
- plusieurs serveurs web (servant respectivement votre vitrine,
[Miniflux](https://miniflux.app/), ainsi que [Matrix](https://matrix.org/)),
- de nombreux postes de travail.
Vous êtes l'administrateur réseau de l'entreprise et l'on vous demande de
connecter tous ces services **correctement**.
Voici un schéma de l'infrastructure complète dont vous allez disposer en
démarrant l'ISO.
![Architecture réseau à produire](topologie.png "Topologie")
L'image ISO que vous avez récupérée met à votre disposition tout ce système
d'information, déjà en partie configuré pour sa partie logicielle, il ne reste
plus qu'à éditer la configuration du routeur.
![Architecture réseau à produire](topologie.png "Topologie")
Attention, contrairement au précédent TP, tout se fait en direct, il n'y a
aucune sauvegarde effectuée : à chaque redémarrage de la machine virtuelle,
vous retomberez dans l'état initial : seuls quelques éléments comme le token de
votre tunnel et le contenu de la base de données.
Attention, contrairement au précédent TP, la majorité des modifications que
vous allez effectuer ne seront pas persistantes d'un reboot à l'autre. À chaque
redémarrage de la machine virtuelle, vous retomberez dans un état initial.
Seuls quelques éléments comme le token de votre tunnel, la configuration du
routeur et le contenu de la base de données persistent.
Accéder à la machine virtuelle
------------------------------
@ -33,7 +41,7 @@ Une fois la machine virtuelle démarrée, vous devriez voir apparaître l'IP qu'
obtenue la machine sur votre réseau :
```
You didn't define your token to connect the network. Please run here `join-p0m` and then reboot.
You didn't define your token to connect the network. Please run here `join-maatma` and then reboot.
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 42:2c:63:f1:5a:49 brd ff:ff:ff:ff:ff:ff
inet 10.42.23.211/24 brd 10.42.23.255 scope global eth0
@ -50,15 +58,11 @@ Une ligne de commande est disponible au sein de la machine virtuelle à des fins
de débogage, si nécessaire. Vous ne devriez normalement pas avoir à interagir
avec celle-ci.
Si vous assignez deux cartes réseau à la machine virtuelle, vous devriez voir
apparaître l'IP de la carte `eth1` en dessous. Il s'agit d'une interface de
station de travail.
### Tunnel Maatma
Pour retrouver votre tunnel sur Internet, vous devez, dans la console de la
machine virtuelle, utiliser la commande `join-p0m`.
machine virtuelle, utiliser la commande `join-maatma`.
Vous pouvez aussi écrire directement dans le fichier persistant :
@ -68,13 +72,21 @@ Vous pouvez aussi écrire directement dans le fichier persistant :
```
</div>
Une fois le token renseigné, vous devez redémarrer la machine afin qu'il soit
pris en compte.
### Connexions SSH
Vous pouvez vous connecter en utilisant le compte `root` et le mot de passe
`adlin2021`.
`adlin2022`. Comme au précédent TP, si vous disposez d'une ou plusieurs [clefs
SSH enregistrées au CRI](https://cri.epita.fr/users/nemunaire/ssh-keys/),
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, ni
à celle du résolveur DNS.
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.
Objectif du TP
@ -89,3 +101,48 @@ s'assurer que ce soit également le cas des stations de travail).
Étant donné le caractère éphémère de vos actions, la réalisation d'un
*Playbook* Ansible semble plutôt adaptée !
Au secours ça ne marche pas !
-----------------------------
Pas de panique !
Quelques commandes sont à votre disposition dans le shell de la machine
virtuelle afin de vérifier que tout fonctionne correctement.
### Monitoring
Utilisez la commande `diagnostic` afin d'avoir une vue d'ensemble des éventuel
problèmes.
Tout est vert ? Toutes les machines sont opérationnelles !
Une ou plusieurs machines sont rouges ? il y a effectivement un problème avec
les machines concernées. Tentez de redémarrer une fois.
Si le problème persiste, vous pouvez formater votre disque en utilisant la
commande `raz-my-dd`. Ce qui vous permettra de retrouver la configuration
d'origine.
Pour les plus téméraires, les journaux des machines sont regroupés dans
`/var/log` accessible uniquement dans la console de la machine virtuelle.
### Retrouver mes IP
Vous ne pouvez pas simplement taper `ip a` dans le terminal de votre machine
virtuelle. Utilisez plutôt la commande `welcome` qui affichera à nouveau le
message d'accueil avec les différentes IP associées à vos machines.
### Rejoindre Maatma
Utilisez la commande `join-maatma` dans la console de la machine virtuelle,
puis redémarrez la machine.
Vous pouvez aussi passer par l'interface de votre routeur pour ajouter une
interface 'Wireguard VPN'. Utilisez les informations contenues sur la page
[Tunnels de Maatma](https://adlin.nemunai.re/maatma/tunnels) pour remplir les
différents champs.

View File

@ -24,13 +24,8 @@ N'ayant pas, pour le moment, d'IPv6 sur votre réseau ; vous devez mettre en
place un serveur DHCP sur votre réseau afin que vos collaborateurs puissent
utiliser facilement le réseau.
Configurez un serveur DHCP, tel quel `isc-dhcp-server` ou `udhcpd` afin de
distribuer des IP correspondant au plan d'adressage. N'oubliez pas de définir
le chemin permettant de sortir sur Internet ainsi que d'utiliser le résolveur
de noms de domaine local.
Une fois configuré, vous pouvez tenter de vous connecter aux services web (vous
devriez avoir `wget` sur la station de travail accessible).
devriez avoir `wget` sur les stations de travail accessibles).
Zone démilitarisée et filtrage