Administration Système et Devops – TP 2

DNS, premier sites web et cloud

2025-2026

1. Votre zone DNS

Vous allez mettre en place un serveur DNS qui fait autorité sur votre zone. Pendant ces TPs, le serveur DNS 172.18.[13].33 est résolveur, mais fait aussi autorité sur la zone g[12].t2. et délègue chaque zone login.g[12].t2. vers la VM correspondante.

  1. Si ce n’est pas déjà fait, changez le résolveur DNS de votre machine (physique) pour utiliser le serveur DNS mentionné ci-dessus.

  2. Assurez-vous que vous pouvez toujours résoudre www.bordeaux-inp.fr.

  3. Sur votre VM, installez le paquet bind9, qui est un serveur DNS faisant autorité (documentation).

  4. Désactivez DNSSEC (que nous n’allons pas utiliser dans ce TP) en ajoutant la ligne

    dnssec-validation no;

    dans le bloc options du fichier /etc/bind/named.conf.options.

  5. Dans le fichier /etc/bind/named.conf.local, définissez la zone sur laquelle votre serveur aura autorité :

    zone "login.g[12].t2" {
     type primary;
     file "/etc/bind/login.g[12].t2";
     notify false;
    };
  6. Définissez ensuite les entrées de la zone dans le fichier correspondant:

    $TTL 2d    ; default TTL for zone
    $ORIGIN login.g[12].t2. ; base domain-name
    @   IN  SOA   login.g[12].t2. hostmaster.login.g[12].t2. (
     2026031201 ; serial number
     12h         ; refresh
     15m         ; update retry
     4d          ; expiry
     2h          ; minimum
    )
    
     IN  NS  ns
     IN  A   <IP de votre VM>
    ns  IN  A   <IP de votre VM>
  7. Vérifiez la configuration avec named-checkconf et named-checkzone login.g[12].t2 /etc/bind/login.g[12].t2.

  8. Redémarrez le service bind9.

  9. Resolvez login.g[12].t2 et ns.login.g[12].t2 depuis votre machine, assurez-vous que l’IP de votre VM est bien renvoyée.

2. Un premier site web

Nous allons installer un serveur web, pour que le nom de domaine login.g[12].t2 corresponde à un simple site web (par exemple la page HTML que vous avez écrite pour le test avec Python).

  1. Installez le paquet nginx.

  2. Créez le fichier /etc/nginx/sites-available/login avec le contenu suivant (il s’agit d’un copier/coller de la fin du fichier /etc/nginx/sites-enabled/default), qui va configurer le virtual host pour votre nom de domaine :

    server {
     listen 80;
     listen [::]:80;
    
     server_name login.g[12].t2;
    
     root /var/www/login/;
     index index.html;
    
     location / {
         try_files $uri $uri/ =404;
     }
    }
  3. Créez un lien symbolique /etc/nginx/sites-enabled/login vers /etc/nginx/sites-available/login.

  4. Vérifiez que la configuration Nginx est correcte avec sudo nginx -t.

  5. Rechargez le service nginx.

  6. Créez le dossier /var/www/login et placez-y votre fichier HTML, idéalement nommé index.html.

  7. Depuis votre navigateur, accédez à votre site web.

  8. En parcourant les fichiers de configuration dans /etc/nginx, trouvez où sont enregistrés les logs de Nginx. La commande grep avec les options -Irni (que font ces options ?) vous sera sans doute utile.

  9. Consultez les fichiers de logs de Nginx. Que voyez-vous ?

3. Un deuxième site web : une instance NextCloud

Nous allons mettre en place une instance Nextcloud, accessible depuis l’adresse cloud.login.g[12].t2. Les instructions qui suivent sont un résumé grossier de la documentation officielle.

3.1. Installation et configuration de la base de données

Nous allons utiliser MariaDB comme serveur SQL.

  1. Installez le paquet mariadb-server.

  2. Pour définir le mot de passe root du serveur MariaDB, exécutez la commande :

    sudo mariadb-secure-installation
  3. Ouvrez une console SQL :

    mariadb -u root -p
  4. Créez l’utilisateur dédié à Nextcloud ainsi qu’une base de données (instructions copiées de la documentation) :

    CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
    CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    GRANT ALL PRIVILEGES on nextcloud.* to 'nextcloud'@'localhost';
  5. Quittez la console SQL avec quit;.

  6. Sur quel port écoute le serveur MariaDB ? Trouvez la réponse de deux façons différentes.

3.2. Installation et configuration de PHP

  1. Installez PHP et les différents composants nécessaires pour Nextcloud, sans les paquets qui sont recommandés :

    sudo apt install --no-install-recommends php-fpm php-curl php-gd php-xml php-mbstring php-zip php-mysql
  2. Créez le virtual host Nginx (adapté/simplifié à partir de la documentation) en utilisant (et adaptant) ce fichier.

3.3. Installation et configuration de Nextcloud

  1. Créez le dossier /var/www/cloud.
  2. Téléchargez dans ce dossier les sources de Nextcloud, disponibles à l’adresse https://download.nextcloud.com/server/releases/latest.tar.bz2.
  3. Décompressez l’archive : le contenu du dossier extrait nextcloud/ doit être dans /var/www/cloud/.
  4. Nginx doit pouvoir lire et écrire dans le dossier /var/www/cloud avec l’utilisateur www-data. Le plus simple est sans doute de changer le propriétaire du dossier.
  5. N’oubliez pas de déclarer l’entrée cloud dans votre zone DNS, pour que l’IP de votre VM soit associée au sous-domaine cloud.login.g[12].t2.
  6. Dans votre navigateur, rendez-vous à l’adresse de votre instance Nextcloud et laissez-vous guider par le processus d’installation.
  7. Accèdez aux Paramètres d’administration et essayez de corriger les problèmes listés (dans la mesure du possible : ignorez les problèmes liés à HTTPS ou à l’envoi de mail, par exemple).

4. Pour les plus rapides

Continuez la fin du TP 1 : mettez en place Munin, un parefeu et la redondance de votre zone DNS.