Préambule
my-gateway
Cette machine virtuelle utilisera le système d’exploitation Debian et ne possédera pas d’environnement graphique.
Elle aura pour rôle d’assurer un accès Internet aux autres machines de l’entreprise.
my-dns-dhcp
Cette machine virtuelle utilisera le système d’exploitation Debian et ne possédera pas d’environnement graphique.
Les services présents sur cette machine seront :
- Un service de noms de domaine
- Un service d’adressage IP automatique
my-mail
Cette machine virtuelle utilisera le système d’exploitation Debian et ne possédera pas d’environnement graphique.
Les services présents sur cette machine seront :
my-nas
L’administrateur système de l’entreprise vous propose 2 possibilités pour l’installation de votre serveur NAS
- Installer un serveur NAS à l’aide d’un ISO natif
- Installer les paquets d’un serveur NAS sur une machine virtuelle Debian
my-gateway
Cette partie est terminée.
0) Configurer deux réseaux
- Réseau 1 : réseau interne
1) Activer ip_forwarding
- Ouvrir le fichier "/etc/sysctl.conf"
- Aller ligne 28, puis décommenter la ligne pour avoir :
net.ipv4.ip_forward=1
- Taper "sysctl -p" pour sauvegarder.
2) Configurer les interfaces
- Editer le fichier "/etc/network/interfaces"
- Garder les 2 lignes pour lo
- Configurer l'interface n°1 (enp0s3 pour Debian 9, eth0 pour Debian 8)
auto enp0s3
iface enp0s3 inet static
address 192.168.0.1
broadcast 192.168.0.255
netmask 255.255.255.0
- Configurer l'interface n°2 (enp0s8 pour Debian 9, eth1 pour Debian 8)
auto enp0s8
iface enp0s8 inet dhcp
3) IP tables
- Taper la commande suivante (ne pas oublier de remplacer enp0s8 par eth1 si sous Debian <= 8) :
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
Si on veut que la configuration reste au prochain redémarrage, suivre les instructions ci-dessous
- Taper la commande suivante :
iptables-save > /etc/iptables_rules.save
- Ouvrir le fichier suivant :
/etc/network/interfaces
- À la fin de la configuration de la première interface, ajouter la ligne suivante :
post-up iptables-restore < /etc/iptables_rules.save
reboot
4) Vérification
- Taper "ping 8.8.8.8", voir si ça fonctionne
my-dns-dhcp - partie DHCP
Cette partie est terminée.
0) Configuration
- Réseau 1 : réseau interne
La VM "my-gateway" doit être lancée
- Éditer le fichier "/etc/network/interfaces", et configurer l'interface afin de la connecter à la gateway (remplacer enp0s3 par eth0 si Debian <= 8)
auto enp0s3
iface enp0s3 inet static
address 192.168.0.2
broadcast 192.168.0.255
netmask 255.255.255.0
gateway 192.168.0.1
- Redémarrer le service de networking
service networking restart
- Vérifier que le réseau a bien été configuré en tapant les commandes suivantes :
ping 192.168.0.1
ping 8.8.8.8
Penser à modifier également le hostname dans "/etc/hostname"
1) Installation & Initialisation
- Taper la commande suivante (il y a des erreurs qui vont s'afficher, c'est normal, ne paniquez pas) :
apt-get install isc-dhcp-server
- Faire une copie du fichier de configuration (au cas où)
cp /etc/dhcp/dhcpd.conf{,.backup}
- Vider le fichier de configuration
cat /dev/null > /etc/dhcp/dhcpd.conf
2) Configuration
- Ouvrir le fichier de configuration
/etc/dhcp/dhcpd.conf
- Remplir le fichier ainsi :
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
option domain-name-servers 163.5.42.40, 163.5.42.41;
option domain-name "debian-dhcp";
authorative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
host my-mail {
hardware ethernet 08:00:27:64:b7:16;
fixed-address 192.168.0.3;
}
host my-nas {
hardware ethernet 08:00:27:6f:55:e7;
fixed-address 192.168.0.4;
}
range 192.168.0.5 192.168.0.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 163.5.42.40, 163.5.42.41;
option domain-name "my-dns-dhcp";
option routers 192.168.0.1;
get-lease-hostnames true;
use-host-decl-names true;
default-lease-time 600;
max-lease-time 7200;
}
Vous pouvez télécharger le fichier déjà tout fait en tapant "wget 26.customprotocol.com/sysadmin/fichiers/dhcpd.conf" et en déplaçant ce fichier dans "/etc/dhcp/"
Remplacer les lignes "hardware ethernet" par les bonnes adresses MAC/Ethernet
À la ligne "range", renseigner la première adresse IP puis la dernière adresse IP de la plage d'IP disponibles
À la ligne "option domain-name-servers", remplacer les deux adresses IP par celle(s) présente(s) dans le fichier "/etc/resolv.conf"
À la ligne "option domain-name", remplacer le nom par celui présent dans le fichier "/etc/hostname"
À la ligne "option routers", remplacez l'IP par celle de sa VM my-gateway
- Ouvrir le fichier suivant
/etc/default/isc-dhcp-server
- Trouver la ligne suivante (normalement l'avant-dernière, si elle n'existe pas créez-la) :
INTERFACESv4=""
- Renseigner entre les guillemets le nom de l'interface de sa machine (enp0s3 si Debian 9, eth0 sinon)
INTERFACESv4="enp0s3"
3) Redémarrage
- Redémarrer le service suivant :
service isc-dhcp-server restart
service isc-dhcp-server status
S'il y a des erreurs, recommencer cette partie
4) Vérification
- Configurer l'interface n°1 des VM "my-mail" et "my-nas" (voir leur partie respective), et vérifier leur adresse IP.
my-dns-dhcp - partie DNS
Cette partie est terminée.
1) Installation des paquets utiles
- Taper les commandes suivantes :
apt-get install bind9 dnsutils
2) Création du domaine asrlab.lan
- Ouvrir le fichier "/etc/bind/named.conf.default-zones"
zone "asrlab.lan" {
type master;
file "/etc/bind/db.asrlab.lan";
};
- Puis, suivi d'un retour à la ligne :
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.asrlab.lan.inv";
};
- Sauvegarder et fermer le fichier
- Taper les commandes suivantes
cp /etc/bind/db.local /etc/bind/db.asrlab.lan
cp /etc/bind/db.127 /etc/bind/db.asrlab.lan.inv
- Editer le fichier "/etc/bind/db.asrlab.lan"
- Remplacer "localhost" par "asrlab.lan", afin d'avoir un fichier qui ressemble à ceci (ne pas oublier de remplacer la dernière ligne) :
$TTL 604800
@ IN SOA asrlab.lan. root.asrlab.lan. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS asrlab.lan
@ IN A 192.168.0.2
www IN A 192.168.0.2
- Sauvegarder et fermer le fichier
- Editer "/etc/bind/db.asrlab.lan.inv"
- Comme tout à l'heure, remplacer tous les "localhost" par "asrlab.lan", comme ceci (bien vérifier les 2 dernières lignes) :
$TTL 604800
@ IN SOA asrlab.lan. root.asrlab.lan. (
1 ; Serial
604800 ; Refres
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS asrlab.lan.
2 IN PTR asrlab.lan.
2 IN PTR www.asrlab.lan.
- Sauvegarder et fermer le fichier
service bind9 restart
service bind9 status
- Ouvrir le fichier "/etc/resolv.conf"
- Ajouter ces 2 lignes au tout début
search asrlab.lan
nameserver 192.168.0.2
nslookup asrlab.lan
- Voici ce qui devrait afficher à l'écran :
Server: 192.168.0.2
Address: 192.168.0.2#53
Name: asrlab.lan
Address: 192.168.0.2
nslookup 192.168.0.2
- Vérifier que ce qui est affiché corresponde à ceci :
Server: 192.168.0.2
Address: 192.168.0.2#53
2.0.168.192.in-addr.arpa name = www.asrlab.lan.
2.0.168.192.in-addr.arpa name = asrlab.lan.
3) Configuration de redirecteur(s)
- Configurer d'abord les VM "my-mail", "my-nas" et "my-employee" (en suivant leur étape 0 respective)
- Répéter ensuite l'étape ci-dessous pour les trois VM
- Installer le paquet "resolvconf"
apt-get install resolvconf
- Ouvrir le fichier suivant
/etc/resolvconf/resolv.conf.d/head
search asrlab.lan
nameserver 192.168.0.2
service resolvconf restart
service resolvconf status
ping asrlab.lan
my-employee
Cette partie est terminée.
0) Configuration
- Carte réseau 1 : réseau interne
Les VM "my-gateway" et "my-dns-dhcp" doivent être lancées
- Ouvrir le fichier "/etc/networking/interfaces" avec les accès superutilisateur
- Ajouter/modifier la configuration de l'interface n°1 (enp0s3 pour Debian 9, eth0 pour Debian 8)
auto enp0s3
iface enp0s3 inet dhcp
reboot
- Vérifier en tapant "ip a" que l'adresse IP de l'interface enp0s3 est bien de type 192.168.0.x, "x" étant compris entre 5 et 254
- Vérifier que l'on peut effectuer les pings suivants
ping 192.168.0.1
ping 8.8.8.8
ping asrlab.lan
Penser à modifier également le hostname dans "/etc/hostname"
my-mail
Cette partie est terminée.
0) Configurer le réseau
- Carte réseau 1 : réseau interne
Les VM "my-gateway" et "my-dns-dhcp" doivent être lancées
- Ouvrir le fichier "/etc/network/interfaces"
- Garder les 2 lignes pour lo
- Configurer l'interface n°1 (enp0s3 pour Debian 9, eth0 pour Debian 8)
auto enp0s3
iface enp0s3 inet dhcp
reboot now
- Après redémarrage, vérifier en tapant "ip a" que l'addresse de l'interface enp0s3 est bien 192.168.0.3
- Vérifier que l'on peut effectuer les pings suivants
ping 192.168.0.1
ping 8.8.8.8
ping asrlab.lan
Penser à modifier également le hostname dans "/etc/hostname"
1) Installation du serveur mail
- Commencez par installer les paquets utiles :
apt-get install curl net-tools mailutils
- Ouvrir le fichier "/etc/host.conf", vérifier que les 2 premières lignes correspondent à celles-ci :
order hosts,bind
multi on
apt-get install postfix
- Sélectionner "OK", puis "Site Internet", puis renseigner "asrlab.lan" en "nom de courrier", et enfin attendre
- Faire une copie (au cas où) de la configuration principale de postfix
cp /etc/postfix/main.cf{,.backup}
- Télécharger le fichier de configuration déjà préparé par amour par votre serviteur ;)
wget 26.customprotocol.com/sysadmin/fichiers/main.cf
- Le déplacer (si ce n'est pas déjà fait)
mv main.cf /etc/postfix/
- Taper les commandes suivantes
hostnamectl set-hostname mail.asrlab.lan
echo "192.168.0.3 asrlab.lan mail.asrlab.lan" >> /etc/hosts
init 6
- Redémarrer et vérifier le statut du service mail
service postfix restart
service postfix status
- Vérifier que le service Postfix utilise bien le port 25
netstat -tlpn
1.5) Tester le serveur mail
Cette partie n'est pas obligatoire mais est vivement recommandée, pour vérifier que Postfix fonctionne correctement
- Se rendre au dossier maison (en tapant "cd" sans argument)
- Taper la commande suivante :
echo "Message de test ! :)"| mail -s "test mail" root
mailq
- Vérifier que la réponse est du type "Mail queue is empty"
mail
- Vérifier que la réponse ressemble à "Pas de courrier pour root"
ls Maildir
- Vérifier qu'il y a trois dossiers "cur", "new" et "tmp"
Si ça n'est pas le cas, tapez "reboot" et réessayez
ls Maildir/new
- Vérifier qu'il y a un seul fichier au nom chelou finissant par ".mail.asrlab.lan"
- Afficher le contenu de ce fichier
cat Maildir/new/fichier-au-nom-compliqué.mail.asrlab.lan
- Vérifier que le contenu ressemble à ceci :
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: by mail.asrlab.lan (Postfix, from userid 0)
id XXXX; Date
Subject: test mail
To: <[email protected]>
X-Mailer: mail (GNU Mailutils X.X.X)
Message-Id: <[email protected]>
Date: DATE
From: [email protected] (root)
Message de test ! :)
2) Installation du serveur IMAP et POP3
Nous allons utiliser Dovecot, qui utilise le protocole IMAP et les ports 143/993. C'est lui qui est responsable de la lecture, suppression et déplacement de mails entre différents clients mail.
- Commencer par installer le paquet :
apt-get install dovecot-core dovecot-imapd
- Ouvrir le fichier "/etc/dovecot/dovecot.conf"
- Trouver et décommenter la ligne suivante :
listen = *, ::
- Ouvrir ensuite le fichier "/etc/dovecot/conf.d/10-auth.conf"
- Trouver, décommenter et changer les lignes suivantes :
disable_plaintext_auth = no
auth_mechanisms = plain login
- Ouvrir "/etc/dovecot/conf.d/10-mail.conf"
- Trouver et changer la ligne suivante :
mail_location = maildir:~/Maildir
- Ouvrir "/etc/dovecot/conf.d/10-master.conf"
- Chercher la ligne "Postfix smtp-auth"
- Décommenter/ajouter le bloc afin qu'il ressemble à ceci :
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
- Redémarrer et vérifier le statut du service Dovecot
systemctl restart dovecot.service
systemctl status dovecot.service
- Vérifier que Dovecot utilise bien le port 143
netstat -tlpn
- Créer un nouvel utilisateur via la commande "adduser" comme ci-dessous
nc localhost 25
- Après avoir reçu "220 mail.asrlab.lan ESMTP", taper :
ehlo localhost
- Vérifier que l'on reçoit bien ceci :
250-mail.asrlab.lan
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
- Taper (toujours dans netcat)
mail from: root
- Vérifier que la réponse est
250 2.1.0 Ok
rcpt to: admin
Remplacer "admin" par le nom de l'utilisateur que l'on a crée !
- Vérifier que la réponse est
250 2.1.5 Ok
data
- Vérifier que la réponse est
354 End data with <CR><LF>.<CR><LF>
subject: test
- Puis taper (ne pas oublier la ligne ".")
Ceci est un courriel de test.
.
- Vérifier que la réponse est
250 2.0.0 Ok: queued as XXXXXX
quit
- Vérifier que le courriel a bien été "envoyé" à la boîte de réception de courriels du nouvel utilisateur (remplacer "admin" par le nom du nouvel utilisateur fraîchement crée).
ls /home/admin/Maildir/new/
cat /home/admin/Maildir/new/XXXXXXXX.mail.asrlab.lan
3) Installation du serveur webmail
- Installer tous les paquets nécessaires (y en a... un paquet :p)
Vous pouvez télécharger le script d'installation des paquets via "wget 26.customprotocol.com/sysadmin/fichiers/mymail-packages.sh" puis "chmod +x mymail-packages.sh" et enfin "./mymail-packages.sh"
apt-get -y install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext php-apcu net-tools sudo wget curl nginx mariadb-server php-net-ldap3 git zip unzip
systemctl start nginx mariadb; systemctl enable nginx mariadb
L'espace après le mysql ne doit pas être écrit, je l'ai mis parce que mon serveur aimait pas quand c'était tout attaché :(
mysql _secure_installation
- Ouvrir le fichier "/etc/php/7.0/fpm/php.ini"
- Décommenter et/ou paramétrer ces lignes
cgi.fix_pathinfo=0
date.timezone="Europe/Paris"
- Ouvrir "/etc/php/7.0/fpm/pool.d/www.conf", vérifier qu'il y a bien la ligne suivante :
listen = /run/php/php7.0-fpm.sock
- Ouvrir "/etc/nginx/sites-available/default"
- Décommenter les lignes suivantes :
location ~ \.php* {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
location ~/\.ht {
deny all;
}
- Vérifier que la commande suivante renvoie "successful"
nginx -t
- Créer une petite page de test
echo "<?php phpinfo(); ?>" > /var/www/html/infopage.php
systemctl restart mariadb nginx php7.0-fpm.service
- Vérifier sur le client que ça fonctionne, en tapant dans son navigateur de recherche :
http://192.168.0.3/infopage.php
wget https://github.com/roundcube/roundcubemail/releases/download/1.3.6/roundcubemail-1.3.6-complete.tar.gz
tar xvf roundcubemail-1.3.6-complete.tar.gz
mv roundcubemail-1.6.1 /var/www/html/roundcubemail
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
cd /var/www/html/roundcubemail
mv composer.json-dist composer.json
composer install --no-dev
- Ouvrir la console MySQL/MariaDB
mysql -u root -p
- Taper les commandes suivantes pour créer un utilisateur dédié à Roundcube
create database roundcubemail;
create user roundcubeuser@localhost;
set password for roundcubeuser@localhost= password("roundcubepass");
grant all privileges on roundcubemail.* to roundcubeuser@localhost identified by "roundcubepass";
flush privileges;
exit;
- Taper enfin, dans le shell (et non dans la console MySQL)
mysql -u roundcubeuser -p roundcubemail < /var/www/html/roundcubemail/SQL/mysql.initial.sql
- Renseigner le mot de passe (roundcubepass)
- Ouvrir "/etc/nginx/conf.d/mail.your-domain.com.conf", ou télécharger le fichier de conf en tapant "wget 26.customprotocol.com/sysadmin/fichiers/my-webmail.asrlab.lan.conf"
server {
listen 80;
server_name my-webmail.asrlab.lan;
root /var/www/html/roundcubemail/;
index index.php index.html index.htm;
error_log /var/log/nginx/roundcube.error;
access_log /var/log/nginx/roundcube/access;
location = /50x.html {
root /var/www/html/roundcubemail;
}
location / {
try_files $uri $uri/ index.php;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(bin|SQL)/ {
deny all;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~/.well-known/acme-challenge {
allow all;
}
}
- Vérifier la configuration avec
nginx -t
- Si ça ne fonctionne pas directement, taper
mkdir /var/log/nginx/roundcube
touch /var/log/nginx/roundcube/access
nginx -t
systemctl restart nginx
- Se rendre sur la VM my-employee, ouvrir le navigateur et aller à l'adresse :
http://192.168.0.3/roundcubemail/installer
- Si une erreur 503 s'affiche, ajouter dans "/etc/nginx/sites-available/default" (côté VM my-mail), en-dessous de la ligne "location /"
index index.php index.html index.htm;
- Télécharger le fichier de configuration de Roundcube (attention, son extension volontairement est volontairement mauvaise, penser à la changer en ".inc.php")
wget 26.customprotocol.com/sysadmin/fichiers/config.inc_php
mv config.inc_php /var/www/html/roundcubemail/config/config.inc.php
- Revenir sur la VM my-employee, puis se rendre à l'adresse
http://192.168.0.3/roundcubemail
- Si l'écran de login s'affiche, c'est bon ! o/
4) Création des utilisateurs
- Taper les commandes suivantes (sur la VM my-mail bien entendu)
Attention à renseigner les bons mot de passe à la création des comptes ! (cf. sujet)
adduser admin
adduser hadrien.b
adduser romain.b
adduser marina.c
- Ouvrir le navigateur internet du client, aller sur le serveur Webmail en tapant dans la barre URL du navigateur
http://192.168.0.3/roundcubemail
- Essayer de se connecter avec l'un des comptes nouvellement crées
- Si ça fonctionne, bingo !
- Essayer aussi d'envoyer un mail à quelqu'un d'autre (à [email protected] depuis le compte d'hadrien.b par exemple)
my-nas
Cette partie est terminée.
Cette partie n'est pas tout à fait complète mais est relativement simple à réaliser tout seul. ;)
0) Installation
- Créer une nouvelle VM de 16 Go.
- La démarrer avec l'ISO suivant => https://sourceforge.net/projects/openmediavault/files/
Il est conseillé de prendre une version 3, plus stable que la version 4 encore en cours de développement/amélioration. Cependant, la version 3 tourne sous Debian 8 (et non 9).
- Pendant l'installation, penser à libérer 12 Go
1) Configurer le réseau
- Carte réseau 1 : réseau interne
Les VM "my-gateway" et "my-dns-dhcp" doivent être lancées
- Editer le fichier "/etc/network/interfaces"
- Garder les 2 lignes pour lo
- Configurer l'interface n°1 (enp0s3 pour Debian 9, eth0 pour Debian 8)
auto enp0s3
iface enp0s3 inet dhcp
reboot now
- Après redémarrage, vérifier en tapant "ip a" que l'addresse de l'interface enp0s3 est bien 192.168.0.4
- Vérifier que l'on peut effectuer les pings suivants
ping 192.168.0.1
ping 8.8.8.8
ping asrlab.lan
Penser à modifier également le hostname dans "/etc/hostname"
2) Configurer le NAS
- Créer un groupe "Pédago" (il faut le faire depuis la VM "my-nas", car l'accent ne sera pas supporté sur la version graphique/internet)
groupadd "Pédago"
- La reste de la configuration se fait depuis la VM "my-employee", via le navigateur internet, en se rendant à l'adresse suivante
http://192.168.0.4
Le mot de passe par défaut de l'utilisateur "admin" est "openmediavault", vous pouvez le modifier dans "Système > Paramètres généraux > Sécurité Administrateur".
- Le reste se fait via la catégorie "Gestion des droits d'accès" (création d'utilisateurs, changement des permissions, création des dossiers partagés, etc.)
Si votre Debian/NAS a pris tous les 16 Go de votre VM, pas de panique, vous pouvez redimensionner la partition pour vous libérer 12 Go grâce au Live CD "GParted".
my-dns-dhcp - finalisation
Cette partie est terminée.
- Ouvrir le fichier "/etc/bind/db.asrlab.lan"
- Ajouter, à la fin du fichier, les lignes suivantes
my-webmail IN A 192.168.0.3
my-nas IN A 192.168.0.4
- Sauvegarder et fermer le fichier
- Ouvrir le fichier "/etc/bind/db.asrlab.lan.inv"
- Ajouter, à la fin du fichier, les lignes suivantes
3 IN PTR my-webmail.asrlab.lan.
4 IN PTR my-nas.asrlab.lan.
- Lancer le navigateur internet
- Se rendre à l'adresse suivante
http://my-webmail.asrlab.lan
- Vérifier que l'on est bien sur la page de connexion Roundcube
- Se rendre ensuite à l'adresse suivante
http://my-nas.asrlab.lan
- Vérifier que l'on est ben sur la page de connexion OpenMediaVault
Si ça ne fonctionne pas, re-vérifier après avoir reboot toutes les VM
Si ça ne fonctionne pas, re-vérifier la configuration du réseau de la VM my-employee, essayer de ping 192.168.0.1 et 8.8.8.8