TP sysres IMA5 2022/2023 G4
Sommaire
Séance 1 & 2 : Installation de l'OS devuan
Les deux premières séances de TP avaient comme but la réinstallation de l'Os sur les machines Zabeth de la selle E306 Nous avons travaille sur des deux zabeth 16 et 8
Pour réinstaller le système d'exploitation, procédez comme suit :
1️⃣-->| Récupérer le fichier de la distribution (.iso) : fichier .iso
2️⃣-->| Rendre la clé bootable: - Ouvrez le Terminal - Identifiez le nom de la clé USB (ex. : sda) : lsblk -S - Démontez toutes les partitions de la clé USB (remplacez X par la lettre attribuée à votre clé USB) : umount /dev/sdX?* - Flasher l’image ISO sur la clé USB : sudo dd if=/chemin/vers/image.iso of=/dev/sdX bs=4M status=progress conv=fdatasync
3️⃣-->| Redémarrez la machine, puis démarrez sur la clé USB, en suivant les étapes de configuration indiquées sur les photos ci-dessus. - IP machine : 172.26.145.50+n°zabeth/24
- Adresse routeur (Gateway) 172.26.145.254
- Server dns = 193.48.57.48
- Nom du domaine
- Password : glopglop
- Partition de disks
- Proxy : http://proxy.polyetch-lille.fr:3128
Installation de XEN
-ssh root@capbreton.plil.info -xen-create-image --ip=193.48.57.108 --gateway=193.48.57.161 --netmask=255.255.255.0 --hostname=dio4 --dist=chimaera --dir=/usr/local/xen/
Ensuite, nous avons créé deux LV, chacun de 10 Go sur le groupe de volume de stockage:
-lvcreate -L10G -n dio4home storage -lvcreate -L10G -n dio4var storage
nous modifions ensuite notre fichier "/etc/xen/dio4.cfg" pour préciser l'ajout les volumes logiques dio4home et dio4var , de plus on ajoute le bridge bridgeStudents dans la fonction vif. Pour cela on ajoute les lignes suivantes:
name= 'dio4' # # Networking # vif = [ 'mac=00:16:3E:CB:36:83,bridge=bridgeStudents' ] disk = [ 'file:/usr/local/xen/domains/dio4/disk.img,xvda2,w', 'file:/usr/local/xen/domains/dio4/swap.img,xvda1,w', 'phy:/dev/storage/dio4home,xvda3,w', 'phy:/dev/storage/dio4var,xvda4,w' ]
-xen create /etc/xen/dio4.cfg -c
Afin de faire une repartition nous avons suivi les commades suivantes:
-mount /dev/xvda3 /home -mount /dev/xvda4 /mnt -mv /var/* /mnt -umount /mnt -mount /dev/xvda4 /var
Nous avons modifier le fichier /etc/network/interfaces afin d'accider a l'internet :
# The primary network interface auto eth0 iface eth0 inet static address 172.26.145.104 gateway 172.26.145.254 netmask 255.255.255.
une fois l'acces a l'internet est assure , nous avons geneter notre propre demande de signature de certificat (CSR):
-openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8
Configuration du SSh
Tout d'abord nous avons modifié en premier temps après avoir être connecté sur la machine virtuelle le fichier sshd_config (/etc/ssh/sshd_config):
-Port 2223 -PermitRootLogin yes -PassworddAuthentification yes
Puis :
-systemctl restart ssh -systemctl status ssh
par consequent nous pouvons se loger a notre VM comme suite :
-ssh root@193.48.57.181
Configuration Apache2 HTTP/HTTPS
On a installé apache2 :
apt install apache2
Il faut activer le module ssl avec les commandes :
a2enmod ssl a2ensite default-ssl service apache2 reload
On a validé la demande d'un certificat TLS pour notre domaine paaasta.site (sur gandi), et on a créé une clé et un fichier CSR qu'on va utiliser dans la partie HTTPS :
apt install openssl openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8
Puis on a créé le fichier /etc/apache2/sites-available/paaasta.site.conf :
<VirtualHost *:80> ServerName paaasta.site ServerAlias www.paaasta.site ServerAdmin webmaster@localhost DocumentRoot /var/www/paaasta.site/ <Directory /srv/web/paaasta.site/www> Options -Indexes +FollowSymLinks +MultiViews AllowOverride none Require all granted </Directory> ErrorLog /var/log/apache2/error.paaasta.site.log CustomLog /var/log/apache2/access.paaasta.site.log combined </VirtualHost>
<VirtualHost *:443> ServerName paaasta.site ServerAlias www.paaasta.site ServerAdmin webmaster@localhost DocumentRoot /var/www/paaasta.site/ <Directory /srv/web/paaasta.site/www> Options -Indexes +FollowSymLinks +MultiViews AllowOverride none Require all granted </Directory> SSLEngine on SSLCertificateFile /root/paaasta.site.crt SSLCertificateKeyFile /root/myserver.key SSLCertificateChainFile /root/GandiStandardSSLCA2.pem ErrorLog /var/log/apache2/error.paaasta.site.log CustomLog /var/log/apache2/access.paaasta.site.log combined </VirtualHost>
Puis on a exécuté les commandes suivants :
Pour activer notre site : a2dissite default-ssl.conf a2ensite paaasta.site.conf Pour créer le répertoire paaasta.site : mkdir /var/www/paaasta.site
Pour redémarrer le service apache2 : service apache2 reload
Maintenant pour personaliser notre page, nous allons créer le ficher index.html dans /var/www/paaasta.site :
<html> <head> <title> Paasta </title> </head> <body> <> paaaastaaaaaaa </body> </html>
Configuration du DNS
On a installé le package bind9 :
bind9
On a effectué des modifications sur le site gandi.net :
Glue Records
Nameservers
Dans le fichier /etc/resolv.conf, on a ajouté la ligne :
nameserver 127.0.0.1
Pour la configuration forward and reverse lookup zones on ajoute les lignes suivants dans le fichier /etc/bind/named.conf.local :
zone "paaasta.site" { type master; file "/etc/bind/db.paaasta.site"; allow-transfer{ 217.70.177.40; }; notify yes; }; zone "57.48.193.in-addr.arpa" { type master; file "/etc/bind/db.193.48.57"; allow-transfer {217.70.177.40; }; notify yes; };
Puis on ajoute les lignes suivants dans le fichier /etc/bind/named.conf.options :
forwarders { 8.8.8.8; 4.4.2.2; };
recursion yes; listen-on-v6 { any; }; listen-on { any; }; allow-recursion { trusted; }; allow-transfer{ none; };
acl "trusted" { 193.48.57.181; 217.70.177.40; };
On a crée le fichier /etc/bind/db.paaasta.site pour la forward zone :
; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.paaasta.site. root.paaasta.site. ( 3 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.paaasta.site. @ IN NS ns6.gandi.net. @ IN A 193.48.57.181 @ IN AAAA 2001:660:4401:60b0:216:3eff:fecb:3683 ns1 IN A 193.48.57.181 ns1 IN AAAA 2001:660:4401:60b0:216:3eff:fecb:3683 www IN A 193.48.57.181 www IN AAAA 2001:660:4401:60b0:216:3eff:fecb:3683 127 IN A 193.48.57.181
et le fichier /etc/bind/db.193.48.57 pour la reverse zone :
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA ns1.paaasta.site. root.paaasta.site. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ;NS records @ IN NS ns1.paaasta.site. ;PTR records 181 IN PTR ns1.paaasta.site. ;193.48.57.181
Maintenant il ne reste que de redémarrer bind9 :
service named restart
DNSSEC
D'abbord, on ajoute ces lignes dans le fichier /etc/bind/named.conf.options :
dnssec-enable yes; dnssec-validation auto;
Puis, on crée les deux clés dsnsec ksk et zsk
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE paaasta.site dnssec-keygen -a RSASHA1 -b 1024 -n ZONE paaasta.site
et on renomme les fichiers ksk et zsk :
mv ./Kpaaasta.site.+005+62111.key ./Kpaaasta.site-ksk.key mv ./Kpaaasta.site.+005+62111.private ./Kpaaasta.site-ksk.private mv ./Kpaaasta.site.+005+50707.key ./Kpaaasta.site-zsk.key mv ./Kpaaasta.site.+005+50707.key ./Kpaaasta.site-zsk.private mv ./Kpaaasta.site.+005+50707.private ./Kpaaasta.site-zsk.private
On a déplacé ces fichiers dans un répetoire : /etc/bind/paaasta.site.dnssec
On ajoute les lignes suivantes dans le fichier /etc/bind/db.paaasta.site
$INCLUDE "/etc/bind/paaasta.site.dnssec/Kpaaasta.site-zsk.key"; $INCLUDE "/etc/bind/paaasta.site.dnssec/Kpaaasta.site-ksk.key";
On signe le fichier de zone :
dnssec-signzone -o paaasta.site -k Kpaaasta.site-ksk.key ../db.paaasta.site Kpaaasta.site-zsk.key
Dans le fichier /etc/bind/named.conf.local on change file "/etc/bind/db.paaasta.site" à "/etc/bind/db.paaasta.site.signed"
Fail2ban
On installe le package fail2ban et iptables :
apt install iptables apt install fail2ban service fail2ban start service fail2ban enable
Dans le fichier /etc/fail2ban/jail.d/defaults-debian.conf on active le bannissement sur SSH
[sshd] enabled = true maxretry = 5 findtime = 120 bantime = 120
maxretry : nombre de tentatives findtime : durée en seconds bantime : le temps de bannissement en seconds
et sur DNS
[named-refused] enabled = true
On ajoute les lignes suivantes dans /etc/bind/named.conf.options
rate-limit { responses-per-second 5; };
logging { channel security_file { file "/var/log/named/security.log" versions 3 size 30m; severity dynamic; print-time yes; }; category security { security_file; }; };
On crée le fichier security.log dans /var/log/named
touch /var/log/named/security.log cd /var/log chown bind -R named/ chown bind named/security.log
On redémarre le service fail2ban. Résultat : Dans le fichier security.log
30-Nov-2022 18:32:09.046 client @0x7f57306a5d40 95.181.161.2#45897 (census.gov): query (cache) 'census.gov/ANY/IN' denied 30-Nov-2022 18:49:47.582 client @0x7f57306a5d40 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied 30-Nov-2022 19:49:50.966 client @0x7f57306a5d40 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied 30-Nov-2022 20:49:50.050 client @0x7f573070bb40 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied 30-Nov-2022 21:49:39.970 client @0x7f573070bb40 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied 30-Nov-2022 22:14:15.202 client @0x7f57307022e0 167.94.138.120#57497 (ip.parrotdns.com): query (cache) 'ip.parrotdns.com/A/IN' denied 30-Nov-2022 22:36:09.230 client @0x7f57307022e0 173.214.175.178#33086 (sl): query (cache) 'sl/ANY/IN' denied 30-Nov-2022 22:49:45.026 client @0x7f57307022e0 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied 30-Nov-2022 23:49:51.242 client @0x7f57307022e0 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied 01-Dec-2022 00:49:42.986 client @0x7f57307022e0 185.49.142.14#5300 (example.com): query (cache) 'example.com/A/IN' denied
Serveur Minecraft
Tout d'abord avons installer l’environnement d’exécution minimal OpenJDK-Java qui est obligatoire pour exécuter le serveur d’application Minecraft programmé en Java :
-apt install openjdk-17-jre-headless
Puis nous avons installé l'utilitaire screen :
-apt install screen
L’étape suivante consiste à libérer le port TCP 25565 :
-ufw allow 25565
Puis nous avons télécharger le serveur d'application Minecraft ( fichier server.jar )par la commande wget. Après avoir téléchargé le fichier server.jar, on peut exécuter le serveur. Pour ce faire, one doit d'abbord lancer la commande screen.
-screen
Pour lancer le serveur:
-java -Xms1G -Xmx2G -jar server.jar nogui
Si on exécute la commande pour la première fois on obtient un message d'erreur car le fichier eula.txt n’a donc pas pu être chargé (EULA pour End User License Agreement). Donc il faut l'ouvrir et accepter les conditions générales d’utilisation :
-vim eula.txt
Dans le fichier on change eula=false par eula=true.
Maintenant on peut lancer le serveur par la commande:
-java -Xms1G -Xmx2G -jar server.jar nogui
Pour que le serveur reste actif lorsque on se déconnectee du serveur à distance :
-screen -r 32646
Test : On a testé le serveur dur le site mcsrvstat.us :
Le site nous indique qu'il s'agit bien d'un serveur Minecraft