TP sysres IMA2a5 2020/2021 G1 : Différence entre versions

De Wiki d'activités IMA
 
(91 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
''Login: '''''root''''' & password: '''''glopglopglop'''''
 +
''
  
== Présentation du projet ==
+
== '''Introduction''' ==
 +
Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système, nous avons eu à installer une machine virtuelle Xen et à y configurer des services. Enfin la mise en place d’un réseau WiFi sécurisé et d’un site web sécurisé nous ont permis de mettre en pratique nos connaissances en la matière.
  
  
== Partie Hardware ==
+
== '''Partie Hardware''' ==
 
 
 
Nécessité  de changer le rack. Nous avons eu la chance d'avoir à notre disposition du matériel récent que la classe s'est empressée d'installer.
 
Nécessité  de changer le rack. Nous avons eu la chance d'avoir à notre disposition du matériel récent que la classe s'est empressée d'installer.
 
Les cartes et alimentations enfichées dans le rack initialement contenu dans la baie ont été retirées une à une afin de l'alléger. Ensuite le rack (non E) a été retiré. Puis le nouveau rack (E) a été mis dans la baie. Les points de fixations ont du être adaptés. Suivi par "l’en-fichage" des alimentations ainsi que des nouvelles cartes, correspondant au nouveau rack.
 
Les cartes et alimentations enfichées dans le rack initialement contenu dans la baie ont été retirées une à une afin de l'alléger. Ensuite le rack (non E) a été retiré. Puis le nouveau rack (E) a été mis dans la baie. Les points de fixations ont du être adaptés. Suivi par "l’en-fichage" des alimentations ainsi que des nouvelles cartes, correspondant au nouveau rack.
  
  
== Serveur & Disques ==
+
== '''Serveur & Disques''' ==
 +
Lors de la première séance de TP, nous avons voulu rajouter des nouveaux disques sur le serveur ''capbreton''. Pour cela, nous avons extrait un disque d'un autre serveur, ainsi qu'un  disque présent sur le serveur ''capbreton'' afin de les comparer: berceau identique, taille du disque, emplacement de la connectique.
  
  
== Machine virtuelle: Installation et Configuration ==
+
== '''Installation des systèmes d’exploitation''' ==
'''Connexion au serveur'''
 
  
Dans le cadre de notre TP, nous avons du créer nos machines virtuelles sur le serveur ''capbreton''.
+
===Connexion au serveur===
 +
 
 +
Dans le cadre de notre TP, nous avons du créer nos machines virtuelles sur le serveur ''capbreton'':
 +
 +
ssh capbreton.plil.info
 +
 
 +
===Création de la Machine Virtuelle===
  
 
Grace à la commande ci-dessous, on définit:
 
Grace à la commande ci-dessous, on définit:
*
+
*Le nom de la machine: rafale
 +
*Son adresse IP: 193.48.57.164
  
 
  xen-create-image --hostname rafale --ip 193.48.57.164 --gateway 193.48.57.163 --dir /usr/local/xen --dist beowulf
 
  xen-create-image --hostname rafale --ip 193.48.57.164 --gateway 193.48.57.163 --dir /usr/local/xen --dist beowulf
  
On peut utiliser la commande suivante (sur un autre terminal) afin d'afficher l'avancement de l'installation de la machine:
+
Dans un autre terminal, on peut utiliser la commande suivante afin d'afficher l'avancement de l'installation de la machine:
  
 
  tail -f /var/log/xen-tools/rafale.cfg
 
  tail -f /var/log/xen-tools/rafale.cfg
 +
 +
===Configuration de la Machine Virtuelle===
 +
 +
vim /etc/xen/rafale.cfg
 +
 +
Dans le fichier obtenu, dans la catégorie ''Networking'', il a fallu rajouter le bridge de notre groupe, à savoir '''IMA2a5'''.
 +
 +
#
 +
# Configuration file for the Xen instance rafale, created
 +
# by xen-tools 4.8 on Fri Sep  25 10:23:30 2020.
 +
#
 +
 +
#
 +
#  Kernel + memory size
 +
#
 +
kernel      = '/boot/vmlinuz-4.19.0-9-amd64'
 +
extra      = 'elevator=noop'
 +
ramdisk    = '/boot/initrd.img-4.19.0-9-amd64'
 +
 +
vcpus      = '1'
 +
memory      = '256'
 +
 +
 +
#
 +
#  Disk device(s).
 +
#
 +
root        = '/dev/xvda2 ro'
 +
disk        = [
 +
'file:/usr/local/xen/domains/rafale/disk.img,xvda2,w',
 +
'file:/usr/local/xen/domains/rafale/swap.img,xvda1,w',
 +
]
 +
 +
 +
#
 +
#  Physical volumes
 +
#
 +
 +
 +
#
 +
#  Hostname
 +
#
 +
name        = 'rafale'
 +
 +
#
 +
#  Networking
 +
#
 +
dhcp        = 'dhcp'
 +
vif        = [ 'mac=00:16:3E:92:0E:6D, bridge=IMA2a5' ]
 +
 +
#
 +
#  Behaviour
 +
#
 +
on_poweroff = 'destroy'
 +
on_reboot  = 'restart'
 +
on_crash    = 'restart'
 +
 +
===Home & Var===
 +
 +
Sur ''capbreton'':
 +
 +
lvcreate -L10G -n rafale-home virtual
 +
lvcreate -L10G -n rafale-var virtual
 +
 +
mke2fs /dev/virtual/rafale-home
 +
mke2fs /dev/virtual/rafale-var
 +
 +
Puis dans le fichier ''/etc/xen/rafale.cfg'':
 +
 +
disk    = [
 +
                'file:/usr/local/xen/domains/rafale/disk.img,xvda2,w',
 +
                'file:/usr/local/xen/domains/rafale/swap.img,xvda1,w',             
 +
                        'phy:/dev/virtual/rafale-home,xvdb1,w',
 +
                        'phy:/dev/virtual/rafale-var,xvdb2,w',
 +
                  ]
 +
 +
Afin que Home et Var soient pris en compte par la VM, je me connecte sur cette dernière et modifie le fichier ''/etc/fstab'':
 +
 +
vim /etc/fstab
 +
 +
# /etc/fstab: static file system information.
 +
#
 +
# <file system> <mount point>  <type>  <options>      <dump>  <pass>
 +
proc            /proc          proc    defaults        0      0
 +
devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
 +
/dev/xvda1 none swap sw 0 0
 +
/dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
 +
/dev/xvdb1 /home ext4 defaults 0 2
 +
/dev/xvdb2 /var ext4 defaults 0 2                 
 +
 +
On sort du fichier et on va s'occuper du montage de ''/var'', en passant par un dossier provisoire (''/mnt''):
 +
 +
mount /dev/xvdb2 /mnt
 +
mv /var/* /mnt
 +
umount /mnt
 +
mount -a
 +
 +
On peut taper ''lsblk'' ou bien ''db'' afin de vérifier la bonne utilisation des volumes.
 +
 +
===Démarrage de la Machine Virtuelle===
 +
 +
xen create /etc/xen/rafale.cfg
 +
xen console rafale
 +
 +
Le terminal demande ensuite un login et un mot de passe. Le login par défaut est '''''root''''' et le mot de passe est compliqué. Il apparaît tout en bas de la commande ''tail'' tapée dans un deuxième terminal, ou on peut le récupérer grâce à la commande (dans un terminal connecté sur ''capbreton''):
 +
 +
cat /var/log/xen-tools/rafale.log | grep Password
 +
Root Password  :  jSWVeqxbg58uvrkfByMxvjJ
 +
 +
Cette dernière commande permet de tout simplement afficher la ligne contenant le mot de passe contenue dans le fichier log.
 +
On modifie ensuite ce mot de passe en tapant (sur la VM):
 +
 +
passwd
 +
 +
Le mot de passe est maintenant '''''glopglopglop'''''.
 +
 +
== '''Services Internet''' ==
 +
 +
===Configuration SSH===
 +
 +
Toujours en étant connecté sur la VM, on installe le package ''openssh-server'':
 +
 +
apt install openssh-server
 +
 +
On modifie le fichier de configuration du DNS:
 +
 +
vim /etc/ssh/sshd_config
 +
 +
Puis après avoir modifier ce fichier, on redémarre le SSH:
 +
 +
service ssh restart
 +
[ ok ] Restarting OpenBSD Secure Shell server: sshd.
 +
 +
On peut vérifier que le SSH soit bien en route:
 +
 +
service ssh status
 +
[ ok ] sshd is running.
 +
 +
===Configuration DNS===
 +
 +
On rajoute une option dans le fichier ''/etc/bind/named.conf.options'':
 +
 +
dnssec-enable yes;
 +
 +
On se place dans le dossier ''/etc/bind'' et on crée un nouveau répertoire afin d'y stocker les clés:
 +
 +
cd /etc/bind
 +
mkdir liosaw.site.dnssec
 +
cd liosaw.site.dnssec
 +
 +
On génère ensuite les clés:
 +
 +
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE liosaw.site
 +
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE liosaw.site
 +
 +
Puis on les renomme grâce à ''mv'':
 +
 +
liosaw.site-ksk.key
 +
liosaw.site-ksk.private
 +
liosaw.site-zsk.key
 +
liosaw.site-zsk.private
 +
 +
On apporte quelques modifications à ''/etc/bind/liosaw.site'':
 +
 +
$include /etc/bind/liosaw.dnssec/liosaw.site-ksk.key
 +
$include /etc/bind/liosaw.site.dnssec/liosaw.site-zsk.key
 +
 +
Et on effectue la signature des enregistrements de la zone:
 +
 +
dnssec-signzone -o liosaw.site -k /etc/bind/liosaw.site.dnssec/liosaw.site-ksk liosaw.site /etc/bind/liosaw.site.dnssec/liosaw.site-zsk
 +
 +
Un fichier ''liosaw.site.signed'' a bel et bien été créé dans ''/etc/bind''.
 +
 +
On modifie maintenant le fichier ''/etc/bind/named.conf.local'':
 +
 +
  file "/etc/bind/liosaw.site.signed";
 +
 +
On se rend sur le site ''gandi.net'' et dans la section '''DNSSEC''' on ajoute les clés trouvées dans le fichier ''liosaw.site-ksk.key'':
 +
 +
AwEAActlYbMs52QQoWETq5YrPmmc4xLvY1Ayj5SpEDHb8tX15DmClDC4 KhzLBUeQlWOUZsByYAtTGsz48cJCzqqbxm9F3lZvPU70O2GlCVIOP5QQ TMKasLTcwt2o9548g1nIGKr6todOGbLvsSUSj9C5UeLTGxstkALEOpTc kU5PC4q5wkBXL/8qwlgaX7z/7OQvQXsxktMR2I3G97wE/MwgaNMWka36 o9zcQrGhgPp/oW9wDV2RWOPdeCUP69k1G5atjKoGBtg3S8DaNwh3AMFv BAvk+oUJJqMcLRb7cGuDk2Jo6RzUeZHVKzbSSg1RYuxVcfCbUAU/0UJh T818vNOyA4U=
 +
 +
On redémarre ''Bind9'':
 +
 +
service bind9 restart
 +
 +
On peut ensuite vérifier la chaîne d'authentification grâce à: ''https://dnsviz.net/d/liosaw.site/dnssec/''
 +
 +
===Apache2===
 +
 +
https://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl
 +
 +
Sur la machine virtuelle, on se place dans le dossier ''/etc/apache2/sites-available'' et on crée un fichier ''liosaw.site.conf'' amené à remplacer ''default-ssl.conf'':
 +
 +
cd /etc/apache2/sites-available
 +
vim liosaw.site.conf
 +
 +
<VirtualHost *:80>
 +
    ServerName liosaw.site
 +
    ServerAlias www.liosaw.site
 +
    ServerAdmin lionelsawicz@gmail.com
 +
    DocumentRoot /var/www/html
 +
    Redirect permanent / https://liosaw.site
 +
</VirtualHost>
 +
 +
<VirtualHost *:443>
 +
    ServerName liosaw.site
 +
    ServerAlias www.liosaw.site
 +
    ServerAdmin lionelsawicz@gmail.com
 +
    DocumentRoot /var/www/html
 +
<Directory /var/www/html>
 +
Options -Indexes +FollowSymLinks +MultiViews
 +
AllowOverride none
 +
Require all granted
 +
</Directory>
 +
      SSLEngine on
 +
SSLCertificateFile      /etc/apache2/certif/liosaw.site.crt
 +
SSLCertificateKeyFile  /etc/apache2/certif/liosaw.key
 +
        SSLCACertificateFile    /etc/apache2/certif/GandiStandardSSLCA2.pem
 +
ErrorLog /var/log/apache2/error.liosaw.site-secu.log
 +
CustomLog /var/log/apache2/access.liosaw.site-secu.log combined
 +
</VirtualHost>
 +
 +
 +
===Certificat SSL===
 +
 +
On installe ''mailx'':
 +
 +
apt install bsd-mailx
 +
 +
Ainsi que ''postfix'':
 +
 +
apt install postfix
 +
 +
On choisit les options ''site internet'' puis on entre notre nom de domaine: ''liosaw.site''
 +
 +
On modifie le fichier ''/etc/aliases'':
 +
 +
admin : root
 +
 +
Suivi par la commande:
 +
 +
newaliases
 +
 +
On peut maintenant tester l'envoi d'un mail sur ''admin@liosaw.site''.
 +
 +
On se place dans le répertoire ''/etc/apache2'', on crée un répertoire ''certif''et on se place dans ce dossier :
 +
 +
cd /etc/apache2
 +
mkdir certif
 +
cd certif
 +
 +
Grâce à l'aide fournie sur ''Gandi'', on trouve la commande permettant de générer les clés '''.key''' et '''.csr''':
 +
 +
openssl req -nodes -newkey rsa:2048 -sha256 -keyout liosaw.key -out liosaw.csr
 +
 +
Country Name (2 letter code) [AU]:FR
 +
State or Province Name (full name) [Some-State]:Nord
 +
Locality Name (eg, city) []:Lille
 +
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille
 +
Organizational Unit Name (eg, section) []:SE2A5
 +
Common Name (e.g. server FQDN or YOUR name) []:liosaw.site
 +
Email Address []:lionelsawicz@gmail.com
 +
Please enter the following 'extra' attributes to be sent with your certificate request
 +
A challenge password []:glopglopglop
 +
An optional company name []:
 +
 +
Ensuite on peut se rendre sur ''Gandi'' dans '''SSL Certificates''' et on procède à l'achat du certificat. Pour cela on doit copier le ''.csr'' sur le site:
 +
 +
cat liosaw.csr
 +
 +
-----BEGIN CERTIFICATE REQUEST-----
 +
MIIC9TCCAd0CAQAwgZIxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD
 +
VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDjAMBgNVBAsMBVNF
 +
MkE1MRQwEgYDVQQDDAtsaW9zYXcuc2l0ZTElMCMGCSqGSIb3DQEJARYWbGlvbmVs
 +
c2F3aWN6QGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
 +
AOXk6CAqkOMG+i6z4lWWF/gUaiwkYaeJjAs7JC2iQE5EuImDk1upBNrrQF268ndo
 +
uuSNnTKpL5TahfnU7XsBThG7zGoHABHIcH6cmeIo6o1kpqZTmqCGMlGY0Ox7CJ2c
 +
4hPEXHOwxepde3v/t/iAZoHskL3d81pJIbE3tX7552NPpkQEHrofxgNa/l4l6eXh
 +
5cufN9Wd3hyne+Vz32HXUgjMNoNy0H5Y2Y84fpqMp2ROAXJ9dtMvgGbm3hpMS0a1
 +
R9juGpqkcVgL+e7kAfsTD1AYg3fqhDRYizD/UAuEu65gsxR4a4BBNEBX2LvEIgF1
 +
15wAv4ks1xyVnqp+wDq4IHECAwEAAaAdMBsGCSqGSIb3DQEJBzEODAxnbG9wZ2xv
 +
cGdsb3AwDQYJKoZIhvcNAQELBQADggEBADym12xQF+qtpQYtFFgdtt/HPJI9sFa/
 +
TER/jTslUihwqzPzzUPBZamJsQCLB/VIjsazY1y4axYL31rNnSYQiQoaN2AneHge
 +
EhMAfSExuv0VJxbB6dWew9D3WfT3Lfat2r/FiChuDEqDlYTH6RY4jsTYMD3i8L8l
 +
rGZGdpKjyR6N4EaPAo41f9aoiPcQF8wwXj9yDNcxFwLKR9Ks9pRDw5QrBeeI9E2d
 +
LpoPwO0yoiOlR2J2a2gPQ57IjnznwHS6DO2Fa2LTSUw1d7Rg1DWIserNQgy+JZ2U
 +
HKpPtaZY05Ixsrg4NMFHR+vdL9oN+S8TilDWSrO1YNAHYnkHDEVMKog=
 +
-----END CERTIFICATE REQUEST-----
 +
 +
Et on choisit la vérification par mail. On regarde ses mails grâce à la commande ''mailx'' ou ''mutt'' et on peut finaliser l'achat du certificat.
 +
 +
Suite à cela, on peut télécharger deux fichiers: un ''.pem'' et un '' .crt'' qui seront sur la ''zabeth''. On peut les copier sur la machine virtuelle.
 +
 +
Depuis un terminal ouvert sur la ''zabeth'':
 +
 +
cd /Téléchargement
 +
scp liosaw.site.crt root@193.48.57.164:/etc/apache2/certif
 +
scp GandiStandardSSLCA2.pem root@193.48.57.164:/etc/apache2/certif
 +
 +
 +
 +
== '''Tests d'intrusion''' ==
 +
 +
===Cassage WEP===
 +
 +
apt-get install aircrack-ng
 +
 +
airmon-ng
 +
 +
PHY Interface Driver Chipset
 +
phy3 wlx40a5ef0590b2 rt2800usb Ralink Technology, Corp. RT5370
 +
 +
airmon-ng start wlx40a5ef0590b2
 +
 +
PHY Interface Driver Chipset
 +
phy3 wlan0mon rt2800usb Ralink Technology, Corp. RT5370
 +
 +
airodump-ng --encrypt wep -c 2 wlan0mon
 +
 +
ip link set wlan0mon up
 +
 +
dmseg
 +
 +
apt install firmware-linux-nonfree
 +
 +
airodump-ng --encrypt wep wlan0mon
 +
 +
airodump-ng --encrypt wep -c 9 wlan0mon
 +
 +
04:DA:D2:9C:50:50
 +
 +
airodump-ng -c 9 --bssid 04:DA:D2:9C:50:50 wlan0mon
 +
 +
airodump-ng -c 9 --bssid 04:DA:D2:9C:50:50 -w data.txt wlan0mon
 +
 +
Dans un autre terminal:
 +
 +
aircrack-ng -b 04:DA:D2:9C:50:50 data*.cap
 +
 +
===Cassage WPA===
 +
 +
On procède de la même manière que pour le cassage WEP:
 +
 +
airmon-ng
 +
 +
PHY Interface Driver Chipset
 +
phy3 wlx40a5ef0590b2 rt2800usb Ralink Technology, Corp. RT5370
 +
 +
airmon-ng start wlx40a5ef0590b2
 +
 +
PHY Interface Driver Chipset
 +
phy3 wlan0mon rt2800usb Ralink Technology, Corp. RT5370
 +
 +
 +
airodump-ng --encrypt wpa wlan0mon
 +
 +
airodum-ng --encrypt -c 4 wpa wlan0mon
 +
 +
00:14:1B:60:8C:20
 +
 +
On crée un dictionnaire de mots de passe grâce à ''crunch'':
 +
 +
crunch 8 8 0123456789 >> dico_mdp.txt
 +
 +
Dans un autre terminal:
 +
 +
aircrack-ng data*.cap -w dico_mdp.txt
 +
 +
Aircrack-ng 1.5.2
 +
[00:39:37] 10189509/102795810 keys tested (5109.71 k/s)
 +
Time left: 5 hours, 2 minutes, 6 seconds                  9.91%
 +
                      KEY FOUND! [ 10222222 ]
 +
Master Key    : 30 D0 05 C7 07 62 21 5B 2F EA DA 24 D2 69 2B 2E
 +
                  0A 3A E3 92 13 1A C2 11 4A 94 09 B9 23 8E D1 D5
 +
Transient Key  : 5C CA 88 B1 E8 C7 71 88 1F 32 36 28 66 90 F4 88
 +
                  A1 DD 58 C6 E7 09 2C 8D 8D CA A6 F4 D8 A0 6A A9
 +
                  D6 AF 1C 18 93 B4 6A 51 8B 8F 3E 97 96 7C 1C 61
 +
                  0E 15 78 82 D1 91 BB 5C 84 F5 A4 9D E5 D2 C9 E5
 +
EAPOL HMAC    : A7 CA 2F 8E 12 05 BF 54 43 02 D0 75 00 2F 72 63
 +
 +
 +
== '''Réalisations''' ==
 +
 +
===Sécurisation de données===
 +
 +
https://doc.ubuntu-fr.org/raid_logiciel
 +
 +
On crée trois partitions sur ''Capbreton'':
 +
 +
lvcreate -L1G -n rafale-raid1 virtual
 +
lvcreate -L1G -n rafale-raid2 virtual
 +
lvcreate -L1G -n rafale-raid3 virtual
 +
 +
On peut vérifier grâce à la commande ''lvdisplay''
 +
 +
mke2fs /dev/virtual/rafale-raid1
 +
mke2fs /dev/virtual/rafale-raid2
 +
mke2fs /dev/virtual/rafale-raid3
 +
 +
On éteint la machine virtuelle:
 +
 +
xen shut rafale
 +
 +
Et on modifie le fichier de configuration:
 +
 +
disk= [  ......................
 +
            'phy:/dev/virtual/rafale-raid1,xvdb3,w',
 +
            'phy:/dev/virtual/rafale-raid2,xvdb4,w',
 +
            'phy:/dev/virtual/rafale-raid3,xvdb5,w',
 +
]
 +
 +
On redémarre la machine virtuelle:
 +
 +
xen create /etc/xen/rafale.cfg
 +
 +
Puis on se connecte avec un ''xen console rafale'' ou ''ssh root@193.48.57.164'' et on installe mdadm:
 +
 +
apt-get install mdadm
 +
 +
On construit le volume RAID ''md0'':
 +
 +
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
 +
 +
On termine la construction par la daemonisation du volume RAID. On fait en sorte que le système charge le volume à chaque démarrage:
 +
 +
  mdadm --monitor --daemonise /dev/md0
 +
 +
On formate le volume RAID:
 +
 +
mkfs.ext4 /dev/md0
 +
 +
On modifie maintenant le fichier ''/etc/fstab'' afin d'y inclure ''md0'':
 +
 +
/dev/md127 /media/raid ext4 defaults 0 1
 +
 +
Et on crée le dossier ''/media/raid'':
 +
 +
mkdir /media/raid
 +
 +
Grâce à la commande ''fdisk -l '', on peut obtenir des informations sur les disques.
 +
(''md0'' est devenu ''md127'' entre temps.)
 +
 +
mount -a
 +
 +
===Chiffrement de données===
 +
 +
 +
Sur la ''zabeth'', on commence par installer ''lvm2'' et ''cryptsetup'':
 +
 +
apt-get install lvm2
 +
apt-get install cryptsetup
 +
 +
Ensuite on affiche les périphériques disponibles:
 +
 +
lsblk
 +
 +
Puis on accède à un menu permettant d'effectuer des manipulations sur la clé:
 +
 +
fdisk /dev/sdb
 +
 +
On peut supprimer les partitions existantes avec ''d'' puis en créer une nouvelle avec ''n'' puis ''p'' puis valider toutes les options par défaut.
 +
 +
On peut maintenant chiffrer le périphérique:
 +
 +
cryptsetup luksFormat -c aes -h sha256 /dev/sdb1
 +
 +
cryptsetup open --type luks /dev/sda1 home
 +
 +
cryptsetup close --type luks home

Version actuelle datée du 20 novembre 2020 à 11:40

Login: root & password: glopglopglop

Introduction

Ce TP consiste en la réalisation d’une maquette de réseau permettant de manipuler les protocoles de redondance réseau ainsi que le protocole réseau IPv6. D’un point de vue système, nous avons eu à installer une machine virtuelle Xen et à y configurer des services. Enfin la mise en place d’un réseau WiFi sécurisé et d’un site web sécurisé nous ont permis de mettre en pratique nos connaissances en la matière.


Partie Hardware

Nécessité de changer le rack. Nous avons eu la chance d'avoir à notre disposition du matériel récent que la classe s'est empressée d'installer. Les cartes et alimentations enfichées dans le rack initialement contenu dans la baie ont été retirées une à une afin de l'alléger. Ensuite le rack (non E) a été retiré. Puis le nouveau rack (E) a été mis dans la baie. Les points de fixations ont du être adaptés. Suivi par "l’en-fichage" des alimentations ainsi que des nouvelles cartes, correspondant au nouveau rack.


Serveur & Disques

Lors de la première séance de TP, nous avons voulu rajouter des nouveaux disques sur le serveur capbreton. Pour cela, nous avons extrait un disque d'un autre serveur, ainsi qu'un disque présent sur le serveur capbreton afin de les comparer: berceau identique, taille du disque, emplacement de la connectique.


Installation des systèmes d’exploitation

Connexion au serveur

Dans le cadre de notre TP, nous avons du créer nos machines virtuelles sur le serveur capbreton:

ssh capbreton.plil.info

Création de la Machine Virtuelle

Grace à la commande ci-dessous, on définit:

  • Le nom de la machine: rafale
  • Son adresse IP: 193.48.57.164
xen-create-image --hostname rafale --ip 193.48.57.164 --gateway 193.48.57.163 --dir /usr/local/xen --dist beowulf

Dans un autre terminal, on peut utiliser la commande suivante afin d'afficher l'avancement de l'installation de la machine:

tail -f /var/log/xen-tools/rafale.cfg

Configuration de la Machine Virtuelle

vim /etc/xen/rafale.cfg

Dans le fichier obtenu, dans la catégorie Networking, il a fallu rajouter le bridge de notre groupe, à savoir IMA2a5.

#
# Configuration file for the Xen instance rafale, created
# by xen-tools 4.8 on Fri Sep  25 10:23:30 2020.
#

#
#  Kernel + memory size
#
kernel      = '/boot/vmlinuz-4.19.0-9-amd64'
extra       = 'elevator=noop'
ramdisk     = '/boot/initrd.img-4.19.0-9-amd64'

vcpus       = '1'
memory      = '256'


#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
'file:/usr/local/xen/domains/rafale/disk.img,xvda2,w',
'file:/usr/local/xen/domains/rafale/swap.img,xvda1,w',
]


#
#  Physical volumes
#


#
#  Hostname
#
name        = 'rafale'

#
#  Networking
#
dhcp        = 'dhcp'
vif         = [ 'mac=00:16:3E:92:0E:6D, bridge=IMA2a5' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

Home & Var

Sur capbreton:

lvcreate -L10G -n rafale-home virtual
lvcreate -L10G -n rafale-var virtual
mke2fs /dev/virtual/rafale-home
mke2fs /dev/virtual/rafale-var

Puis dans le fichier /etc/xen/rafale.cfg:

disk    	= [
                	'file:/usr/local/xen/domains/rafale/disk.img,xvda2,w',
                	'file:/usr/local/xen/domains/rafale/swap.img,xvda1,w',               
                       'phy:/dev/virtual/rafale-home,xvdb1,w',
                       'phy:/dev/virtual/rafale-var,xvdb2,w',
                 ]

Afin que Home et Var soient pris en compte par la VM, je me connecte sur cette dernière et modifie le fichier /etc/fstab:

vim /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
devpts          /dev/pts        devpts  rw,noexec,nosuid,gid=5,mode=620 0  0
/dev/xvda1 none swap sw 0 0
/dev/xvda2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
/dev/xvdb1		/home		ext4		defaults				0		2
/dev/xvdb2		/var		ext4		defaults				0		2                   

On sort du fichier et on va s'occuper du montage de /var, en passant par un dossier provisoire (/mnt):

mount /dev/xvdb2 /mnt
mv /var/* /mnt
umount /mnt
mount -a

On peut taper lsblk ou bien db afin de vérifier la bonne utilisation des volumes.

Démarrage de la Machine Virtuelle

xen create /etc/xen/rafale.cfg
xen console rafale

Le terminal demande ensuite un login et un mot de passe. Le login par défaut est root et le mot de passe est compliqué. Il apparaît tout en bas de la commande tail tapée dans un deuxième terminal, ou on peut le récupérer grâce à la commande (dans un terminal connecté sur capbreton):

cat /var/log/xen-tools/rafale.log | grep Password
Root Password   :  jSWVeqxbg58uvrkfByMxvjJ

Cette dernière commande permet de tout simplement afficher la ligne contenant le mot de passe contenue dans le fichier log. On modifie ensuite ce mot de passe en tapant (sur la VM):

passwd

Le mot de passe est maintenant glopglopglop.

Services Internet

Configuration SSH

Toujours en étant connecté sur la VM, on installe le package openssh-server:

apt install openssh-server

On modifie le fichier de configuration du DNS:

vim /etc/ssh/sshd_config

Puis après avoir modifier ce fichier, on redémarre le SSH:

service ssh restart
[ ok ] Restarting OpenBSD Secure Shell server: sshd.

On peut vérifier que le SSH soit bien en route:

service ssh status
[ ok ] sshd is running.

Configuration DNS

On rajoute une option dans le fichier /etc/bind/named.conf.options:

dnssec-enable yes;

On se place dans le dossier /etc/bind et on crée un nouveau répertoire afin d'y stocker les clés:

cd /etc/bind
mkdir liosaw.site.dnssec
cd liosaw.site.dnssec

On génère ensuite les clés:

dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE liosaw.site
dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE liosaw.site

Puis on les renomme grâce à mv:

liosaw.site-ksk.key
liosaw.site-ksk.private
liosaw.site-zsk.key
liosaw.site-zsk.private

On apporte quelques modifications à /etc/bind/liosaw.site:

$include /etc/bind/liosaw.dnssec/liosaw.site-ksk.key
$include /etc/bind/liosaw.site.dnssec/liosaw.site-zsk.key

Et on effectue la signature des enregistrements de la zone:

dnssec-signzone -o liosaw.site -k /etc/bind/liosaw.site.dnssec/liosaw.site-ksk liosaw.site /etc/bind/liosaw.site.dnssec/liosaw.site-zsk

Un fichier liosaw.site.signed a bel et bien été créé dans /etc/bind.

On modifie maintenant le fichier /etc/bind/named.conf.local:

 file "/etc/bind/liosaw.site.signed";

On se rend sur le site gandi.net et dans la section DNSSEC on ajoute les clés trouvées dans le fichier liosaw.site-ksk.key:

AwEAActlYbMs52QQoWETq5YrPmmc4xLvY1Ayj5SpEDHb8tX15DmClDC4 KhzLBUeQlWOUZsByYAtTGsz48cJCzqqbxm9F3lZvPU70O2GlCVIOP5QQ TMKasLTcwt2o9548g1nIGKr6todOGbLvsSUSj9C5UeLTGxstkALEOpTc kU5PC4q5wkBXL/8qwlgaX7z/7OQvQXsxktMR2I3G97wE/MwgaNMWka36 o9zcQrGhgPp/oW9wDV2RWOPdeCUP69k1G5atjKoGBtg3S8DaNwh3AMFv BAvk+oUJJqMcLRb7cGuDk2Jo6RzUeZHVKzbSSg1RYuxVcfCbUAU/0UJh T818vNOyA4U=

On redémarre Bind9:

service bind9 restart

On peut ensuite vérifier la chaîne d'authentification grâce à: https://dnsviz.net/d/liosaw.site/dnssec/

Apache2

https://doc.ubuntu-fr.org/tutoriel/securiser_apache2_avec_ssl

Sur la machine virtuelle, on se place dans le dossier /etc/apache2/sites-available et on crée un fichier liosaw.site.conf amené à remplacer default-ssl.conf:

cd /etc/apache2/sites-available
vim liosaw.site.conf
<VirtualHost *:80>
   ServerName liosaw.site
   ServerAlias www.liosaw.site
   ServerAdmin lionelsawicz@gmail.com
   DocumentRoot /var/www/html
   Redirect permanent / https://liosaw.site

</VirtualHost>

<VirtualHost *:443>

   ServerName liosaw.site
   ServerAlias www.liosaw.site
   ServerAdmin lionelsawicz@gmail.com
   DocumentRoot /var/www/html

<Directory /var/www/html> Options -Indexes +FollowSymLinks +MultiViews AllowOverride none Require all granted </Directory>

     	SSLEngine on

SSLCertificateFile /etc/apache2/certif/liosaw.site.crt SSLCertificateKeyFile /etc/apache2/certif/liosaw.key

       SSLCACertificateFile    /etc/apache2/certif/GandiStandardSSLCA2.pem

ErrorLog /var/log/apache2/error.liosaw.site-secu.log CustomLog /var/log/apache2/access.liosaw.site-secu.log combined </VirtualHost>


Certificat SSL

On installe mailx:

apt install bsd-mailx

Ainsi que postfix:

apt install postfix

On choisit les options site internet puis on entre notre nom de domaine: liosaw.site

On modifie le fichier /etc/aliases:

admin : root

Suivi par la commande:

newaliases

On peut maintenant tester l'envoi d'un mail sur admin@liosaw.site.

On se place dans le répertoire /etc/apache2, on crée un répertoire certifet on se place dans ce dossier :

cd /etc/apache2
mkdir certif
cd certif

Grâce à l'aide fournie sur Gandi, on trouve la commande permettant de générer les clés .key et .csr:

openssl req -nodes -newkey rsa:2048 -sha256 -keyout liosaw.key -out liosaw.csr
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Nord
Locality Name (eg, city) []:Lille
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Polytech Lille
Organizational Unit Name (eg, section) []:SE2A5
Common Name (e.g. server FQDN or YOUR name) []:liosaw.site
Email Address []:lionelsawicz@gmail.com
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:glopglopglop
An optional company name []:

Ensuite on peut se rendre sur Gandi dans SSL Certificates et on procède à l'achat du certificat. Pour cela on doit copier le .csr sur le site:

cat liosaw.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIC9TCCAd0CAQAwgZIxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD
VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDjAMBgNVBAsMBVNF
MkE1MRQwEgYDVQQDDAtsaW9zYXcuc2l0ZTElMCMGCSqGSIb3DQEJARYWbGlvbmVs
c2F3aWN6QGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AOXk6CAqkOMG+i6z4lWWF/gUaiwkYaeJjAs7JC2iQE5EuImDk1upBNrrQF268ndo
uuSNnTKpL5TahfnU7XsBThG7zGoHABHIcH6cmeIo6o1kpqZTmqCGMlGY0Ox7CJ2c
4hPEXHOwxepde3v/t/iAZoHskL3d81pJIbE3tX7552NPpkQEHrofxgNa/l4l6eXh
5cufN9Wd3hyne+Vz32HXUgjMNoNy0H5Y2Y84fpqMp2ROAXJ9dtMvgGbm3hpMS0a1
R9juGpqkcVgL+e7kAfsTD1AYg3fqhDRYizD/UAuEu65gsxR4a4BBNEBX2LvEIgF1
15wAv4ks1xyVnqp+wDq4IHECAwEAAaAdMBsGCSqGSIb3DQEJBzEODAxnbG9wZ2xv
cGdsb3AwDQYJKoZIhvcNAQELBQADggEBADym12xQF+qtpQYtFFgdtt/HPJI9sFa/
TER/jTslUihwqzPzzUPBZamJsQCLB/VIjsazY1y4axYL31rNnSYQiQoaN2AneHge
EhMAfSExuv0VJxbB6dWew9D3WfT3Lfat2r/FiChuDEqDlYTH6RY4jsTYMD3i8L8l
rGZGdpKjyR6N4EaPAo41f9aoiPcQF8wwXj9yDNcxFwLKR9Ks9pRDw5QrBeeI9E2d
LpoPwO0yoiOlR2J2a2gPQ57IjnznwHS6DO2Fa2LTSUw1d7Rg1DWIserNQgy+JZ2U
HKpPtaZY05Ixsrg4NMFHR+vdL9oN+S8TilDWSrO1YNAHYnkHDEVMKog=
-----END CERTIFICATE REQUEST-----

Et on choisit la vérification par mail. On regarde ses mails grâce à la commande mailx ou mutt et on peut finaliser l'achat du certificat.

Suite à cela, on peut télécharger deux fichiers: un .pem et un .crt qui seront sur la zabeth. On peut les copier sur la machine virtuelle.

Depuis un terminal ouvert sur la zabeth:

cd /Téléchargement
scp liosaw.site.crt root@193.48.57.164:/etc/apache2/certif
scp GandiStandardSSLCA2.pem root@193.48.57.164:/etc/apache2/certif


Tests d'intrusion

Cassage WEP

apt-get install aircrack-ng
airmon-ng

PHY	Interface	Driver		Chipset
phy3	wlx40a5ef0590b2	rt2800usb	Ralink Technology, Corp. RT5370
airmon-ng start wlx40a5ef0590b2

PHY	Interface	Driver		Chipset
phy3	wlan0mon	rt2800usb	Ralink Technology, Corp. RT5370
airodump-ng --encrypt wep -c 2 wlan0mon
ip link set wlan0mon up
dmseg
apt install firmware-linux-nonfree
airodump-ng --encrypt wep wlan0mon
airodump-ng --encrypt wep -c 9 wlan0mon

04:DA:D2:9C:50:50

airodump-ng -c 9 --bssid 04:DA:D2:9C:50:50 wlan0mon
airodump-ng -c 9 --bssid 04:DA:D2:9C:50:50 -w data.txt wlan0mon

Dans un autre terminal:

aircrack-ng -b 04:DA:D2:9C:50:50 data*.cap

Cassage WPA

On procède de la même manière que pour le cassage WEP:

airmon-ng

PHY	Interface	Driver		Chipset
phy3	wlx40a5ef0590b2	rt2800usb	Ralink Technology, Corp. RT5370
airmon-ng start wlx40a5ef0590b2

PHY	Interface	Driver		Chipset
phy3	wlan0mon	rt2800usb	Ralink Technology, Corp. RT5370


airodump-ng --encrypt wpa wlan0mon
airodum-ng --encrypt -c 4 wpa wlan0mon

00:14:1B:60:8C:20

On crée un dictionnaire de mots de passe grâce à crunch:

crunch 8 8 0123456789 >> dico_mdp.txt

Dans un autre terminal:

aircrack-ng data*.cap -w dico_mdp.txt
Aircrack-ng 1.5.2 
[00:39:37] 10189509/102795810 keys tested (5109.71 k/s) 
Time left: 5 hours, 2 minutes, 6 seconds                   9.91%
                     KEY FOUND! [ 10222222 ]
Master Key     : 30 D0 05 C7 07 62 21 5B 2F EA DA 24 D2 69 2B 2E 
                 0A 3A E3 92 13 1A C2 11 4A 94 09 B9 23 8E D1 D5 
Transient Key  : 5C CA 88 B1 E8 C7 71 88 1F 32 36 28 66 90 F4 88 
                 A1 DD 58 C6 E7 09 2C 8D 8D CA A6 F4 D8 A0 6A A9 
                 D6 AF 1C 18 93 B4 6A 51 8B 8F 3E 97 96 7C 1C 61 
                 0E 15 78 82 D1 91 BB 5C 84 F5 A4 9D E5 D2 C9 E5 
EAPOL HMAC     : A7 CA 2F 8E 12 05 BF 54 43 02 D0 75 00 2F 72 63


Réalisations

Sécurisation de données

https://doc.ubuntu-fr.org/raid_logiciel

On crée trois partitions sur Capbreton:

lvcreate -L1G -n rafale-raid1 virtual
lvcreate -L1G -n rafale-raid2 virtual
lvcreate -L1G -n rafale-raid3 virtual

On peut vérifier grâce à la commande lvdisplay

mke2fs /dev/virtual/rafale-raid1
mke2fs /dev/virtual/rafale-raid2
mke2fs /dev/virtual/rafale-raid3

On éteint la machine virtuelle:

xen shut rafale

Et on modifie le fichier de configuration:

disk= [   ......................
            'phy:/dev/virtual/rafale-raid1,xvdb3,w',
            'phy:/dev/virtual/rafale-raid2,xvdb4,w',
            'phy:/dev/virtual/rafale-raid3,xvdb5,w',
]

On redémarre la machine virtuelle:

xen create /etc/xen/rafale.cfg

Puis on se connecte avec un xen console rafale ou ssh root@193.48.57.164 et on installe mdadm:

apt-get install mdadm

On construit le volume RAID md0:

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5

On termine la construction par la daemonisation du volume RAID. On fait en sorte que le système charge le volume à chaque démarrage:

 mdadm --monitor --daemonise /dev/md0

On formate le volume RAID:

mkfs.ext4 /dev/md0

On modifie maintenant le fichier /etc/fstab afin d'y inclure md0:

/dev/md127 	/media/raid	ext4	defaults 	0	1

Et on crée le dossier /media/raid:

mkdir /media/raid

Grâce à la commande fdisk -l , on peut obtenir des informations sur les disques. (md0 est devenu md127 entre temps.)

mount -a

Chiffrement de données

Sur la zabeth, on commence par installer lvm2 et cryptsetup:

apt-get install lvm2
apt-get install cryptsetup

Ensuite on affiche les périphériques disponibles:

lsblk

Puis on accède à un menu permettant d'effectuer des manipulations sur la clé:

fdisk /dev/sdb

On peut supprimer les partitions existantes avec d puis en créer une nouvelle avec n puis p puis valider toutes les options par défaut.

On peut maintenant chiffrer le périphérique:

cryptsetup luksFormat -c aes -h sha256 /dev/sdb1
cryptsetup open --type luks /dev/sda1 home
cryptsetup close --type luks home