TP sysres IMA2a5 2019/2020 G2

De Wiki d'activités IMA
Révision datée du 29 novembre 2019 à 15:32 par Lmollet (discussion | contributions) (Sécurisation Wifi par WPA2-EAP)
Ekaterina ISHCHUK & Loick MOLLET


Introduction

Installation des systèmes d'exploitation

Configuration Zabeth05

Pour configurer Zabeth05 à reenvoyer eth1 à eth0 nous ajoutons:

   iface bridge inet dhcp
   bridge_ports eth0, eth1
   bridge_hw 172.26.145.55 # adresse de Zabeth05

Installation d'une machien virtuelle Xen

D'abord on connect sur la machine

   cordouan.insecserv.deule.net

Puis, pour créer une machine virtuelle, on lance la commande ci-dessous:

  xen-create-image --hostname=ima2a5-mol-ish --dhcp --dir=/usr/local/xen --dist=ascii --apt_proxy=http://proxy.polytech-lille.fr:3128 --mirror=http://fr.deb.devuan.org/merged/ --force

Pour observer le processus d'installation pas à pas, il faut lancer un deuxième terminal et taper:

   tail -f /var/log/xen-tools/ima2a5-mol-ish.log

Dès que l'installation est finie, le résultat;

   Installation Summary
   ---------------------
   Hostname        :  ima2a5-mol-ish
   Distribution    :  ascii
   MAC Address     :  00:16:3E:2F:02:1D
   IP Address(es)  :  dynamic
   SSH Fingerprint :  SHA256:kDLhqDm3Aqt2sIPrhCoFhRGyk4yY3H7VS6KCAO/4Qf0 (DSA)
   SSH Fingerprint :  SHA256:xfQpYfkg1fRXYaVDnDMuT+XTSCh2BgaSmcnF+etOjxc (ECDSA)
   SSH Fingerprint :  SHA256:U2hWpq2wPg16SOpZp9dE6fyY/21PHGAG2fBNz10P4DM (ED25519)
   SSH Fingerprint :  SHA256:YXQFkzNUymvUMMgvypJ73REhRb6RbTjs6FrWiuKXQso (RSA)
   Root Password   :  M9zWc6KYtykXkSC8w8qJ9Ze

On change le mot de passe à "glopglop" avec la commande:

   passwd

Ensuite on doit modifier la configuration "/etc/xen/ima2a5-mol-ish.cfg"

   vif = ['mac=00:16:3E:2F:02:1D, bridge=IMA2a5']

Maintenant on peut créer le domaine et lancer la machine:

  xl create ima2a5-mol-ish.cfg
  xl console ima2a5-mol-ish

Pour créer des volumes on passe des commandes suivantes :

   lvcreate -L10G -n im2a5-mol-ish-home virtual
   lvcreate -L10G -n im2a6-mol-ish-var virtual

Egalement le système des fichiers:

   mke2fs /dev/virtual/im2a5-mol-ish-home
   mke2fs /dev/virtual/im2a5-mol-ish-var

Après on doit modifier le fichier "/etc/xen/ima2a5-mol-ish.cfg" en ajoutant les lignes suivantes:

  disk = [...., 'phy:/dev/virtual/im2a5-mol-ish-home,xvdb1,w',
                'phy:/dev/virtual/im2a5-mol-ish-var,xvdb2,w',]

Maintenant on peut accéder à notre machine virtuelle

   xl console ima2a5-mol-ish

Cette commande nous permet de logger root / glopglop

On vérifie si les volumes sont bien installés:

   fdisk -l

Problème recontré : les volumes n'étaient pas pris en compte. Il fallait détruire la machine par "xl destroy " et puis relancer la création de la machine.

Pour appliquer des volumes avec chaque démarrage, on modifie le fichier "/etc/fstab" de la machine. On ajoute à la fin de fichier :

  /dev/xvdb1		/home		ext4		defaults				0		2
  # /dev/xvdb2		/var		ext4		defaults				0		2

Il faut bien comment la ligne de /var car les manupulation avec ce dossier avant le montage peuvent provoquer des problèmes, que nous avons rencontrés. En tapant "ls /home" on retrouve bien "last+found" = le système des fichiers

Pour assurer le système des fichiers pour /var, on possède au montage:

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

Maintenante on peut decommenter la ligne de '/var' dans le fichier "/etc/fstab":

  /dev/xvdb2		/var		ext4		defaults				0		2


Après ces instructions on vérifie bien par "df":

  root@ima2a5-mol-ish:/etc/network# df
  Filesystem     1K-blocks   Used Available Use% Mounted on
  udev              109076      0    109076   0% /dev
  tmpfs              24528     76     24452   1% /run
  /dev/xvda2       4062912 406352   3430464  11% /
  tmpfs               5120      0      5120   0% /run/lock
  tmpfs             153900      0    153900   0% /run/shm
  /dev/xvdb1      10321208  23028   9773892   1% /home
  /dev/xvdb2      10321208 156552   9640368   2% /var


Configuration du réseau via /etc/network/interfaces:

 auto lo
 iface lo inet loopback
 auto eth0
 iface eth0 inet static
   address 193.48.57.162
   netmask 255.255.255.240
   gateway 193.48.57.172


Maintenant on peut accéder aux autres machines virtuels connectés sur le bridge IMA2a5 :

 root@ima2a5-mol-ish:~# ping 193.48.57.163
 PING 193.48.57.163 (193.48.57.163) 56(84) bytes of data.
 64 bytes from 193.48.57.163: icmp_seq=1 ttl=64 time=0.350 ms
 64 bytes from 193.48.57.163: icmp_seq=2 ttl=64 time=0.304 ms
 64 bytes from 193.48.57.163: icmp_seq=3 ttl=64 time=0.327 ms


Dès que la machien est connectée vers le réseau et possède l'accès Internet, on peut procéder l'installation de SSH, apache and bind

 apt-get install openssh-server
 apt-get install apache2
 apt-get install bind9


Configuration SSH

Après avoir installé openssh, on configure le fichier /etc/ssh/sshd_config


   # Authentication:
   #LoginGraceTime 2m
   PermitRootLogin yes <= CHANGE
   #StrictModes yes
   #MaxAuthTries 6
   #MaxSessions 10
   PubkeyAuthentication yes <= CHANGE
   # Expect .ssh/authorized_keys2 to be disregarded by default in future.
   #AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_keys2
   #AuthorizedPrincipalsFile none
   #AuthorizedKeysCommand none
   #AuthorizedKeysCommandUser nobody
   # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
   #HostbasedAuthentication no
   # Change to yes if you don't trust ~/.ssh/known_hosts for
   # HostbasedAuthentication
   #IgnoreUserKnownHosts no
   # Don't read the user's ~/.rhosts and ~/.shosts files
   #IgnoreRhosts yes
   # To disable tunneled clear text passwords, change to no here!
   PasswordAuthentication yes <= CHANGE
   #PermitEmptyPasswords no

Puis on faire un restart : service ssh restart

Services internet

Site internet, configuration et sécurisation

Pour héberger le site avec un nom de domaine, on achète un nom de domaine "ima2a5-mol-ish.site" sur gandi.net Premièrement, nous achetons un certificat SSL. Deuxièmement, il faut configurer les "nameservers" : au lieu d'avoir des serveurs proposés, on ajoute:

   dns.ima2a5-mol-ish.site 193.48.57.162
   ns6.gandi.net 217.70.177.40

Cela va prendre un peu de temps. Vérifier des changements on peut avec https://dnslookup.fr/ima2a5-mol-ish.site

Sécurisation par DNSSEC

Pour sécuriser le server en DNSSEC il faut d'abord générer deux paires des clés : ZSK et KSK formats

   cd /etc/bind
   mkdir ima2a5-mol-ish.site.dnssec
   cd ima2a5-mol-ish.site.dnssec
   dnssec-keygen -r /dev/urandom -a RSASHA1 -b 2048 -f KSK -n ZONE ima2a5-mol-ish.site
   dnssec-keygen -r /dev/urandom -a RSASHA1 -b 1024 -n ZONE ima2a5-mol-ish.site

Les clés générés on renome:

   mv Kima2a5-mol-ish.site.+005+42049.key ima2a5-mol-ish.site-ksk.key
   mv Kima2a5-mol-ish.site.+005+42049.private ima2a5-mol-ish.site-ksk.private
   mv Kima2a5-mol-ish.site.+005+56373.key ima2a5-mol-ish.site-zsk.key
   mv Kima2a5-mol-ish.site.+005+56373.private ima2a5-mol-ish.site-zsk.private

Puis on peut créer le fichier de configuration dans /etc/bind/ima2a5-mol-ish.site

   $TTL 259200
   $include /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-ksk.key
   $include /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-zsk.key
   @ IN SOA dns.ima2a5-mol-ish.site. root@ima2a5-mol-ish.site. (
            20191128 ; Version
            7200 ; Refresh (2h)
            3600 ; Retry (1h)
            1209600 ; Expire (14j)
            7200 ; Minimum TTL (2j)
   )
   @    IN NS  dns.ima2a5-mol-ish.site.   #dns ima
   @    IN NS  ns6.gandi.net.        #dns gandi
   www  IN A   193.48.57.162  #@IP website ima2a-mol-ish
   dns  IN A   193.48.57.162


Pour que nos modification soient prise en compte nos devons donc signer notre fichier de configuration:

   dnssec-signzone -o ima2a5-mol-ish.site -k /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-ksk ima2a5-mol-ish.site /etc/bind/ima2a5-mol-ish.site.dnssec/ima2a5-mol-ish.site-zsk

Cela nous génére le fichier ima2a5-mol-ish.site.signed. Il faut le rajouter dans la configuration named.conf.local :

   root@ima2a5-mol-ish:/etc/bind# cat named.conf.local 
   zone "ima2a5-mol-ish.site" {
   type master;
   file "/etc/bind/ima2a5-mol-ish.site.signed"
   };

On modifie également notre fichier named.conf.options afin d'activer le DNSSEC

  root@ima2a5-mol-ish:/etc/bind# cat named.conf.options 
  options {
       directory "/var/cache/bind";
       dnssec-validation auto;
       dnssec-enable yes;
       auth-nxdomain no;    # conform to RFC1035
       listen-on-v6 { any; };
       allow-transfer {"allowed_to_transfer";}
   };
    acl "allowed_to_transfer" {
      217.70.177.40/32
    };

Maintenant des clés publics on rajoute à DNSSEC section de Gandi. Il faut ajouté la partie qui commence par Aw...

   root@ima2a5-mol-ish:/etc/bind/ima2a5-mol-ish.site.dnssec# cat ima2a5-mol-ish.site-zsk.key
   ; This is a zone-signing key, keyid 56373, for ima2a5-mol-ish.site.
   ; Created: 20191113100104 (Wed Nov 13 10:01:04 2019)
   ; Publish: 20191113100104 (Wed Nov 13 10:01:04 2019)
   ; Activate: 20191113100104 (Wed Nov 13 10:01:04 2019)
   ima2a5-mol-ish.site. IN DNSKEY 256 3 5 AwEAAcCC4sxci7Fep2Djz7oQZY0YxyZlsZyzyEybco91JISIi/Ra8vS2 HBaxqVPSzoIze66PmNW0LeRN6EpEAnstFf6YPncy10UYnw5BYVO/pYyB qMdfNcukAhcFQl4lxg6AAmCJV9p+fxZtH2fVVDgo8dtdoglxdcivpuZ6 X/6yRFOh


Pour appliquer les changement on faire un restart de bind9 :

  service bind9 restart
  bind9 is not running ... failed!

Pour voir des logs et detecter l'erreur:

   root@ima2a5-mol-ish:/etc/bind# named -d 2 -g
   ------
   13-Nov-2019 10:45:13.493 loading configuration from '/etc/bind/named.conf'
   13-Nov-2019 10:45:13.493 /etc/bind/named.conf.options:27: missing ';' before '}'
   13-Nov-2019 10:45:13.493 /etc/bind/named.conf.options:31: missing ';' before '}'
   13-Nov-2019 10:45:13.493 /etc/bind/named.conf.local:8: missing ';' before '}'

On corrige des problèmes, fait un restart:

   root@ima2a5-mol-ish:/etc/bind# service bind9 restart
   Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused.
   Starting domain name service...: bind9.

Avec l'outil https://dnsviz.net/d/ima2a5-mol-ish.site/dnssec/ on peut générer la chaîne ou https://dnssec-analyzer.verisignlabs.com/ima2a5-mol-ish.site

Vérfifier DNS : https://dnslookup.fr/ima2a5-mol-ish.site


Commandes utiles

  host -t any ima2a5-mol-ish.site
  cat /var/log/daemon.log
  


Génération des clés

Pour obtenir un certificat SSl, on possède le processus sur Gandi.net.


Création des clés .key et .csr

Pour créer des clés on utilise OpenSSl, dans le répértoire /etc/apache2/certificates

   openssl req -nodes -newkey rsa:2048 -sha256 -keyout ima2a5-mol-ish.key -out ima2a5-mol-ish.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) []:IMA2A5
   Common Name (e.g. server FQDN or YOUR name) []:ima2a5-mol-ish.site
   Email Address []:ekaterina.ishchuk@polytech-lille.fr
   Please enter the following 'extra' attributes
   to be sent with your certificate request
   A challenge password []:glopglop
   An optional company name []:


Il faudra attendre pour que les changements seront appliqués.

La clé .scr => qui a été transmis à Gandi pour créer SSL certificate


BEGIN CERTIFICATE REQUEST-----

MIIDDzCCAfcCAQAwgZoxCzAJBgNVBAYTAkZSMQ0wCwYDVQQIDAROb3JkMQ4wDAYD VQQHDAVMaWxsZTEXMBUGA1UECgwOUG9seXRlY2ggTGlsbGUxDDAKBgNVBAsMA0lN QTEcMBoGA1UEAwwTaW1hMmE1LW1vbC1pc2guc2l0ZTEnMCUGCSqGSIb3DQEJARYY aXNoY2h1a2F0ZXJpbmFAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A MIIBCgKCAQEA8gBDYek2H9/vYQUAh8OMq6K0In6BOd4HFTmnN2B5/h5SWU21U1vv FCn6KV1484KPVP4XxIUBBg7giboXdcUEWuohakbjY4BHdCwOinZLFCDAn96LYIuL 5Ifnwk2+B+10kAHTOgUMjICkWPnhcr/2f1e2DkikYck2gMhEHtPtnzWlOKEMfI0W IWBqnwjM8xnWlhbG3WlcuLjEi8K4wo8Qn8CGPWtO0qqTItxgGANzKp0+lZv2rdnV a9wup+LoDI7GGZ8JAMnADGTqV5pD7mpLCf1+lpAnVyunavtb8O69wOQQWileG0J0 E59GqL/sTGR+lgpqmczAyrYhzIAKYkcdVwIDAQABoC8wFQYJKoZIhvcNAQkCMQgM BkltYTJhNTAWBgkqhkiG9w0BCQcxCQwHcGFzZ2xvcDANBgkqhkiG9w0BAQsFAAOC AQEAggN6DG6c1Ok+t7xplEikeYZKkyl2N9QxuCx48XCTxrRic7STYYB2Q3Q4j792 6CSg4vAx+4A3HFSUvt4hnr0F5QzIIgT3ajWAIPPCJ0KrRpLGXYK0h8TvF19+5ja1 5tJXrrl1ThT87LYIFkAhtkLai2Ep/Z7ENDquRqSZaf79/wXWPbMUodaSZIaGQoxO U5sDvLTutdpd83lVWqbJ4Co1DpM3VD2z3ECe3dMZDcuTBCIfAXfVhcKzwsiBiyqJ C/1lhGN7CC75B6PCYPIspSQKIe5V1J8BhxXycYbh35/O65zofOIwrMZU9rDmb0qA bvFBGSD9A1TRtylxwMrOyTIHdw==


END CERTIFICATE REQUEST-----

la clé .key => clé privé et reste sur machine virtuel


Retour de Gandi et de notre cetificat (.pem) => Intermediate => pour le navigateur (pour vérfier l'hiérarchie)

   -----BEGIN CERTIFICATE-----
   MIIF6TCCA9GgAwIBAgIQBeTcO5Q4qzuFl8umoZhQ4zANBgkqhkiG9w0BAQwFADCB
   iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
   cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
   BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQw
   OTEyMDAwMDAwWhcNMjQwOTExMjM1OTU5WjBfMQswCQYDVQQGEwJGUjEOMAwGA1UE
   CBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4GA1UE
   AxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
   DwAwggEKAoIBAQCUBC2meZV0/9UAPPWu2JSxKXzAjwsLibmCg5duNyj1ohrP0pIL
   m6jTh5RzhBCf3DXLwi2SrCG5yzv8QMHBgyHwv/j2nPqcghDA0I5O5Q1MsJFckLSk
   QFEW2uSEEi0FXKEfFxkkUap66uEHG4aNAXLy59SDIzme4OFMH2sio7QQZrDtgpbX
   bmq08j+1QvzdirWrui0dOnWbMdw+naxb00ENbLAb9Tr1eeohovj0M1JLJC0epJmx
   bUi8uBL+cnB89/sCdfSN3tbawKAyGlLfOGsuRTg/PwSWAP2h9KK71RfWJ3wbWFmV
   XooS/ZyrgT5SKEhRhWvzkbKGPym1bgNi7tYFAgMBAAGjggF1MIIBcTAfBgNVHSME
   GDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUs5Cn2MmvTs1hPJ98
   rV1/Qf1pMOowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
   VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGy
   MQECAhowCAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl
   cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy
   bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy
   dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ
   aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAWGf9
   crJq13xhlhl+2UNG0SZ9yFP6ZrBrLafTqlb3OojQO3LJUP33WbKqaPWMcwO7lWUX
   zi8c3ZgTopHJ7qFAbjyY1lzzsiI8Le4bpOHeICQW8owRc5E69vrOJAKHypPstLbI
   FhfFcvwnQPYT/pOmnVHvPCvYd1ebjGU6NSU2t7WKY28HJ5OxYI2A25bUeo8tqxyI
   yW5+1mUfr13KFj8oRtygNeX56eXVlogMT8a3d2dIhCe2H7Bo26y/d7CQuKLJHDJd
   ArolQ4FCR7vY4Y8MDEZf7kYzawMUgtN+zY+vkNaOJH1AQrRqahfGlZfh8jjNp+20
   J0CT33KpuMZmYzc4ZCIwojvxuch7yPspOqsactIGEk72gtQjbz7Dk+XYtsDe3CMW
   1hMwt6CaDixVBgBwAc/qOR2A24j3pSC4W/0xJmmPLQphgzpHphNULB7j7UTKvGof
   KA5R2d4On3XNDgOVyvnFqSot/kGkoUeuDcL5OWYzSlvhhChZbH2UF3bkRYKtcCD9
   0m9jqNf6oDP6N8v3smWe2lBvP+Sn845dWDKXcCMu5/3EFZucJ48y7RetWIExKREa
   m9T8bJUox04FB6b9HbwZ4ui3uRGKLXASUoWNjDNKD/yZkuBjcNqllEdjB+dYxzFf
   BT02Vf6Dsuimrdfp5gJ0iHRc2jTbkNJtUQoj1iM=
   -----END CERTIFICATE-----


Certificat .crt => certificat général et lié avec .key & .csr

   -----BEGIN CERTIFICATE-----
   MIIGETCCBPmgAwIBAgIQQD7X5S+/F3WTOPPJuYTgrzANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQG
   EwJGUjEOMAwGA1UECBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4G
   A1UEAxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwHhcNMTkxMTEzMDAwMDAwWhcNMjAxMTEzMjM1
   OTU5WjBeMSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQxGzAZBgNVBAsTEkdhbmRp
   IFN0YW5kYXJkIFNTTDEcMBoGA1UEAxMTaW1hMmE1LW1vbC1pc2guc2l0ZTCCASIwDQYJKoZIhvcN
   AQEBBQADggEPADCCAQoCggEBAPIAQ2HpNh/f72EFAIfDjKuitCJ+gTneBxU5pzdgef4eUllNtVNb
   7xQp+ildePOCj1T+F8SFAQYO4Im6F3XFBFrqIWpG42OAR3QsDop2SxQgwJ/ei2CLi+SH58JNvgft
   dJAB0zoFDIyApFj54XK/9n9Xtg5IpGHJNoDIRB7T7Z81pTihDHyNFiFgap8IzPMZ1pYWxt1pXLi4
   xIvCuMKPEJ/Ahj1rTtKqkyLcYBgDcyqdPpWb9q3Z1WvcLqfi6AyOxhmfCQDJwAxk6leaQ+5qSwn9
   fpaQJ1crp2r7W/DuvcDkEFopXhtCdBOfRqi/7ExkfpYKapnMwMq2IcyACmJHHVcCAwEAAaOCAsgw
   ggLEMB8GA1UdIwQYMBaAFLOQp9jJr07NYTyffK1df0H9aTDqMB0GA1UdDgQWBBSRNlkNETdysrxo
   EOpmQ9eON0SLOTAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEF
   BQcDAQYIKwYBBQUHAwIwSwYDVR0gBEQwQjA2BgsrBgEEAbIxAQICGjAnMCUGCCsGAQUFBwIBFhlo
   dHRwczovL2Nwcy51c2VydHJ1c3QuY29tMAgGBmeBDAECATBBBgNVHR8EOjA4MDagNKAyhjBodHRw
   Oi8vY3JsLnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNTTENBMi5jcmwwcwYIKwYBBQUHAQEE
   ZzBlMDwGCCsGAQUFBzAChjBodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vR2FuZGlTdGFuZGFyZFNT
   TENBMi5jcnQwJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wNwYDVR0RBDAw
   LoITaW1hMmE1LW1vbC1pc2guc2l0ZYIXd3d3LmltYTJhNS1tb2wtaXNoLnNpdGUwggEFBgorBgEE
   AdZ5AgQCBIH2BIHzAPEAdwAHt1wb5X1o//Gwxh0jFce65ld8V5S3au68YToaadOiHAAAAW5j5/l/
   AAAEAwBIMEYCIQCwlI5VaJUfUAg3u9CT/Mlek42R/JDke2Yaf1UCqFyMBgIhANvdjPn/m9X6HKY/
   spP0BlMWGM+tyxBtnbyEIrrJqjyzAHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgA
   AAFuY+f5cAAABAMARzBFAiBjkW/8HrXqbBGU0pzSUF9dVRKCQ9yBIVWvJBU73EagYwIhAM0XBb7k
   XkeMQneNP2GOR8be3DrmUY2pf9EgkaQhelQgMA0GCSqGSIb3DQEBCwUAA4IBAQA97gLu2Iw9QQ3+
   q2TdKh4RqZ5GLtzxrOQV3xxRlnGqb81vxZFojVCrK02VQgNLX/2g3DhB/yN+YD3gliL4yz7apL+k
   NiX+SLHxFOqEVqFcK8k74fEoLxL4adNoKoUEzniupZR0wa7ZHROnuYc+ZQ5LEYgQNCzMpPFmVx4L
   OKcJnhmHjQJpIppz2RK1khGsVSXHL445o8vKXWUhsuGQXZKvd24G234jg0nEkARvHe6apD/nsYqT
   oBEbMOblH/nKvOhBhNkk1HqK15wh29gO5a2bawzwz8WLWi61WFs0HgKu6fvAugbIq88mkFg/JYoy
   LPxkPJg3syfr2tIHAjfYG2Xk
   -----END CERTIFICATE-----

Pour vérifier que les clés .key & .csr & .crt sont liés on doit calculer le modulus

   openssl rsa -noout -modulus -in ima2a5-mol-ish.site.key
   openssl req -noout -modulus -in ima2a5-mol-ish.site.csr
   openssl x509 -noout -modulus -in ima2a5-mol-ish.site.crt

Paramétrage d'Apache2 avec la gestion du https

Le paramétrage d'Apache peut se faire à l'aide du wiki d'ubuntu ([configuration d'Apache https://doc.ubuntu-fr.org/apache2])

Serveur web http

On ajoute un fichier ima2a5-mol-ish de configuration dans le répertoire : /etc/apache2/sites-available

   <VirtualHost *:80>
       ServerName ima2a5-mol-ish.site
       ServerAlias www.ima2a5-mol-ish.site
       DocumentRoot "/var/www/ima2a5-mol-ish"
       <Directory "/var/www/ima2a5-mol-ish">
               Options +FollowSymLinks
               AllowOverride all
               Require all granted
       </Directory>
       ErrorLog /var/log/apache2/ima2a5-mol-ish.log
       CustomLog /var/log/apache2/ima2a5-mol-ish.log combined
   </VirtualHost>

Au prélable, on aura créé un dossier contenant la page html à afficher dans le répertoire /var/www/ima2a5-mol-ish

Serveur web https

On active le module SSL avec la commande :

   a2enmod ssl
   service apache2 restart

Vérification de l'écoute de port 443

On s'assure que le port 443 est déjà à l'écoute par le serveur apache via la commande netstat -tanpu |grep "LISTEN" |grep "443"

   tcp6       0      0 :::443                  :::*                    LISTEN      1382/apache2


Puis on peut passer à la configuration de HTTPS d'apache


Configuration HTTPS

On configure VirtualHost Apache pour le port 443 dans le fichier "ima2a5-mol-ish.site-ssl.conf la configuration didiée au port sécurisé HTTPS:

   <VirtualHost *:443>

ServerName ima2a5-mol-ish.site:443 DocumentRoot "/var/www/ima2a5-mol-ish" ServerAdmin ekaterina.ishchuk@polytech-lille.net <Directory "/var/www/ima2a5-mol-ish"> Options +FollowSymLinks AllowOverride all Require all granted </Directory> ErrorLog "/var/log/apache2/error.ima2a5-mol-ish.log" TransferLog "/var/log/apache2/error.ima2a5-mol-ish.transf.log" # Activation du SSL SSLEngine On # Activation de tous les protocoles sécurisés (TLS v1.0, v1.1 et TLS v1.2) touut en désactivant les protocoles non sécurisés (SSL v2, SSL v3)

  	SSLProtocol All -SSLv3 -SSLv2
  	# Le navigateur devra choisir une méthode de chiffrement en respectant l'ordre indiquée dans SSLCipherSuite
  	SSLHonorCipherOrder on
  	# Chemin vers le certificat SSL de votre nom de domaine
  	SSLCertificateFile "/etc/apache2/certificates/ima2a5-mol-ish.csr"
  	# Chemin vers la cle privée du certificat SSL de votre nom de domaine
 	 SSLCertificateKeyFile "/etc/apache2/certificates/ima2a5-mol-ish.key"  
   </VirtualHost>

Maintenante on peut relancer le serveur avec:

 a2dissite ima2a5-mol-ish.site
 a2ensite ima2a5-mol-ish.site
 service apache2 restart

Puis on vérifie la configuration appliqueé avec

  root@ima2a5-mol-ish:/etc/apache2# apache2ctl -S
  VirtualHost configuration:
  *:80                   is a NameVirtualHost
        default server ima2a5-mol-ish.site (/etc/apache2/sites-enabled/000-default.conf:1)
        port 80 namevhost ima2a5-mol-ish.site (/etc/apache2/sites-enabled/000-default.conf:1)
        port 80 namevhost ima2a5-mol-ish.site (/etc/apache2/sites-enabled/ima2a5-mol-ish.site.conf:1)
                alias www.ima2a5-mol-ish.site   
  *:443                  ima2a5-mol-ish.site (/etc/apache2/sites-enabled/ima2a5-mol-ish.site.conf:15)
  ServerRoot: "/etc/apache2"
  Main DocumentRoot: "/var/www/html"
  Main ErrorLog: "/var/log/apache2/error.log"
  Mutex ssl-stapling: using_defaults
  Mutex ssl-cache: using_defaults
  Mutex default: dir="/var/run/apache2/" mechanism=default 
  Mutex watchdog-callback: using_defaults
  Mutex ssl-stapling-refresh: using_defaults
  PidFile: "/var/run/apache2/apache2.pid"
  Define: DUMP_VHOSTS
  Define: DUMP_RUN_CFG
  User: name="www-data" id=33
  Group: name="www-data" id=33


Architecture réseau

L'architecture générale

Les réseaux virutels

Le routage de site (IPv4)

Le routage de site (IPv6)

Interconnexion avec Internet (IPv4)

Interconnexion avec Internet (IPV6)

Sécurisation du réseau

Test d'intrusion

eeePC Silure

Intrusion par changement d'adresse MAC

Cassage de clef WEP d'un point d'accès Wifi

Configuration de la carte réseau

Dans cette partie, il est question de cracker une clé WEP depuis l'ordinateur mis à disposition (Silure).

On commence par établir une connexion internet via une liaison filaire ainsi que la configuration de la clé Wifi.

-Se placer en super-administrateur et visualiser la liste des interfaces

   su
   ip l

On trouve ainsi trois interfaces : lo, wlx40a5ef01370a (clé wifi) et enp4s0 (eth0)

-Modifier le fichier de configuration réseau

   nano /etc/network/interfaces

-Modifier le fichier avec les lignes suivantes :


   #Interface réseau filaire
   auto enp4s0
   iface enp4s0 inet static
    address 172.26.145.105
    netmask 255.255.255.0
    gateway 172.145.255.254
   
   #Interface Wifi
   auto wlx40a5ef01370a
   iface wlx40a5ef01370a inet dhcp

-Modifier le proxy avec celui de l'école :

   export http_proxy=http://proxy.polytech-lille.fr:3128

-Eteindre et rallumer l'interface enp4s0 :

   ifdown enp4s0 //Eteindre l'interface
   ifup enp4s0 //Allumer l'interface

- Vérifier la bonne mise à jour des interfaces

   ip a

ainsi que le miroir est bien celui de la licence linux, ici debian

   deb http://debian.polytech-lille.fr/debian/ buster main contrib none-free
   deb-src http://debian.polytech-lille.fr/debian buster main contrib non-free
   deb http://security.debian.org/debian-security buster/updates main contrib non-free
   deb-src http://security.debian.org/debian-security buster/updates main contrib non-free


- Effectuer la mise à jour et installer le paquetage aircrack

   apt update
   apt-get install aircrack-ng

-Démarrer le logiciel aircrack en précisant l'interface :

   airmon-ng start wlx40a5ef01370a
IMA2A5 AIRODUMP.png

A partir de là, la carte Wifi passe en mode moniteur et prend l'intitulé wlan0mon.

Scanner le réseau wifi

A patir de là, nous pouvons scanner le réseau Wifi environnant avec airodump

   airodump-ng --encrypt wep wlan0mon
IMA2A5 AIRODUMP VIEW.png

On visualise les raspberry disponibles avec les informations suivantes :

  • Le BSSID du réseau en hexadécimal
  • La force du signal avec PWR
  • Le channel avec CH
  • Le type d'encryptage avec ENC
  • Le nom du réseau avec ESSID

On choisit de cracker la cracotte09 en stockant les données générées dans le dossier WEP

   mkdir WEP
   airodump-ng -w cracotte -c 8 --bssid 04:DA:D2:9C:50:58 wlan0mon


On obtient l'écran suivant indiquant le nombre de données collectées (#Data)

IMA2A5 PACKET.png

En parallèle de ça, on peut la phase de décryptage avec l'utilitaire aircrack-ng

Aircrack-ng.png
   aircrack-ng cracotte*.cap

Une fois le nombre d'IVs suffisant atteint, on obtient la clé WEP. Pour cracotte02, on a BA:BE:EE:EE:EE:EE:EE:EE:EE:EE:EE:44

Cassage de mot de passe WPA-PSK par force brute

Dans cette partie, il s'agit de casser le mot de passe d'un réseau Wifi sécurisé en WPA-PSK. On utilisera le même utilitaire aircrack-ng à la différence qu'il s'agira non plus de récuprérer des IVs mais un handshake.

Pour se faire, on commence par sonder le réseau en filtrant uniquement le protocole WPA

   airodump-ng --encrypt wpa wlan0mon
IMA2A5-WPA-airodump.png

On obtient la liste suivante.

Il faut ensuite générer un dictionnaire comportant l'ensemble des combinaisons possibles de la clé WPA.


   crunch 8 8 0123456789 >> Dico.txt


Point particulier : Lors de la génération du dictionnaire, j'ai oublié d'inclure le chiffre 0 ce qui a allégé de 60% le fichier originel (900Mb pour les 10 chiifres contre 300Mb pour les 9 chiffres). Ce que je ne savais pas à ce moment là, c'est que la clé à trouver ne comporte pas de zéro. Cela a permis de passer de 3h de temps de calcul à 1 min et 18 secondes.


   aircrack-ng psk-01.cap -w Dico.txt


On a pour résultat est le suivant :

IMA2A5-WPA-key.png

La clé sur la kracotte02 est 12228888

Réalisations

Sécurisation de données

Dans cette partie, il est question de sécuriser des données à l'aide d'un système de virtualisation de stockage, ici RAID5.

L'intérêt est de pouvoir créer une redondance des systèmes de stockage (physique mais aussi virtuelle) afin de prévenir d'une défaillance de l'un d'entre eux.

Ici on choisit le protocole RAID5 (Redundant Array of Independent Disks) qui a pour particularité d'associer trois disques avec un système de codes de correction (les bits de parité) entre les données.

Point important : Le RAID5 ne fonctionne que pour une configuration d'au minimum 3 disques.


Il faut d'abord créer trois partitions sur le serveur corduan :

   lvcreate -L1G -n ima2a5-rex4ever-disk1 virtual
   lvcreate -L1G -n ima2a5-rex4ever-disk2 virtual
   lvcreate -L1G -n ima2a5-rex4ever-disk3 virtual


Une fois effectué, on peut s'assurer de leur bonne création avec la ligne suivante :

   lvdisplay

Ensuite formate les trois partitions créées.

   mke2fs /dev/virtual/ima2a5-rex4ever-disk1 virtual
   mke2fs /dev/virtual/ima2a5-rex4ever-disk2 virtual
   mke2fs /dev/virtual/ima2a5-rex4ever-disk3 virtual

Maitenant, on va associer nos trois nouveaux disques virtuels à notre machine virtuelle. On va ainsi modifier le fichier de configuration de la VM sur cordouan dans le répertoire /etc/xen/ima2a5-mol-ish.cfg. Mais auparavant, on étaint la VM : xl shutdown ima2a5-mol-ish

   disk= [   ......................
             'phy:/dev/virtual/ima2a5-rex4ever-disk1,xvdb3,w',
             'phy:/dev/virtual/ima2a5-rex4ever-disk2,xvdb4,w',
             'phy:/dev/virtual/ima2a5-rex4ever-disk3,xvdb5,w',
   ]


Puis on la redémarre :

    xl create /etc/xen/ima2a5-mol-ish.cfg


On créé à présent le RAID5 avec l'utilitaire mdadm.

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

Puis on effectue :

   mdadm --monitor --daemonise /dev/md0

Et on formate on format le disque créé :

   mkfs.ext4 /dev/md0

On définit notre disque dans la table des fichier système en modifiant le fichier /etc/fstab en ayant auparavant créé un dossier qui lui sera propre dans /media/, ici mkdir /media/raid

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

On peut vérifier le bon montage avec la commande df

Cryptage de données

Références utilisées :

How to encrypt USB drives with LUKS Partition chiffrée avec Cryptsetup Doc Ubuntu Commande : fdisk – suppression de partitions


Commandes utiles :

Description Commande
Initialiser une partition à chiffrer cryptsetup luksFormat -c aes -h sha256 /dev/sda1
Ouvrir un périphérique crypté cryptsetup open --type luks /dev/sda1 <nom du systeme de fichier>
Monter le périphérique mount -t ext4 /dev/mapper/<nom du systeme de fichier> /mnt/<nom du point de montage>
Ajouter une clé au conteneur précédent cryptsetup luksAddKey /dev/sda1
Visualiser l'état d'un périphérique cryptsetup luksDump /dev/sda1
Révoquer un slot cryptsetup luksKillSlot /dev/sda1 <numero_de_slot>


Dans cette partie, il est question de crypter des données contenues dans une clé USB On installe d'abord les paquetages lvm2 et cryptsetup.

   apt-get install lvm2 cryptsetup

Ensuite on recherche le périphérique et ses partitions (si existantes) avec la commande

   lsblk

On utilise ensuite l'utilitaire fdisk sur le périphérique souhaité, ici /dev/sda


   fdsik /dev/sda

A partir de là, on peut réaliser un certain nombre d'opération qui sont les suivantes :

  Command (m for help): m
   Help:
   DOS (MBR)
    a   toggle a bootable flag
    b   edit nested BSD disklabel
    c   toggle the dos compatibility flag
   Generic
    d   delete a partition
    l   list known partition types
    n   add a new partition
    p   print the partition table
    t   change a partition type
    v   verify the partition table
   Misc
    m   print this menu
    u   change display/entry units
    x   extra functionality (experts only)
   Save & Exit
    w   write table to disk and exit
    q   quit without saving changes
   Create a new label
    g   create a new empty GPT partition table
    G   create a new empty SGI (IRIX) partition table
    o   create a new empty DOS partition table
    s   create a new empty Sun partition table

On s'assure de l'état des partitions avec la commande p

On supprime les partions avec la commande d

Puis on quitte et on sauvegarde les modification avec w

On créé une nouvelle partition avec le même utilitaire.

   Command (m for help) : n
   Partition type
     p primary (0 primary, 0 extended, 4 free)
     e extended (container for logical partitions)
   Select (default p): p
   Partition number (1-4, default 1): 1

On part sur une unique partition comme demandée dans le cahier des charges On prendra toutes les ressources physiques de la clé à savoir de 2048 à 15109515


   First sector (2048-15109515, default 2048): 2048
   
   Last sector, +sectors or +size{K,M,G,T,P} (2048-15109515): 15109515
   Created a new partition 1 of type 'Linux' and of size 7.2 GiB

On sauvegarde pour finir.

Chiffrage du périphérique

On va maintenant chiffrer la clé à l'aide de encryptsetup.

   cryptsetup luksFormat -c aes -h sha256 /dev/sda1

Cette commande va chiffrer la clé en AES (Advanced Encryption Standard) avec un hashage 256.

On ajoute un mot de passe habituel à la formation IMA2A.

Ouverture sécurisé du périphérique

On l'ouvre avec la commande actualisée suivante


   cryptsetup open --type luks /dev/sda1 home


Création du système de fichiers

On créé un système de fichier sur la machine EXT4 file system :

   mkfs.ext4 /dev/mapper/home


Montage du périphérique

Et ensuite on monte le périphérique avec la commande suivante, au prélable on aura créé un dossier dans /mnt/

  mount -t ext4 /dev/mapper/home /mnt/cle_usb


Démontage physique du périphérique

Il faut d'abord démonter le périphérique

   umount /mnt/cle_usb

Fermeture sécurisée du périphérique

   cryptsetup close --type luks home

Phases de tests du chiffrage

Pour tester le chiffrage de la clé, on essaye sur un autre eeePC son ouverture. Cependant, il mettait impossible de l'ouvrir à cause d'un souci de version. La clé sur laquelle j'ai chiffré était en version 2.1.0 alors que mes collègues étaient en version 1.7.3. Du coup, leur machine ne voulait pas l'ouvrir à cause d'une version trop récente.

Sécurisation Wifi par clé WEP

Sécurisation Wifi par WPA-PSK

Sécurisation réseau filaire par EAP-TLS

Sécurisation Wifi par WPA2-EAP

Configuration sur Zabeth11

Dans cette partie, on dispose de deux bornes wifi a configurer, la premiére en E306 et l'autre en E304, en utilisera le server FreeRadius pour l'identification. Tout d'abord effectuons un purge:

apt purge brltty

Puis:

1- Acceder à la configuration de la borne wifi :

minicom -os


On change la configuration pour: Port = /dev/ttyUSB0, 9600 bauds et sans control de flux

2- Se mettre en mode previligié :

enable   
Password = "Cisco"


3- Se mettre en mode configuration :

config term

(On peut aussi verifier la configuration de la borne avec "show run")


4- Pour utiliser le system en 'authentication, authorization, and accounting', il faut cette commande :

aaa new-model


5- On crée un server radius pour un groupe :

radius-server host 193.48.57.162 auth-port 1812 acct-port 1813 key IMA2a5-mol-ish

6- On defini le server group :

aaa group server radius radius_IMA2a5-mol-ish         


7- Puis, on associe à ce groupe de serveur le serveur créé sur la VM:

server 193.48.57.162 auth-port 1812 acct-port 1813


8- Ensuite, on defini le login et le groupe server par lequel l'utilisateur passera pour s'authentifier :

aaa authentication login eap_groupe6 group radius_IMA2a5-mol-ish  


9- On arrive à la création des SSID, protégé par la méthode WPA2-EAP :

dot11 ssid SSID_IMA2a5-mol-ish                                 
vlan 3
authentication open eap eap_ima2a5-mol-ish 
authentication network-eap eap_ima2a5-mol-ish   
authentication key-management wpa


10- Configurer les vlans des groupes :

interface Dot11Radio0                                  
encryption vlan 3 mode ciphers aes-ccm tkip            
ssid SSID_IMA2a5-mol-ish 


11- Créer une sous-interface :

interface dot11Radio0.3                       
encapsulation dot1Q 3
bridge-group 3


12- Créer une sous-interface gigabite :

interface gigabite0.3                         
encapsulation dot1Q 3
bridge-group 3


13- Ajouter les SSID à l'interface Dot11Radio0

interface Dot11Radio0                                 
dot11 ssid SSID_IMA2a5-mol-ish                                      


14- rendre les SSID visibles :

interface Dot11Radio0                               
mbssid                                                
dot11 ssid SSID_IMA2a5-mol-ish                               
mbssid guest-mode                                    


exit
exit
write
reload

15- Attribuer une ip à la borne

enable 
conf t
int bvi1 
ip address 10.60.0.100 255.255.255.0
exit 
exit 

on peut maintenant pinger le routeur: ping 10.60.0.254 , mais le les VM

16-Il faut donc rajouter le gateway

enable
conf t
ip route 0.0.0.0 0.0.0.0 10.60.0.253
exit

maintenant on peut reussir à pinger les VM: ping 193.48.57.162


Installation du serveur FreeRadius

Universal Plug and Play Audio and Video

Configuration d'un PCBX