TP sysres IMA5sc 2020/2021 G2 : Différence entre versions

De Wiki d'activités IMA
(Attaque de type "homme du milieu" par usurpation ARP)
Ligne 182 : Ligne 182 :
  
 
Re-enter Employee PSK Passphrase: glopglop
 
Re-enter Employee PSK Passphrase: glopglop
 +
 +
= Ferme de serveurs Web =
 +
 +
== Architecture générale de la ferme ==
 +
 +
== Installation de docker ==
 +
 +
== Création de votre conteneur ==
 +
 +
== Configuration de vos serveurs internes ==
 +
 +
== Equilibreur de charge ==

Version du 17 décembre 2020 à 13:00

TP PRA BARGIBANT-LAGNEAU

Installation des systèmes d’exploitation

Durant ce TP, nous utiliserons comme nom de machine virtuelle le champignon suivant: ophiocordyceps. On travaillera durant cette partie sur le serveur capbreton.plil.info

ssh root@capbreton.plil.info

Installation dans la machine virtuelle Xen

En utilisant le mot de passe non-admin couramment utilisé à l'école, nous avons créé la machine via cette commande:

xen-create-image --hostname=ophiocordyceps --ip=100.64.0.17 --netmask=255.255.255.0 --password=******* --dir=/usr/local/xen --dist=buster --gateway=100.64.0.5

Comme les adresses ont changé au cours du TP nous avons modifié le fichier /etc/network/interfaces et après avoir utilisé les commandes suivantes nous avons la bonne adresse IP sur notre vm.

ifdown eth0
ifup eth0

Montage des disques

(fait, à remplir)

Architecture réseau

L'architecture générale

Les réseaux virtuels

Le routage du site (IPv4)

Le routage du site (IPv6)

Interconnexion avec Internet (IPv4)

Interconnexion avec Internet (IPv6)

Sécurisation du réseau

Interconnexion Internet de secours (IPv4)

Interconnexion Internet de secours (IPv6)

Services Internet

Mise en place du serveur SSH

Autorisation de la connexion en root en ssh en modifiant le paramètre PermitRootLogin dans le fichier /etc/ssh/sshd_config


Mise en place du serveur DNS

Modification de /etc/resolv.conf : Utilisation de l'adresse locale (127.0.0.1) comme serveur DNS

Modification de /etc/bind/named.conf.options : Ajout des options

listen-on-v6 { any; }
allow-transfer { "allowed_to_transfer"; }

ainsi que de l'acces list :

acl "allowed_to_transfer" {
 217.70.177.40/32 ;
};

Modification de /etc/bind/named.conf.local : Création de la zone

zone "ophiocordyceps.site" {
        type master;
        file "/etc/bind/db.ophiocordyceps.site";
};

Création du fichier d'adresses /etc/bind/db.ophiocordyceps.site:

$TTL    3600
@       IN      SOA     ns1.ophiocordyceps.site. root.ophiocordyceps.site. (
                      	    1           ; Version
                         3600           ; Refresh [1h]
                          600           ; Retry   [10m]
                        86400           ; Expire  [1d]
                          600 )         ; Negative Cache TTL [1h] 

@       IN      NS      ns1.ophiocordyceps.site.
@       IN 	NS 	ns6.gandi.net.
@       IN      MX      100 ns1.ophiocordyceps.site.

ns1     IN      A       193.48.57.187

On parametre également notre serveur mail dans ce fichier.

On installe postfix et on choisit la configuration "Internet Site" pour configurer notre serveur mail. On entre notre nom de site : "ophiocordyceps.site".

On rajoute l'alias suivant dans le fichier /etc/aliases

admin:root

et on effectue la commande

newaliases

Après avoir testé d'envoyer un mail à admin@ophiocordyceps.site via une adresse polytech, on reçoit nos mails dans le fichier /var/mail/root.

Sécurisation par certificat

Après avoir paramétrer notre mail, nous utiliserons le tutoriel Gandi pour générer la clé SSL https://docs.gandi.net/en/ssl/common_operations/csr.html#generate-csr

On génère une demande de signature de certificat SSL via la commande

openssl req -nodes -newkey rsa:2048 -sha256 -keyout ophiocordyceps.site.key -out ophiocordyceps.csr

On génère le certificat SSL sur gandi et on l'utilise ensuite dans notre fichier de configuration du serveur web apache2. Après s'être rendu compte que notre serveur web ne fonctionne pas, on vérifie notre serveur DNS et on rajoute la ligne suivante au fichier /etc/bind/db.ophiocordyceps.site:

www     IN      CNAME   ns1

Notre fichier de configuration du serveur apache /etc/apache2/sites-availables/ophiocordyceps.site.conf est le suivant:

<VirtualHost *:80>
    ServerName ophiocordyceps.site
    ServerAlias www.ophiocordyceps.site
    # Redirection 301  vers le site en HTTPS
    Redirect permanent / https://www.ophiocordyceps.site/
</VirtualHost>
<VirtualHost *:443>
	ServerName ophiocordyceps.site
	ServerAdmin admin@ophiocordyceps.site
	DocumentRoot /var/www/html
        SSLEngine on
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	SSLCertificateFile      /root/ophiocordyceps.site.crt
        SSLCertificateKeyFile /root/ophiocordyceps.site.key
	SSLCACertificateFile	/root/GandiStandardSSLCA2.pem
	SSLVerifyClient None
</VirtualHost>

Sécurisation de serveur DNS par DNSSEC

On ajoute l'option:

dnssec-enable yes;

dans le fichier etc/bind/named.conf.options

On génère ensuite les clefs asymétriques de signature de clef de zone et de zone pour signer les enregistrements:

dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE ophiocordyceps.site
dnssec-keygen -a RSASHA1 -b 1024 -n ZONE ophiocordyceps.site

On renomme nos fichier pour rendre le tout plus lisible: -ksk pour la KSK et -zsk pour la ZSK puis .key pour la clef publique et .private pour la clef privée.

On inclue ensuite les clefs publique dans notre fichier de zone /etc/bind/db.ophiocordyceps.site:

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

On signe les enregistrement de la zone:

dnssec-signzone -o ophiocordyceps.site -k ophiocordyceps.site-ksk ../ophiocordyceps.site ophiocordyceps.site-zsk

Dans le fichier /etc/bind/named.conf.local, on définit d'utiliser la zone signée:

file:"/etc/bind/db.ophiocordyceps.site.signed"

On indique ensuite à gandi la partie publique de la clef KSK. On peut tester notre DNSSEC en utilisant la commande

host -t any ophiocordyceps.site

ou depuis le site https://dnsviz.net/d/ophiocordyceps.site/dnssec/.

Tests d'intrusion

Exploitation de failles du système

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

Cassage de mot de passe WPA-PSK par force brute

Attaque de type "homme du milieu" par usurpation ARP

Après avoir installer dsniff sur le eeePC, on le passe en mode routeur via la commande:

systctl -w net.ipv4.ip_forward=1

On effectue ensuite la commande

arpspoof -i eth0 -t 172.26.145.55 172.26.145.254

avec 172.26.145.55 notre ip de zabeth05, et 172.26.145.254 l'ip du routeur

En utilisant Wireshark, on réussit alors à intercepter des packets contenant possiblement des mots de passe sur les sites non sécurisés.

Réalisations

Sécurisation de données

Configuration du point d'accès Wifi

Username: cisco

Password: Cisco1

Re-enter Employee PSK Passphrase: glopglop

Ferme de serveurs Web

Architecture générale de la ferme

Installation de docker

Création de votre conteneur

Configuration de vos serveurs internes

Equilibreur de charge