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

De Wiki d'activités IMA
(Liaison R1 vers COM-2)
(Création du conteneur)
Ligne 726 : Ligne 726 :
 
  CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
 
  CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
 
  EXPOSE 80
 
  EXPOSE 80
 +
 +
 +
On a eu le problème suivant lorsqu'on souhaite visiter notre site :
 +
 +
[[Fichier:G2_mycoplasmaSite.png|center|900px]]
 +
 +
 +
root@corduan:~/# docker ps => Notre docker "mycoplasma"  tourne donc  ce n'est pas le problème.
 +
 +
root@corduan:~/# docker exec -it <CONTAINER ID> /bash/bin
 +
root@<CONTAINER ID>:~/# ls /var/www/html
 +
 +
Avec cette dernière commande, on peut voir que le fichier index.html ne s'est pas copié malgré les commandes du Dockerfile. Pourtant le Docker build s'est exécuté sans afficher d'erreurs. On peut voir les logs pour avoir une idée :
 +
  root@corduan:~/# docker logs <CONTAINER ID>
 +
Voici le résultat :
 +
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.5. Set the 'ServerName' directive globally to suppress this message
  
 
=== Configuration des serveurs internes ===
 
=== Configuration des serveurs internes ===

Version du 1 janvier 2020 à 19:18


Présentation générale

Travaux pratiques protocoles avancés. 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.

Le cours se trouve à cette adresse Le sujet du TP se trouve à cette adresse

Réalisation du TP

Installation dans la machine virtuelle Xen

Nous avons acheté notre domaine : mycoplasma.site sur le site gandi. Il faut créer la machine virtuelle Xen Linux sur le dom0 cordouan.insecserv.deule.net

Donc il faut se connecter en shh à Cordouan:

ssh root@cordouan.insecserv.deule.net

Puis créer notre machine virtuelle :

xen-create-image --hostname=mycoplasma --dhcp --dir=/usr/local/xen --dist=buster
xl create mycoplasma.cfg

On a ensuite installer les paquetages nécessaires pour SSH, le serveur Web apache2 et le serveur DNS bind :

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

Pour afficher les logs et savoir si l'installation à bien lieu :

  tail -f /var/log/xen-tools/mycoplasma.log

Accès Internet et Permettre SSH

Une fois la VM créée (semaine 1), il faut installer les packages, donc il faut lui donner l'accès à internet. Il faut modifier le fichier suivant etc/network/interfaces. Pour enregistrer les modifications, il faut exécuter les commandes: if down eth0, ifup eth0.

auto eth0
iface eth0 inet static
 address 193.48.57.178
 netmask 255.255.255.240


Pour le moment, pour se connecter à la Machine virtuelle, on utilise la commande suivante:

xl console mycoplasma

SSH

Mais il y a une seconde façon d'accéder à notre VM: c'est en utilisant SSH. Pour le faire il faut remplacer la ligne suivante :

" #PermitRootLogin prohibit-password" 

par

" PermitRootLogin yes" 

de ce fichier etc/ssh/sshd_config.

Architecture réseau

L’architecture générale

Mejbar-aitmouheb-infra-generale.png

L'objectif que l'on souhaite réaliser dans cette partie est une architecture capable de résister à la défaillance de quelques uns des équipements réseau qui la composent par le biais de la redondance.

Nous disposons, pour la réalisation, de deux commutateurs et de deux routeurs et deux bornes wifi répartis entre les deux salles E304 et E306.

Nous avons sur les deux terminaisons de notre architecture:

  • Le serveur XEN qui abrite des machines virtuelles avec les différents services qui y sont implantés.
  • Le réseau de l'école.


Le schéma de principe ci-joint, résume l'architecture proposée.

On peut ainsi voir à partir de ce schéma que tant que nous avons au minimum un routeur et un commutateur fonctionnels l’infrastructure pourra toujours assurer le service

Entre autres, on doit satisfaire le cahier des charges suivant:

  • Un routage IPv4
  • Un routage IPv6
  • Interconnexion avec Internet (IPv4)
  • Interconnexion avec Internet (IPv6)
  • Sécurisation du réseau en implantant le protocol VRRP sur les routeurs.
  • Confguration des bornes wifi

Organisation du travail

Mejbar-aitmouheb-infra-E304.png

Nous avons pris l'initiative de nous répartir la réalisation de l'infrastructure et notre groupe s'est principalement chargé de l'implémentation sur la partie E304.
Sur cette partie nous devons donc configurer le commutateur (COM-1) pour:

  • Communiquer avec la serveur XEN
  • Communiquer avec le routeur R1 en E304 et le R2 en E306.


Et configurer le routeur R1 pour:

  • L'interconnexion des deux commutateurs COM-1 et COM-2 avec le réseau de l'école et internet


Le schéma proposé à droite résume le choix des interfaces pour la réalisation de l'interconnexion des équipements.

Réalisation

Rappelons la table des adressages convenue en phase d'architecture:

Nom VLAN Réseau IPV4 Réseau IPV6 IP routeur 1 IP routeur 2 Routeur virtuel Nom VM IP VM IP VM Private
XEN 200 193.48.57.176/28 2001:660:4401:60AB::/64 193.48.57.188/28 193.48.57.189/28 193.48.57.190/28 *** 193.48.57.176/28 ***
Interconnection 131 10.60.100.0/24 *** 10.60.100.1/24 10.60.100.2/24 *** *** *** ***
Groupe 1 101 10.60.101.0/24 2001:660:4401:60A1::/64 10.60.101.1/24 10.60.101.2/24 10.60.101.3/24 6phil 193.48.57.177/28 192.168.0.1
Groupe 2 102 10.60.102.0/24 2001:660:4401:60A2::/64 10.60.102.1/24 10.60.102.2/24 10.60.102.3/24 mycoplasma 193.48.57.178/28 192.168.0.2
Groupe 3 103 10.60.103.0/24 2001:660:4401:60A3::/64 10.60.103.1/24 10.60.103.2/24 10.60.103.3/24 herpesgenital 193.48.57.179/28 192.168.0.3
Groupe 4 104 10.60.104.0/24 2001:660:4401:60A4::/64 10.60.104.1/24 10.60.104.2/24 10.60.104.3/24 chlamydiae 193.48.57.180/28 192.168.0.4
Groupe 5 105 10.60.105.0/24 2001:660:4401:60A5::/64 10.60.105.1/24 10.60.105.2/24 10.60.105.3/24 chaudepisse 193.48.57.181/28 192.168.0.5
Groupe 6 106 10.60.106.0/24 2001:660:4401:60A6::/64 10.60.106.1/24 10.60.106.2/24 10.60.106.3/24 blennoragie 193.48.57.182/28 192.168.0.6
Autres 300 10.60.200.0/24 2001:660:4401:60AA::/64 10.60.200.1/24 10.60.200.2/24 10.60.200.3/24 *** *** ***

Comme on peut le voir, les VMs exposées possèdent chacune deux adresses IPv4 sur deux réseaux différents:

  1. Le réseau routé  : 193.48.57.176/28 (Class C)
  2. Le réseau non-routé : 10.10.0.0/16 (Class A)

Nous devons allouer sur le réseau non-routé, dit privé, un VLAN pour chaque groupe pour qu'il puisse y connecter son client Wifi en plus des VLANs fonctionnels.

Configuration du commutateur 1 (COM-1)

Création des VLANs

Pour la création des VLANs nous utilisons la suite de commandes ci-dessous:

conf t
 vlan <NUMERO>
  name <NOM>
  exit
 exit
write

avec les couples de valeurs:

<NUMERO> <NOM>
101 VLAN0101
102 VLAN0102
103 VLAN0103
104 VLAN0104
105 VLAN0105
106 VLAN0106
131 INTERCNX
200 XEN
Liaison COM-1 vers XEN

Cette connexion doit faire transiter les différents VLANs et doit donc être en Trunk.

Configuration de l'interface

conf t
 interface GigabitEthernet1/1
  switchport
  switchport trunk encapsulation dot1q         # On utilise le standard 802.1q pour l'encapsulation
  switchport mode trunk                        # On met l'interface en mode Trunk
  no shut
Liaison COM-1 vers R1

Configuration de l'interface

conf t
 interface GigabitEthernet4/1
  switchport
  switchport mode trunk


Liaison COM-1 vers R2

Configuration de l'interface

conf t
interface GigabitEthernet1/2
 switchport
 switchport trunk encapsulation dot1q
 switchport mode trunk
Liaison COM-1 vers Borne Wifi

Configuration de l'interface

conf t
 interface GigabitEthernet4/4
  switchport
  switchport mode trunk

Configuration du Routeur 1 (R1)

Création des Réseaux virtuels

La notion de Bridge Domain Interface (BDI)

conf t
 interface BDI101
  ip address 10.60.101.1 255.255.255.0
  standby version 2
  standby 101 ip 10.60.101.3
  standby 101 preempt
  ipv6 address 2001:660:4401:60A1::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60A1::/64 1000 900
  ipv6 nd router-preference High
  no shut 
  exit


 interface BDI102
  ip address 10.60.102.1 255.255.255.0
  standby version 2
  standby 102 ip 10.60.102.3
  standby 102 preempt
  ipv6 address 2001:660:4401:60A2::/64 eui-64
  ipv6 enable
  ipv6 nd prefix 2001:660:4401:60A2::/64 1000 900
  ipv6 nd router-preference High
  no shut 
  exit


interface BDI103
 ip address 10.60.103.1 255.255.255.0
 standby version 2
 standby 103 ip 10.60.103.3
 standby 103 preempt
 ipv6 address 2001:660:4401:60A3::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60A3::/64 1000 900
 ipv6 nd router-preference High
 no shut 
 exit


interface BDI104
 ip address 10.60.104.1 255.255.255.0
 standby version 2
 standby 104 ip 10.60.104.3
 standby 104 preempt
 ipv6 address 2001:660:4401:60A4::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60A4::/64 1000 900
 ipv6 nd router-preference High
 no shut 
 exit


interface BDI105
 ip address 10.60.105.1 255.255.255.0
 standby version 2
 standby 105 ip 10.60.105.3
 standby 105 priority 150
 standby 105 preempt
 ipv6 address 2001:660:4401:60A5::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60A5::/64 1000 900
 ipv6 nd router-preference High
 no shut 
 exit


interface BDI106
 ip address 10.60.106.1 255.255.255.0
 standby version 2
 standby 106 ip 10.60.106.3
 standby 106 priority 150
 standby 106 preempt
 ipv6 address 2001:660:4401:60A6::/64 eui-64
 ipv6 enable
 ipv6 nd prefix 2001:660:4401:60A6::/64 1000 900
 ipv6 nd router-preference High
 no shut 
 exit


interface BDI131
 ip address 192.168.222.10 255.255.255.248
 ipv6 enable
 no shut 
 exit


interface BDI200
 ip address 193.48.57.188 255.255.255.240
 standby version 2
 standby 200 ip 193.48.57.190
 standby 200 preempt
 ipv6 enable
 no shut 
 exit
exit
write
Liaison R1 vers Réseau école
interface GigabitEthernet0/0/0
 no ip address
 media-type rj45
 negotiation auto
 service instance 131 ethernet
  encapsulation dot1q 131
  rewrite ingress tag pop 1 symmetric
  bridge-domain 131
Liaison R1 vers COM-1
interface GigabitEthernet0/0/1
 no ip address
 negotiation auto
 service instance 101 ethernet
  encapsulation dot1q 101
  rewrite ingress tag pop 1 symmetric
  bridge-domain 101
service instance 102 ethernet
 encapsulation dot1q 102
 rewrite ingress tag pop 1 symmetric
 bridge-domain 102
service instance 103 ethernet
 encapsulation dot1q 103
 rewrite ingress tag pop 1 symmetric
 bridge-domain 103
service instance 104 ethernet
 encapsulation dot1q 104
 rewrite ingress tag pop 1 symmetric
 bridge-domain 104
service instance 105 ethernet
 encapsulation dot1q 105
 rewrite ingress tag pop 1 symmetric
 bridge-domain 105
service instance 106 ethernet
 encapsulation dot1q 106
 rewrite ingress tag pop 1 symmetric
 bridge-domain 106
service instance 200 ethernet
 encapsulation dot1q 200
 rewrite ingress tag pop 1 symmetric
 bridge-domain 200
service instance 201 ethernet
 encapsulation dot1q 201
 rewrite ingress tag pop 1 symmetric
 bridge-domain 201


Liaison R1 vers COM-2
interface GigabitEthernet0/0/2
 no ip address
 negotiation auto
 service instance 101 ethernet
  encapsulation dot1q 101
  rewrite ingress tag pop 1 symmetric
  bridge-domain 101
 service instance 102 ethernet
  encapsulation dot1q 102
  rewrite ingress tag pop 1 symmetric
  bridge-domain 102
 service instance 103 ethernet
  encapsulation dot1q 103
  rewrite ingress tag pop 1 symmetric
  bridge-domain 103
 service instance 104 ethernet
  encapsulation dot1q 104
  rewrite ingress tag pop 1 symmetric
  bridge-domain 104
 service instance 105 ethernet
  encapsulation dot1q 105
  rewrite ingress tag pop 1 symmetric
  bridge-domain 105
 service instance 106 ethernet
  encapsulation dot1q 106
  rewrite ingress tag pop 1 symmetric
  bridge-domain 106
 service instance 200 ethernet
  encapsulation dot1q 200
  rewrite ingress tag pop 1 symmetric
  bridge-domain 200
 service instance 201 ethernet
  encapsulation dot1q 201
  rewrite ingress tag pop 1 symmetric
  bridge-domain 201
Interconnexion avec le réseau école

Sécurisation du réseau

Services Internet

Serveur SSH

Pour se connecter à la VM une première fois, il faut utiliser la commande :

xl console mycoplasma  --depuis cordouan.

Pour sécuriser les services réseaux il faut être capable de se connecter à la VM en SSH, il faut faire quelques modifications dans le fichier etc/ssh/sshd_config de la VM. Voici la modification :

 #PermitRootLogin prohibit-password

par

 PermitRootLogin yes

Par la suite, il sera possible d'accéder à la VM directement :

ssh root@193.48.57.178

Serveur DNS

Nous avons utiliser le registrar Gandi (http://www.gandi.net) pour réserver notre nom de domaine, nous avons choisi mycoplasma2.

Dans un premier temps, faire apparaitre dans le fichier /etc/bind/named.conf.options la ligne suivante:

dnssec-validation auto;

Configuration apache

root@mycoplasma:~# cat /etc/apache2/sites-available/loadbalance.conf 
<VirtualHost 193.48.57.178:443>
	ServerName www.mycoplasma2.site
	ServerAlias mycoplasma2.site	
	DocumentRoot /var/www/html/
	ServerAdmin lina.mejbar@polytech-lille.net
	SSLEngine on
	SSLCertificateFile /etc/ssl/certs/mycoplasma2.site.crt
 	SSLCertificateKeyFile /etc/ssl/private/myserver.key 
	SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem
	SSLVerifyClient None
	ErrorLog ${APACHE_LOG_DIR}/lb-error.log
	CustomLog ${APACHE_LOG_DIR}/lb-access.log combined
</VirtualHost>
<VirtualHost 193.48.57.178:80>
	ServerName www.mycoplasma2.site
	ServerAlias mycoplasma2.site
	ProxyPass "/" "http://192.168.0.2:8002/"
 	ProxyPassReverse "/" "http://192.168.0.2:8002/"
	Redirect "/" "https://www.mycoplasma2.site"
</VirtualHost>

Enfin pour enregistrer nos modifications :

 a2enmod ssl
 a2ensite mycoplasma2.site.conf
 service apache2 restart


Comme on peut le voir sur la photo ci-dessous : nous avons accès à notre site de façon sécurisée.

Nous avons accès au site sécurisé

Configuration bind9

BIND veut dire : Berkeley Internet Name Daemon Nous avons déjà installer le package titre du lien ici.

Ensuite il faut créer un fichier de configuration dans le dossier /etc/bind/ avec les informations de notre site:

root@mycoplasma:/etc/bind# cat mycoplasma2.site
;
; BIND data file for local loopback interface
;
$TTL	604800 
@	IN	SOA	ns.chlamydiae.site. root.mycoplasma2.site (
 			4	; Serial
 			604800	; Refresh
			86400	; Retry
			2419200	; Expire
			604800 )	; Negative Cache TTL
;
	IN	NS	ns.mycoplasma2.site.
	IN	NS	ns6.gandi.net.
@       IN      A       193.48.57.178
ns	IN	A	193.48.57.178
www	IN	A	193.48.57.178

Il faut modifier le fichier named.conf.local pour lui donner le nom de notre fichier configuration et de définir les paramètres généraux d'une zone.:

root@mycoplasma:/etc/bind# cat named.conf.local 
zone "mycoplasma2.site" {
        type master;
        file "/etc/bind/mycoplasma2.site"; 
        allow-transfer {217.70.177.40;}; 
};

Il faut ensuite relancer avec la commande suivante :

service bind9 restart

Il faut aussi ajouter dans l'onglet GlueRecords le nom de domaine de notre site, et celui de gandi.

Sécurisation de site web par certificat

On doit configurer apache2 en mode sécurisé à l’aide d’une clef asymétrique et d’un certificat signé par une autorité de certification. Le CA signe un CSR (Certificate Signing Request), pour ce faire il faut créer les clefs et le CSR en utilisant openssl. Il faut ensuite le transformer en un certificat, on va donc configurer apache2 sur le port 443 afin qu'il puisse gérer du HTTPS.

openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr

Il faut ensuite renseigner quelques informations :

  Country Name (2 letter code) [AU]: France
  State or Province Name (full name) [Some-State]: Haut de France
  Locality Name (eg, city) []: Lille
  Organization Name (eg, company) [Internet Widgits Pty Ltd]: Polytech Lille
  Organizational Unit Name (eg, section) []: IMA5
  Common Name (e.g. server FQDN or YOUR name) []: mycoplasma2.site
  Email Address []:
  Please enter the following 'extra' attributes to be sent with your certificate request
  A challenge password []:
  An optional company name []:

La seule vraie ligne où il ne faut pas se tromper, c'est celle où l'on indique le nom du site (Common Name), si la ligne est fausse Gandi n'acceptera pas votre clef. Une fois ces informations renseignées, une clef est générée.

/!\ Il faut la garder précieusement et ne pas la SUPPRIMER des fichiers de la machine virtuelle, dans ce cas il faudra tout recommencer avec un nouveau nom de domaine parce que la clef n'est générable qu'une seule fois. Il faut maintenant copier le contenu de ce fichier avec le "BEGIN CERTIFICATE REQUEST-----" et le "END CERTIFICATE REQUEST-----" sur le site de gandi.

Sécurisation de serveur DNS par DNSSEC

root@mycoplasma:/etc/bind# vim named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones"

Pour générer les clefs dans un même dossier, il faut le créer voici le chemin pour notre groupe :

root@mycoplasma:/etc/bind/mycoplasma2.site.dnssec# 

Pour générer les clés KSK on lance la commande suivante :

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

Pour ZSK :

dnssec-keygen -a RSASHA1 -b 1048 -n ZONE mycoplasma2.site

On peut maintenant rajouter nos clefs dans le fichier mycoplasma2.site:

root@mycoplasma:~# cat /etc/bind/mycoplasma2.site
$TTL	604800
$include /etc/bind/mycoplasma2.site.dnssec/mycoplasma2.site-ksk.key
$include /etc/bind/mycoplasma2.site.dnssec/mycoplasma2.site-zsk.key
@	IN	SOA	ns.chlamydiae.site. root.mycoplasma2.site (
 			4	; Serial
			604800	; Refresh
			86400	; Retry
			2419200	; Expire
			604800 )	; Negative Cache TTL
;
	IN	NS	ns.mycoplasma2.site.
	IN	NS	ns6.gandi.net.
@      IN      A       193.48.57.178
ns	IN	A	193.48.57.178
www	IN	A	193.48.57.178

On signe les enregistrements de la zone en exécutant la commande suivante :

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

Dernière étape, il fait ajouter le chemin du fichier pour utiliser le fichier de zone signé :

root@mycoplasma:~# cat /etc/bind/named.conf.local 
zone "mycoplasma2.site" {
       type master;
       file "/etc/bind/mycoplasma2.site.signed"; 
       allow-transfer {217.70.177.40;}; 
};


service bind9 restart


Nous vérifions sous dnsviz.net le bon fonctionnement du DNSSEC :

Groupe2 dnsViz.png

Serveur Freeradius

Ferme de serveurs Web

Il faut implanter une architecture d’équilibrage de charge pour un site Web.

Architecture générale de la ferme

Pour ce faire, chaque binôme a créé une nouvelle machine virtuelle Xen qui hébergera un serveur Web. Ainsi chaque binôme pourra disposer de plusieurs serveurs Web proposant exactement le même site sur plusieurs machines différentes. Ces serveurs Web ne seront pas directement disponibles d’Internet mais au travers d’un équilibreur de charge tournant sur leur machine virtuelle principale.

Nom de la Machine Virtuelle  : private-mycoplasma

Commandes: La MV doit être créée sur Cordouan.

root@zabethX:~# ssh root@cordouan.insecserv.deule.net 
root@cordouan:~# xen-create-image --hostname=private-mycoplasma --ip=ip 192.168.0.2 --dir=/usr/local/xen
root@cordouan:~# xl create private-mlycoplasma.cfg

Il faut suivre les logs de la création de la machine virtuelle avec le fichier suivant:

root@cordouan:~# tail -f /var/log/xen-tools/private-mycoplasma.log

Pour accèder une première fois à la machine virtuelle, il faut utiliser cette commande car SSH n'est pas encore autorisé.

root@cordouan:~# xl console private-mycoplasma

Pour l'activer voici les modifications, il faut remplacer la ligne suivante de ce fichier /etc/ssh/sshd_config :

" #PermitRootLogin prohibit-password"  par  " PermitRootLogin yes" 

Il est possible de se connecter en SSH et de paramétrer le proxy :

root@cordouan:~# ssh root@192.168.0.2
root@private-mycoplasma:~# export http_proxy=http://proxy.plil.fr:3128
root@private-mycoplasma:~# export https_proxy=http://proxy.plil.fr:3128
root@private-mycoplasma:~# xen-create-image --hostname=herpesgenital --dhcp --dir=/usr/local/xen --force

Il faut modifier l'adresse mac, pour avoir une adresse mac unique pour chaque binôme, et il faut configurer le bridge.

vif = [ 'mac=00:16:3E:2B:FF:6A,bridge=IMA5sc-priv' ]

Voici notre nouvelle structure :

G2 Structure.png

Pour y arriver, il faut modifier les fichiers /etc/network/interfaces des deux machines virtuelles avec les adresses, Gateway, et netmask marque sur la photo ci-dessus. Et valider les modifications avec les commandes habituelles : ifdown ethi et ifup ethi

Mascarade

iptables -P FORWARD DROP
iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24
iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24
iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24
echo 1 > /proc/sys/net/ipv4/ip_forward
apt install iptables-persistent

Il faut ensuite décommenter

net.ipv4.ipforward=1

Création du conteneur

Il est important dans cette partie que tous les binômes se mettent d'accord pour installer le même package de docker

root@mycoplasma:~/#  ansible-galaxy install geerlingguy.docker

Voici le fichier DockerFile que l'on a codé :

root@mycoplasma:~/test# cat docker/Dockerfile 
FROM centos:latest
MAINTAINER NewstarCorporation
RUN yum -y install httpd
COPY mycoplasma/index.html /var/wwww/html/index.html
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
EXPOSE 80


On a eu le problème suivant lorsqu'on souhaite visiter notre site :

G2 mycoplasmaSite.png


root@corduan:~/# docker ps => Notre docker "mycoplasma"  tourne donc  ce n'est pas le problème.
root@corduan:~/# docker exec -it <CONTAINER ID> /bash/bin 
root@<CONTAINER ID>:~/# ls /var/www/html 

Avec cette dernière commande, on peut voir que le fichier index.html ne s'est pas copié malgré les commandes du Dockerfile. Pourtant le Docker build s'est exécuté sans afficher d'erreurs. On peut voir les logs pour avoir une idée :

 root@corduan:~/# docker logs <CONTAINER ID>

Voici le résultat :

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.5. Set the 'ServerName' directive globally to suppress this message

Configuration des serveurs internes

Equilibreur de charge

Tests d’intrusion

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

Pour scanner l'environnement Wi-Fi, on utilise l'outil airodump-ng. On remarque qu'il y a deux types de wifi, les cracottes avec un c et les kracottes avec un k. On lance l'interface en mode moniteur :

airmon-ng start  wlan0mon
airodump-ng --encrypt wep wlan0mon

On a choisi de casser la clé WEP de la cracotte5 sur le channel 2, on enregistre les paquets dans webPack.

airodump-ng -c 2 –-bssid 04:DA:D2:9C:5O:5A -w wepPack wlan0mon

La commande suivante permet de se faire passer pour un client afin de générer de l'activité sur le réseau.

aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:5O:5A wlan0mon

On utilise les paquets enregistrés pour réaliser le cassage:

aircrack-ng wepDico*.cap
G2 wep.png

Cassage de mot de passe WPA-PSK par force brute

Il faut lancer la commande ip a : récupérer le nom de l'interface wifi : ""wlx40a5ef0f6518"". Il faut le lancer avec la commande :

airmon-ng start wlx40a5ef0f6518

Il faut ensuite écouter le réseau, on récupère alors le channel(2), le nom du wifi, le BSSID (04:DA:D2:9C:5O:5A) avec la commande suivante:

airodump-ng --encrypt wpa wlan0mon

Nous avons choisi de cracker "kracote03"

airodump-ng wlan0mon --bssid 04:DA:D2:9C:5O:5A --ch 2 -w capture

Il faut l'arreter une fois qu'on obtient un handshake

G2 WPA.png

Pour générer un dictionnaire, on a besoin de la commande suivante :

sudo apt-get update
sudo apt-get install crunch
crunch 8 8 -o dico.txt 0123456789
  • 8 8 : donne des codes de 8 caractères au minimum et au maximum

On lance cette commande :

airodump-ng -c 2 --bssid 04:DA:D2:9C:5O:5A -w ./home/pifou/crack wlx40a5ef0f6518

Voici une capture de la commande :

aircrack crack/capture.cap -w dico.txt 
G2 catch.png

On remarque ce la photo ci dessus que la commande a pris 21 min et 42 sec.

Partie ASR

Ansible

Ansible permet l'automatisation par connexion sans mot de passe. Il faut d'abord générer une clef asymétrique :

ssh-keygen -t rsa

Installation de la clef publique sur les machines virtuelles 192.168.0.1 à 192.168.0.6  :

cat .ssh/id_rsa.pub | ssh 192.168.0.1 "cat >> /root/.ssh/authorized_keys2"

Il faut installer Ansible :

apt install ansible

Hosts

Ensuite il faut rédiger l'inventaire ( /etc/ansible/hosts ) c'est un fichier yaml, il faut très attention à la syntaxe. Ce fichier regroupe le parc informatique :

all:
hosts:
 interne:
   ansible_host: 192.168.0.2
children:
 serveur-web:
  hosts:
   192.168.0.[1:6]

Playbooks

Maintenant qu'on a défini toutes les machines dans notre parc et qu'on peut se connecter automatique, on peut exécuter une commande à distance sur tout le parc à l'aide d'Ansible. Un "playbook" c'est une liste des tâches à effectuer sur ces machines.