TP sysres IMA5 2022/2023 G2

De Wiki d'activités IMA
Révision datée du 2 décembre 2022 à 13:59 par Fderliqu (discussion | contributions) (DHCP)
Installation OS Xen Partitions SSH HTTP/HTTPS DNS DNSSEC Fail2Ban Raid5 Chiffrement Sécurisation Wifi WPA2-EAP Minecraft Intrusion WiFi
✅(manque mascarade) 🆗(juste la wep)

Installation des systèmes

Installation de l'OS

Récupérer le .iso sur internet : fichier .iso

Si ce n'est pas fait : unmount la clé usb

Pour rendre la clé bootable : dd if=<path_image> of=<path_device> bs=4M status=progress où :

  • <path_image> est le chemin vers l'image .iso
  • <path_device> est le chemin vers la clé usb, pour la trouver :
    • ls /dev/ sans la clé de brancher
    • un deuxième ls /dev/ avec la clé, c'est généralement /dev/sda ou /dev/sdb

Reboot le pc, puis aller sur le boot menu, et booter sur la clé usb, réalisez les étapes un à un, rappel :

  • Adresse machine = 172.26.145.50+chiffre de la zabeth /24 (mask : 255.255.255.0)
  • Adresse routeur = 172.26.145.254
  • Server dns = 193.48.57.48
  • Proxy = proxy.polytech-lille:3128
  • Configuration de l'interface réseau sur eth0

Reboot le PC sans la clé, puis autoriser les connection ssh root : mettre à true PermitRootLogin dans /etc/ssh/sshd_config

Installer Python pour Ansible

Gestion des zabeth par Ansible

Remplissage du fichier /etc/ansible/hosts sur zabeth21

Nous avons crée le rôle network pour la configuration du réseau. On utilise un package pour crée automatiquement les répertoires d'un rôle

  ansible-galaxy init network

La machine hôte choisit automatiquement son ipv4 et son ipv6 en fonction de son numéro de zabeth. Ce rôle utilise également un template et un fichier séparé pour les variables :

Tasks :

  - name: network configuration
  template:
      src: 'templates/interfaces'
      dest: '/etc/network/interfaces'
      owner: root
      group: root
      mode: '0644'

Vars :

  num: "{{ inventory_hostname | regex_replace('^[^0-9]*([0-9]*).*$','\\1') }}"
  ip4: "{{ num | int + 50 }}"
  ip6: "00{{ num }}"

Template :

  # This file describes the network interfaces available on your system
  # and how to activate them. For more information, see interfaces(5).
  
  source /etc/network/interfaces.d/*
  
  # The loopback network interface
  auto lo
  iface lo inet loopback
  
  # Bridge interface
  auto eth0 eth1 bridge
  iface eth0 inet manual
     up ip link set $IFACE up
  
  iface eth1 inet manual
     up ip link set $IFACE up
  
  iface bridge inet static
    bridge_ports eth0 eth1
    address 172.26.145.{{ ip4 }}
    netmask 255.255.255.0
    gateway 172.26.145.254
  
  iface bridge inet6 static
    address 2001:0660:4401:6050:5000:0000:0000:{{ ip6 }}/64
    autoconf 1
    privext 2
    accept_ra 2

Installation de la Xen

Pour créer la xen :

xen-create-image --hostname=dio2 --ip=172.26.145.102 --dist=chimaera --nameserver=193.48.57.48 --dir=/usr/local/xen/ --netmask=255.255.255.0 --gateway=172.26.145.254 --force

Pour lancer la Xen :

xen console dio2

Sur Capbreton, il faut créer les LVM /home /var :

lvcreate -L10G -ndio2_home storage ; mkfs /dev/storage/dio2_home

lvcreate -L5G -ndio2_var storage ; mkfs /dev/storage/dio2_var

Ensuite il faut changer le config file (situé dans /etc/xen) ajouter ces deux lignes dans la partie disk =

  'phy:/dev/storage/dio2_home,xvdb1,w',
  'phy:/dev/storage/dio2_var,xvdb2,w',

Reboot Xen halt

On vérifie si les LVM sont présents et comment ils sont formatés avec cette ligne : lsblk -f

Comme /var est plein, on doit effectuer ces commandes pour éviter d'écraser ce qu'il y a dans /var lors du mount :

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

Dans le fichier /etc/fstab on ajoute ces deux lignes ci-dessous pour configurer le mount les LVM définitivement :

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

On lance mount -a et on reboot la Xen

Services Internet

Pour cette partie, on réalise toute les commandes sur la VM dio2 en root

SSH d'un machine distante

Dans le fichier : /etc/ssh/sshd_config, mettre PermitRootLogin à yes

Puis restart du service ssh service ssh restart

Création des clefs et CSR

Réservation du nom de domaine brochette.site

Installation de openssl pour la génération du certificat SSL :

  apt install openssl
  openssl req -nodes -newkey rsa:2048 -sha256 -keyout myserver.key -out server.csr -utf8
  COUNTRY NAME : FR
  STATE OR PROVINCE NAME : Nord
  LOCALITY : Lille
  ORGANISATION NAME : PolytechLille
  ORGANISATION : SE
  COMMON NAME : brochette.site
  EMAIL ADRESS : Florian.Derlique@polytech-lille.net

Apache HTTP/HTTPS

  apt install apache2

Configuration apache pour autoriser HTTPS, ajouter ces lignes après le bloc <VirtualHost *:80> du fichier /etc/apache2/sites-available/000-default.conf :

  <VirtualHost *:443>
      ServerName brochette.site
      ServerAlias www.brochette.site
      ServerAdmin webmaster@brochette.site
      DocumentRoot /var/www/html
         # directives obligatoires pour TLS
          SSLEngine on
          SSLCertificateFile       /root/brochette.site.crt
          SSLCertificateKeyFile    /root/myserver.key
          SSLCertificateChainFile  /root/GandiStandardSSLCA2.pem
  
          ErrorLog /var/log/apache2/error.log
          CustomLog /var/log/apache2/access.log combined
  </VirtualHost>

On recupère le .crt (fichier de certification) et le .pem (fichier de chaine de certification) sur le site du fournisseur de nom de domaine gandi. Le .key (clé de certification) est obtenu normalement par la commande openssl de la partie précédente

On active le module ssl pour que le protocle tls fonctionne avec le serveur apache2 (fait le lien symbolique entre les définitions du module contenus dans /etc/apache2/sites-available vers /etc/apache2/site-enabled) :

  a2enmod ssl
  a2ensite default-ssl.conf

Reload le service apache :

  service apache2 restart

Forcer la connexion en HTTPS, ajouter cette ligne dans le bloc <VirtualHost *:80> :

  Redirect permanent / https://brochette.site

Pour ajouter vos premiers fichiers dans le site : dans le repertoire /var/www/html

Serveur DNS

Installation de bind9 : apt install bind9

Nom de serveur DNS : ns.brochette.site, ip : 193.48.57.179

Nom de serveur DNS secondaire : ns6.gandi.net, ip : 217.70.177.40

Sur l'interface web gandi :

  • Ajouter le glue record pour ns.brochette.site (le glue record est utilisé par les utilisateurs avancés pour associer un nom d'hôte (serveur de noms ou DNS) à une adresse IP au niveau du registre).
  • Ajouter les deux noms de server si dessus, dans l'onglet "Nameserver"

Configuration du fichier d'option

Dans le fichier /etc/bind/named.conf.options, si failed les log sont dans /var/log/daemon.log

  options {
          directory "/var/cache/bind";
  
          // If there is a firewall between you and nameservers you want
          // to talk to, you may need to fix the firewall to allow multiple
          // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
  
          // If your ISP provided one or more IP addresses for stable
          // nameservers, you probably want to use them as forwarders.
          // Uncomment the following block, and insert the addresses replacing
          // the all-0's placeholder.
  
          forwarders {
                  8.8.8.8;
                  4.4.2.2;
          };
  
          
  //========================================================================
          // If BIND logs error messages about the root key being expired,
          // you will need to update your keys.  See https://www.isc.org/bind-keys
          
  //========================================================================
          dnssec-validation auto;
          recursion yes;
          listen-on-v6 { any; };
          listen-on { any; };
          allow-recursion { trusted; };
          allow-transfer{ none; };
  };
  acl "trusted" {
          193.48.57.179;  //ns.brochette.site
          217.70.177.40;  //ns6.gandi.net
  };

Configuration forward and reverse lookup zones

  • La zone lookup "forward" est check lorsque l'utilisateur demande une adresse ip à partir de son nom de domaine
  • La zone lookup "reverse" st check lorsque l'utilisateur demande un nom d'hôte à partir de son adresse ip

Dans le fichier /etc/bind/named.conf.local

  zone "brochette.site" {
          type master;
          file "/etc/bind/db.brochette.site";
          allow-transfer{ 217.70.177.40; }; //ns6.gandi.net
          notify yes;
  };
  zone "57.48.193.in-addr.arpa" {
      type master;
      file "/etc/bind/db.193.48.57"; 
      allow-transfer {217.70.177.40; }; //ns6.gandi.net
      notify yes;
  };

Création des fichiers de zones

  • Copier le fichier local de base :

cp /etc/bind/db.local /etc/bind/db.brochette.site pour la forward zone

cp /etc/bind/db.127 /etc/bind/db.193.48.57 pour la reverse zone

  • Contenu du nouveau fichier forward zone:
  ;
  ; BIND data file for local loopback interface
  ;
  $TTL    604800
  @       IN      SOA     ns.brochette.site. root.brochette.site. (
                                3         ; Serial
                           604800         ; Refresh
                            86400         ; Retry
                          2419200         ; Expire
                           604800 )       ; Negative Cache TTL
  ;
  @       IN      NS      ns.brochette.site.
  @       IN      NS      ns6.gandi.net.
  @       IN      A       193.48.57.179
  @       IN      AAAA    2001:660:4401:60b0:216:3eff:fe21:d102
  ns      IN      A       193.48.57.179
  ns      IN      AAAA    2001:660:4401:60b0:216:3eff:fe21:d102
  www     IN      A       193.48.57.179
  www     IN      AAAA    2001:660:4401:60b0:216:3eff:fe21:d102
  127     IN      A       193.48.57.179
  • Contenu du nouveau fichier reverse zone :
  ;
  ; BIND reverse data file for local loopback interface
  ;
  $TTL    604800
  @       IN      SOA     ns.brochette.site. root.brochette.site. (
                                1         ; Serial
                           604800         ; Refresh
                            86400         ; Retry
                          2419200         ; Expire
                           604800 )       ; Negative Cache TTL
  
  ;NS records
  
  @       IN      NS      ns.brochette.site.
  
  ;PTR records
  
  179     IN      PTR     ns.brochette.site. ;193.48.57.179

Restart bind9 : service named restart

Tests

  • Forward :
  root@dio2:~# host -t any brochette.site localhost
  Using domain server:
  Name: localhost
  Address: 127.0.0.1#53
  Aliases:
  
  brochette.site has SOA record ns.brochette.site. root.brochette.site. 3 604800 86400 2419200 604800
  brochette.site name server ns.brochette.site.
  brochette.site name server ns6.gandi.net.
  brochette.site has address 193.48.57.179
  brochette.site has IPv6 address 2001:660:4401:60b0:216:3eff:fe21:d102
  • Reverse :
  root@dio2:~# host 193.48.57.179 localhost
  Using domain server:
  Name: localhost
  Address: 127.0.0.1#53
  Aliases:
  
  179.57.48.193.in-addr.arpa domain name pointer ns.brochette.site.

Sécurisation DNSSEC

On crée un répertoire pour stocker les clés DNSSEC : mkdir /etc/bind/brochette.site.dnssec

On ajoute ces lignes dans notre /etc/bind/named.conf.options

  dnssec-enable yes;
  dnssec-validation auto;

On crée les deux clés dsnsec ksk et zsk (il y aura sûrement des warning car l'algorithme RSA/SHA1 est obsolète) :

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

On les renomme proprement :

  mv ./Kbrochette.site.+005+14263.key ./brochette.site-ksk.key
  mv ./Kbrochette.site.+005+14263.private ./brochette.site-ksk.private
  mv ./Kbrochette.site.+005+19815.key ./brochette.site-zsk.key
  mv ./Kbrochette.site.+005+19815.private ./brochette.site-zsk.private

On inclut les clés dans le fichier de zone /etc/bind/db.brochette.site

  $INCLUDE "/etc/bind/brochette.site.dnssec/brochette.site-zsk.key";
  $INCLUDE "/etc/bind/brochette.site.dnssec/brochette.site-ksk.key";

On signe le fichier de zone :

  dnssec-signzone -o brochette.site -k brochette.site-ksk.key ../db.brochette.site brochette.site-zsk.key 

On modifie le fichier /etc/bind/named.conf.local pour prendre en compte les fichiers de zones signées :

  file "/etc/bind/db.brochette.site.signed";

On ajoute la clé publique ksk sur gandi en précisant algorithme RSA/SHA1

Bannissement Fail2Ban

On regarde si notre port SSH subit des attaques par force brute :

  grep 'sshd' /var/log/auth.log | grep Failed

Sortie :

  Nov 18 06:01:00 dio2 sshd[10216]: Failed password for root from 107.172.21.122 port 51698 ssh2
  Nov 18 08:08:21 dio2 sshd[10512]: Failed password for root from 46.193.65.70 port 49157 ssh2
  Nov 18 08:41:02 dio2 sshd[10680]: Failed password for root from 107.172.21.122 port 52798 ssh2
  Nov 18 10:05:25 dio2 sshd[10752]: Failed password for root from 107.172.21.122 port 53856 ssh2
  Nov 18 11:01:12 dio2 sshd[10797]: Failed password for root from 172.26.145.74 port 54398 ssh2
  Nov 18 11:01:17 dio2 sshd[10797]: Failed password for root from 172.26.145.74 port 54398 ssh2
  Nov 18 11:01:23 dio2 sshd[10797]: Failed password for root from 172.26.145.74 port 54398 ssh2
  Nov 18 11:01:28 dio2 sshd[10799]: Failed password for root from 172.26.145.74 port 54400 ssh2
  Nov 18 12:15:26 dio2 sshd[1417]: Failed password for root from 172.26.145.64 port 53410 ssh2
  Nov 18 12:15:32 dio2 sshd[1417]: Failed password for root from 172.26.145.64 port 53410 ssh2

En effet, nous avons des attaques, installons le package fail2ban puis on run le service, iptables va filtrer les paquets réseaux :

  apt install iptables
  apt install fail2ban
  service fail2ban start
  service fail2ban enable
  service fail2ban status

On active le bannissement sur le service sshd (SSH) et named-refused (Serveur DNS) dans le fichier : /etc/fail2ban/jail.d/defaults-debian.conf :

  [sshd]
  enabled = true
  
  [named-refused]
  enabled = true

Si on essaye de restart le service fail2ban il y aura une erreur sur l'activation de named-refused car par défaut, le service de logging de named est éteint. Il faut ajouter le block logging dans /etc/bind/named.conf.options

  logging {
          channel security_file {
             	file "/var/log/named/security.log" versions 3 size 30m;
        	severity dynamic;
        	print-time yes;
    	   };
    	   category security {
        	security_file;
    	   };
  };

Il va lire le fichier /var/log/named/security.log qui n'existe pas, il faut le crée et mettre l'utilisateur bind comme owner :

  mkdir /var/log/named
  touch /var/log/named/security.log
  cd /var/log
  chown bind -R named/
  chown bind named/security.log 

On restart et on regarde le client :

  root@dio2:~# fail2ban-client status
  Status
  |- Number of jail:	2
  `- Jail list:	named-refused, sshd
  root@dio2:~# fail2ban-client status sshd
  Status for the jail: sshd
  |- Filter
  |  |- Currently failed:	1
  |  |- Total failed:	2
  |  `- File list:	/var/log/auth.log
  `- Actions
     |- Currently banned:	0
     |- Total banned:	0
     `- Banned IP list:	
  root@dio2:~# fail2ban-client status named-refused         
  Status for the jail: named-refused
  |- Filter
  |  |- Currently failed:	0
  |  |- Total failed:	0
  |  `- File list:	/var/log/named/security.log
  `- Actions
     |- Currently banned:	0
     |- Total banned:	0
     `- Banned IP list:

On peut également gérer le temps de bannissement, on ajoute ceci dans le fichier de configuration :

  [DEFAULT]
  
  bantime.increment = true
  bantime.factor = 1
  bantime.formula = ban.Time * (1<<(ban.Count if ban.Count<20 else 20)) * banFactor

Cette formule à pour but de calculer le nouveau temps de bannissement selon le temps précédent multiplié par un facteur selon de nombre de ban d'une même adresse ip multiplié par le facteur de ban, qui passe de 1,2,4,8,16,32 ...

On teste l'efficacité du service ban ssh en simulant des tentatives de connexion intempestives, après 4 essais, je me suis fait ban. Dans les logs :

  INFO    [sshd] Found 92.147.10.240 - 2022-11-18 23:54:53
  2022-11-18 23:54:56,763 fail2ban.filter         [3380]: INFO    [sshd] Found 92.147.10.240 -  2022-11-18 23:54:56
  2022-11-18 23:54:59,967 fail2ban.filter         [3380]: INFO    [sshd] Found 92.147.10.240 - 2022-11-18 23:54:59
  2022-11-18 23:55:04,474 fail2ban.filter         [3380]: INFO    [sshd] Found 92.147.10.240 - 2022-11-18 23:55:04
  2022-11-18 23:55:08,273 fail2ban.filter         [3380]: INFO    [sshd] Found 92.147.10.240 - 2022-11-18 23:55:08
  2022-11-18 23:55:08,616 fail2ban.actions        [3380]: NOTICE  [sshd] Ban 92.147.10.240

Configuration du Réseau

Avec Julien,Thibault,Logan,Quentin,Tom : Configuration en SR52

  • Connection vers l'interface Te1/1/2 vers port6 armoire de brassage E304
  • Connection vers l'interface Te1/1/5 vers port5 armoire de brassage E304
  • Configuration des interface en Vlan 531

Configuration réseau :

Création vlan 531

seulement si n'existe pas (faire (config)#show vlan

  #enable
  #config t
  (config)#vlan 531
  (config-vlan)#name INTERCO-4B
  (config-vlan)#exit
  (config)#do write

Configuration interface

  (config)#interface Te1/1/2
  (config-if)#switchport
  (config-if)#switchport mode access
  (config-if)#switchport access vlan 531
  (config-if)#exit
  (config)#interface Te1/1/5
  (config-if)#switchport
  (config-if)#switchport mode access
  (config-if)#switchport access vlan 531
  (config-if)#exit
  (config)#exit
  #write

Coffre Fort

Coffre_fort_code

Coffre_fort_code_v2

Coffre_fort_code_v3

Réalisations

Sécurisation des données

On sécurise nos données en créant un système raid 5 sur notre vm :

Création des partitions :

  lvcreate -L1G -ndio2-raid1 storage
  lvcreate -L1G -ndio2-raid2 storage
  lvcreate -L1G -ndio2-raid3 storage

Attache des partitions sur notre xen :

  'phy:/dev/storage/dio2-raid1,xvdb3,w',
  'phy:/dev/storage/dio2-raid2,xvdb4,w',
  'phy:/dev/storage/dio2-raid3,xvdb5,w'

Reboot de la xen

Check si les partitions sont présente avec lsblk

Création du système raid dans la xen :

  mdadm --create /dev/md0 --level=5 --raid-devices 3 /dev/xvdb3 /dev/xvdb4 /dev/xvdb5
  mkfs /dev/md0
  mount /dev/md0 /mnt
  cat /proc/mdstat 

Sortie :

  Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
  md0 : active raid5 xvdb5[3] xvdb4[1] xvdb3[0]
        2093056 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
     
  unused devices: <none>

On change le /etc/fstab pour mount le système raid dès la mise en route de la xen :

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

Chiffrement de partitions

On sécurise nos données en créant un système raid 5 sur notre vm :

Création des partitions :

  lvcreate -L1G -ndio2-crypt storage

Attache la partition sur notre xen :

  'phy:/dev/storage/dio2-raid1,xvdb6,w'

Reboot de la xen

Check si la partition est présente avec lsblk

Installation du package cryptsetup

On invoque cette commande pour formater la partition au type LUKS, et on défini le mot de passe :

  cryptsetup -y -v luksFormat /dev/xvdb6

On ouvre la zone crypté KUKS :

  cryptsetup luksOpen /dev/xvdb6 cryptage

Si tout est ok, on regarde ce qu'il y a dans /dev/mapper/cryptage

  ls -l /dev/mapper/cryptage

On crée le système de fichier :

  mkfs /dev/mapper/cryptage

On mount la partition sur /media/crypt

  mount /dev/mapper/cryptage /media/crypt/

On peut écrire un fichier dans /media/crypt et avant de fermer la partition on l'a umount : umount /media/crypt/

On ferme la partition LUKS:

  cryptsetup luksClose cryptage

Sécurisation WiFi WPA2-EAP

Ici nous devons configurer le routeur C9200 et la borne de point de accès pour crée notre SSID et configurer freeradius, un service d'authentication en mode PEAP :

Configuration de Freeradius

Ajout du client wifi-ima5sc-brochette dans le fichier /etc/freeradius/3.0/clients.conf :

  client wifi_ima5sc_brochette{
          ipaddr = 10.1.0.3 //Adresse de l'AP
          secret = brochette
  }

Ajout d'utilisateurs dans le fichier /etc/freeradius/3.0/users:

  <votre_login> Cleartext-Password := "<votre_password>"

Activation du mode EAP en PEAP, dans le fichier /etc/freeradius/3.0/mods-enabled/eap (on change la ligne default_eap_type à peap)

On run freeradius : freeradius -X

Configuration de la borne AP

Configuration de la borne AP (IP,gateway) :

  #conf t
  (config)#ip default-gateway 10.1.0.1 
  (config)#interface BVI 1 //Bridge Virtual Interface
  (config-if)#ip address 10.1.0.3 255.255.255.0
  (config-if)#exit
  (config)#do write
  (config)#exit

Configuration de l'authentification EAP :

  #conf t
  (config)#aaa new-model
  (config)#aaa group server radius radius_brochette
  (config-sg-radius)#server 193.48.57.179 auth-port 1812 acct-port 1813
  (config-sg-radius)#exit
  (config)#aaa authentication login eap_brochette group radius_brochette
  (config)#radius-server host 193.48.57.179 auth-port 1812 acct-port 1813 key brochette
  (config)#do write
  (config)#exit

Configuration du SSID :

  #conf t
  (config)#dot11 ssid SSID_BROCHETTE
  (config-ssid)#vlan 12
  (config-ssid)#authentication open eap eap_rose
  (config-ssid)#authentication network-eap eap_rose
  (config-ssid)#authentication key-management wpa
  (config-ssid)#mbssid guest-mode
  (config-ssid)#exit
  (config)#do write
  (config)#exit

Association du SSID à la borne AP :

  #conf t
  (config)#interface Dot11Radio0
  (config-if)#ncryption vlan 12 mode ciphers aes-ccm tkip
  (config-if)#ssid SSID_BROCHETTE
  (config-if)#mbssid
  (config-if)#no shut
  (config-if)#exit
  (config)#do write
  (config)#exit

Configuration Dot11Radio0.12 (configuration vlan 12)

  #conf t
  (config)#interface Dot11Radio0.12
  (config-subif)#encapsulation dot1Q 12
  (config-subif)#no ip route-cache
  (config-subif)#bridge-group 12
  (config-subif)#bridge-group 12 subscriber-loop-control
  (config-subif)#bridge-group 12 spanning-disabled
  (config-subif)#bridge-group 12 block-unknown-source
  (config-subif)#exit
  (config)#do write
  (config)#exit

Configuration de l'interface Gigabit 0.12 :

  #conf t
  (config)#interface GigabitEthernet0.12
  (config-subif)#encapsulation dot1Q 12
  (config-subif)#bridge-group 12
  (config-subif)#exit
  (config)#do write
  (config)#exit

Configuration du routeur C9200

Configuration vlan 1 (A FAIRE UNE FOIS !) :

  #conf t
  (config)#interface vlan 1
  (config-if)#ip address 10.1.0.1 255.255.255.0
  (config-if)#exit
  (config)#do write
  (config)#exit

Configuration de l'interface filaire (j'ai branché la borne sur le port Gi1/0/1) faire un #show interface pour voir sur lequel on a branché la borne (A FAIRE UNE FOIS !) :

  #conf t
  (config)#interface Gi1/0/1
  (config-if)#switchport
  (config-if)#switchport mode trunk
  (config-if)#switchport trunk allowed vlan add 1
  (config-if)#exit
  (config)#write
  (config)#exit

Création et configuration du vlan12 :

  #conf t
  (config)#vlan 12
  (config-vlan)#name brochette
  (config-vlan)#exit
  (config)#interface vlan 12
  (config-if)#ip address 10.62.0.252 255.255.255.0
  (config-if)#exit
  (config)#do write
  (config)#exit

On lance freeradius par la commande freeradius -X aaprès avoir stoppé le service, nous obtenons après connexion au SSID :

Liste des réseau wifi à proximité
  ...
  [eap] = ok
  ...
  Found Auth-Type = eap
  ...
  eap_peap: Success
  eap: Sending EAP Success (code 3) ID 9 length 4
  ...
  User-Name = "fderliqu"
  Finished request

DHCP

Maintenant que nous avons crée notre point d'accès mobile, nous remarquons que le routeur ne peut pas attribuer d'adresse ip au client, il faut alors configurer le serveur dhcp du routeur :

Dans une premier temps, on va exclure les adresses ip déja prises, soit l'ip du vlan 12 dans la C9200 (E306), pas besoin d'exclure la broadcast, il le fait automatiquement :

  #conf t
  (config)#ip dhcp excluded-address 10.62.0.252

Puis on configure le serveur dhcp :

  (config)#ip dhcp pool brochette
  (dhcp-config)#dns-server 193.48.57.179
  (dhcp-config)#domain-name ns.brochette.site
  (dhcp-config)#network 10.62.0.0 255.255.255.0
  (dhcp-config)#default-router 10.62.0.252
  (dhcp-config)#exit
  (config)#do write
  (config)#exit

On check si le serveur dhcp est correctement config avec #show ip dhcp pool

Sortie :

  Pool brochette :
   Utilization mark (high/low)    : 100 / 0
   Subnet size (first/next)       : 0 / 0 
   Total addresses                : 254
   Leased addresses               : 0
   Excluded addresses             : 1
   Pending event                  : none
   1 subnet is currently in the pool :
   Current index        IP address range                    Leased/Excluded/Total
   10.62.0.2            10.62.0.1        - 10.62.0.254       0     / 1     / 254  

On teste si cela marche :

  • On se connecte avec un téléphone avec l'utilisateur que nous avons défini dans le serveur d'authentification freeradius
  • On regarde avec #show ip dhcp binding si nous sommes bien connecté avec un bon ip

Sortie :

  Bindings from all pools not associated with VRF:
  IP address      Client-ID/              Lease expiration        Type       State      Interface
                  Hardware address/
                  User name
  10.62.0.2       0160.6ee8.cd23.52       Dec 03 2022 11:13 AM    Automatic  Active     Vlan12
  • On peut aussi regarder l'adresse ip de notre téléphone après s'être connecté au réseau wifi SSID_BROCHETTE (on peut voir que l'adresse MAC correspond aussi) :
Téléphone connecté à notre SSID
Adresse IP de mon téléphone

Mascarade

Pas encore fait :(

Intrusion

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

On se met dans la même interface réseau :

  airmon-ng start wlan0mon

On écoute sur un réseau WPA : on a pris cracotte03, pour récuperer le BSSID :

  airodump-ng --encrypt wep wlan0mon

LA SUITE ICI THIBAULT


Serveur Minecraft

Ping du serveur en vert soit il est connecté
Dans le serveur avec un message de la console

Le but de cette partie est d'installer un serveur Minecraft sur notre dio2.

Méthode 1 : Installation brute

On récupère le fichier server.jar sur notre dio2 avec wget (on installe le package si n'est pas installé):

  wget https://piston-data.mojang.com/v1/objects/f69c284232d7c7580bd89a5a4931c3581eae1378/server.jar

Pour structurer notre VM, on place ce fichier dans le répertoire /root/minecraft. Avant de procéder à l'installation, on installe la dernière version de open-jdk : apt install openjdk-17-jre

On lance le .jar (-Xmx et -Xms permet de spécifier la ram à allouer):

  java -Xmx500M -Xms500M -jar server.jar nogui

Dans le fichier eula.txt mettre eula=false à eula=true, ce que signifie que vous avez accepté les conditions générale d'utilisation

On relance le .jar avec la même commande

Pour que le serveur reste actif, on peut lancer le .jar dans un multiplexeur de terminaux comme screen par exemple.

Pour ce faire :

  • Lancer le package screen
  • Pour se détacher du terminal : [Ctrl+A][D]
  • Pour revenir sur le terminal : screen -dr

On peut se connecter à l'adresse 193.48.57.179 ou brochette.site si le serveur DNS est correctement configuré (voir partie ci-dessus)

Méthode 2 : En utilisant un conteneur docker

On peut facilement trouver des conteneurs dockers contenant un serveur minecraft, par exemple celui la, puis suivre le README.md pour lancer le server. Cette méthode est assez pratique puisque il ne nécessite pas d'installer les packages open-jdk