« SE2a5 2023/2024 EC1 » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Ligne 132 : Ligne 132 :
== Fichiers de configuration Radius ==
== Fichiers de configuration Radius ==


  Création des deux instances freeradius : dupliquer le fichier "3.0" dans /etc/freeradius , les renommer avec un autre nom :  
  Création des deux instances freeradius : dupliquer le fichier "3.0" dans /etc/freeradius , les renommer en 'vlan2' et 'vlan3':  
   
   
  [[Fichier:Instances radius.png|sans_cadre|570x570px]]
  [[Fichier:Instances radius.png|sans_cadre|570x570px]]


('''''NOTE''''' : l'essai et la vérification des serveurs freeradius est fait dans la partie précédente "Script de lancement")
  Pour configurer les serveurs freeradius, j'ai modifié les fichiers suivants :
  Pour configurer les serveurs freeradius, j'ai modifié les fichiers suivants :
   
   
  Fichier  
  Fichier users :
fichier permettant de définir des utilisateurs pour les autoriser à se connecter à un réseau. On vient y renseigner le nom de l'utilisateur et un mot de passe.
Fichier clients.conf :
fichier où on y renseigne les configurations des clients communiquant avec le serveur freeradius.
Dans notre cas, nous devrons renseigner le TPlink car il va envoyer les requêtes d'authentification des différents utilisateurs aux serveurs freeradius.
Fichier mods-enabled/eap :
Ce fichier contient les paramètres pour la méthode d'authentification 'eap'.
Fichier radiusd.conf :
Il s'agit du fichier de configuration princial où l'on va indiquer les différents chemins vers les fichiers de configuration.
Fichier sites-enabled :
On vient indiquer dans ce fichier de configuration les différents paramètres permettant la connexion aux serveurs freeradius.
On indique au serveur les IP et les ports sur lesquels il doit écouter les requêtes d'authentification.
 
'''''<u>Pour l'instance VLAN2 :</u>'''''
 
fichier users{
greleve1    Cleartext-Password := "mdp123"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = "2"
bob Cleartext-Password := "hello"
Reply-Message := "Hello, %{User-Name}"
}
 
fichier clients.conf{
client tplink {
ipaddr = 192.168.2.2
secret = passwordSecret
}
}
 
fichier /mods-enabled/eap{
eap {
default_eap_type = peap
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = ${max_requests}
}
 
fichier radiusd.conf{
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius/vlan2
radacctdir = ${logdir}/radacct
   
   
}


  Pour l'instance VLAN2 :
  fichier /sites-enabled/default{
ipaddr = 192.168.2.1
#  Port on which to listen.
#  Allowed values are:
# integer port number (1812)
# 0 means "use /etc/services for the proper port"
port = 2020
}
listen {
ipaddr = 192.168.2.1
port = 2021
type = acct
}
 
 
 
'''''<u>Pour l'instance VLAN3 :</u>'''''
 
fichier users{
greleve2    Cleartext-Password := "mdp123"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = IEEE-802,
Tunnel-Private-Group-Id = "3"
   
   
bob Cleartext-Password := "hello"
Reply-Message := "Hello, %{User-Name}"
}


fichier clients.conf{
client tplink {
ipaddr = 192.168.3.2
secret = passwordSecret
}
}


  Pour l'intance VLAN3 :
  fichier /mods-enabled/eap{
eap {
   
   
default_eap_type = peap
timer_expire = 60
ignore_unknown_eap_types = no
cisco_accounting_username_bug = no
max_sessions = ${max_requests}
}


fichier radiusd.conf{
prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius/vlan3
radacctdir = ${logdir}/radacct
}


fichier /sites-enabled/default{
ipaddr = 192.168.3.1
#  Port on which to listen.
#  Allowed values are:
# integer port number (1812)
# 0 means "use /etc/services for the proper port"
port = 3030
}
   
   
listen {
ipaddr = 192.168.3.1
port = 3031
type = acct
}


== Fichiers de configuration du serveur DHCP ==
== Fichiers de configuration du serveur DHCP ==
Ligne 156 : Ligne 302 :
   
   
  # dhcpd.conf
  # dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
   
   
# option definitions common to all supported networks...
  option domain-name "example.org";
  option domain-name "example.org";
  option domain-name-servers ns1.example.org, ns2.example.org;
  option domain-name-servers ns1.example.org, ns2.example.org;

Version du 15 juin 2024 à 00:14

Objectifs

A la base il vous est demandé d'implanter à nouveau le point 7.2 de votre sujet de travaux pratiques pour le module "sécurité dans les systèmes et réseaux" mais avec des différences notables.

Les différences sont les suivantes :

  • le point d'accès n'est pas un point d'accès aironet avec un IOS cisco mais un point d'accès TP-LINK EAP615 avec le logiciel OpenWRT ;
  • le réseau est réduit à un seul PC, de préférence connecté à Internet ;
  • vous n'implanterez que 2 SSID sur 2 VLAN pour simuler deux groupes d'élèves, appellons les SSID WiFi1 et WiFi2 associés aux VLAN 2 et VLAN 3.

Vous êtes libre de choisir les réseaux IPv4 à configurer sur les VLAN 2 et VLAN 3 du moment que vous utilisez des réseau non routés n'étant pas en conflit avec un réseau déjà utilisé par votre PC.

Vous devez installer les services suivants sur le PC :

  • créez deux interfaces vlan2 et vlan3 au dessus de l'interface Ethernet de connexion avec le point d'accès ;
  • deux serveurs d'identification à base de freeradius, faites en sorte que chaque instance utilise un répertoire de configuration différent, une instance doit se lier à vlan2 et la seconde à vlan3 ;
  • deux serveurs DHCP, une instances doit se lier à l'interface code>vlan2 et la seconde à l'interface vlan3 ;
  • réalisez une mascarade pour permettre aux machines utilisant WiFi1 et WiFi2 d'accèder à Internet.

Concernant le point d'accès vous devez déjà installer le logiciel OpenWRT.

Un fois OpenWRT opérationnel, il est est demandé de configurer deux SSID, un associé avec le VLAN 2 et l'autre avec le VLAN 3 avec une identification par WPA-EAP en pointant vers vos deux instances de freeradius. Vous devez tester deux méthodes de configuration. Une première via des lignes de commandes à taper sous OpenWRT via ssh, une seconde en utilisant l'interface Web LuCi d'OpenWRT. Ne tentez pas de méthode mixte.

Vous pouvez considérer qu'une configuration fonctionne si elle respecte les contraintes ci-dessus et si un téléphone peut se connecter en WiFi sur chaque SSID et sortir sur Internet (e.g. navigation Web).

Il s'agit là d'un cahier des charges initial qui peut être revu en cas d'ambigüité. Vous avez jusqu'au 15 juin pour réaliser cette épreuve complémentaire. Il vous est fortement conseillé de produire un travail régulier le plus tôt possible et de faire des rapports réguliers (en particulier au travers de ce Wiki) à votre encadrant. S'y prendre à la dernière minute avec un seul retour la veille de la date limite risque fortement de conduire à un échec.

Matériel nécessaire

Le matériel nécessaire est constitué :

  • d'un PC sous Linux pour l'implantation du serveur d'identification ;
  • d'un adaptateur USB/Ethernet pour connecter le PC au point d'accès sans impacter la connexion du PC à l'Internet, cet adaptateur est fourni par l'encadrant ;
  • d'un point d'accès TP-Link EAP615 permettant l'installation d'OpenWRT, ce point d'accès est fourni par l'encadrant.

Travail réalisé

Documents Rendus

Interfaces VLAN

Fichier de configuration pour la création des interfaces VLAN sous Linux :

S'assurer de charger le module modprobe 8021q sur le PC linux.
Ce module va nous permettre de créer et gérer les interfaces VLAN, pour segmenter le réseau en multiples réseaux distincts.

Commande : 

sudo modprobe 8021q
Pour vérifier que le module est bien chargé, utiliser la commande suivante : 

lsmod | grep 8021q

Lsmod 8021q check.png
Pour vérifier quelle est l'interface réseau du convertisseur ethernet vers USB-C, on utilise la commande ip a : 

Interface de connexion eth to usb.png
On remarque donc que nous allons devoir créer les VLANs sur l'interface de connexion enx0c3796a8eabc.

Dans le fichier de configuration /etc/network/interfaces, on y créer les VLAN 2 (IP statique : 192.168.2.1) et VLAN 3 (IP statique : 192.168.3.1): 

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source /etc/network/interfaces.d/*

auto vlan2
iface vlan2 inet static
	address 192.168.2.1
	netmask 255.255.255.0
	vlan-raw-device enx0c3796a8eabc
	

auto vlan3
iface vlan3 inet static
	address 192.168.3.1
	netmask 255.255.255.0
	vlan-raw-device enx0c3796a8eabc
Description du fichier interface : 
auto vlanX        -> directive pour que l'interface s'active dès le démarrage du PC.
inet static       -> méthode pour attribuer une adresse IP statique pour l'interface VLAN
address           -> adresse IP attribuée au VLAN
netmask           -> masque de sous réseau utilisé 
vlan-raw-deviceX  -> identifiant réseau auquel le VLAN est associé
Pour vérifier que les interfaces VLAN sont bien créées, on utilise les commandes suivantes : 
-> systemctl restart networking (redémarrer le service réseau)
-> systemctl status networking (pour voir que le service réseau fonctionne et qu'il n'y a pas d'erreurs)

Systemctl status networking.png


-> ip a : 

Interfaces vlans ip a.png 

Script de lancement

Script de lancement des serveurs d'identification et des serveurs DHCP

Pour le script de lancement, j'ai voulu lancer les serveurs freeradius en mode débug. Ce mode permet de voir les indentifications en temps-réel et de vérifier si un utilisateur se connecte avec le bon login et mot-de-passe.

Il faut utiliser un terminal spécifique pour le lancement de ce script.

Pour terminer le script de lancement, il faut utiliser les touches CRTL-C.

Le script a le déroulement suivant :
1) on redémarre le service réseau
2) on redémarre les serveurs DHCP pour attribuer les IP aux utilisateurs connectés aux VLANs spécifiques
3) on lance une première instance freeradius, liée au VLAN2, qui se trouve dans le répertoire /etc/freeradius/vlan2/
4) on lance une deuxième instance freeradius, liée au VLAN3, qui se trouve dans le répertoire /etc/freeradius/vlan2/
Script de lancement : 

systemctl restart networking
systemctl restart isc-dhcp-server

freeradius -X -d /etc/freeradius/vlan2/ &
freeradius -X -d /etc/freeradius/vlan3/ &

wait
Vérification que le script se lance correctement avec la commande ./: 

Freeradius vlan3.png

Freeradius vlan2.png

On remarque que les serveurs DHCP et Freeradius se lancent correctement et qu'ils écoutent respectivement sur les IP: 192.168.2.1 / port : 2020 et IP: 192.168.3.1 / port 3030.

Les serveurs sont bien liés aux VLAN 2 et 3. 

Fichiers de configuration Radius

Création des deux instances freeradius : dupliquer le fichier "3.0" dans /etc/freeradius , les renommer en 'vlan2' et 'vlan3': 

Instances radius.png
(NOTE : l'essai et la vérification des serveurs freeradius est fait dans la partie précédente "Script de lancement")

Pour configurer les serveurs freeradius, j'ai modifié les fichiers suivants :

Fichier users : 
fichier permettant de définir des utilisateurs pour les autoriser à se connecter à un réseau. On vient y renseigner le nom de l'utilisateur et un mot de passe.


Fichier clients.conf :
fichier où on y renseigne les configurations des clients communiquant avec le serveur freeradius. 
Dans notre cas, nous devrons renseigner le TPlink car il va envoyer les requêtes d'authentification des différents utilisateurs aux serveurs freeradius.


Fichier mods-enabled/eap :
Ce fichier contient les paramètres pour la méthode d'authentification 'eap'.


Fichier radiusd.conf :
Il s'agit du fichier de configuration princial où l'on va indiquer les différents chemins vers les fichiers de configuration.


Fichier sites-enabled :
On vient indiquer dans ce fichier de configuration les différents paramètres permettant la connexion aux serveurs freeradius.
On indique au serveur les IP et les ports sur lesquels il doit écouter les requêtes d'authentification.
Pour l'instance VLAN2 :
fichier users{

greleve1     Cleartext-Password := "mdp123"
	Tunnel-Type = VLAN,
	Tunnel-Medium-Type = IEEE-802,
	Tunnel-Private-Group-Id = "2"


bob	Cleartext-Password := "hello"
	Reply-Message := "Hello, %{User-Name}"
}
fichier clients.conf{

client tplink {
	ipaddr = 192.168.2.2
	secret = passwordSecret
}

}
fichier /mods-enabled/eap{

eap {

	default_eap_type = peap
	timer_expire = 60
	ignore_unknown_eap_types = no
	cisco_accounting_username_bug = no
	max_sessions = ${max_requests}

}
fichier radiusd.conf{

prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius/vlan2
radacctdir = ${logdir}/radacct

}
fichier /sites-enabled/default{

ipaddr = 192.168.2.1

	#  Port on which to listen.
	#  Allowed values are:
	#	integer port number (1812)
	#	0 means "use /etc/services for the proper port"
	port = 2020

}


listen {
	ipaddr = 192.168.2.1
	port = 2021
	type = acct
}


Pour l'instance VLAN3 :
fichier users{

greleve2     Cleartext-Password := "mdp123"
	Tunnel-Type = VLAN,
	Tunnel-Medium-Type = IEEE-802,
	Tunnel-Private-Group-Id = "3"


bob	Cleartext-Password := "hello"
	Reply-Message := "Hello, %{User-Name}"
}
fichier clients.conf{

client tplink {
	ipaddr = 192.168.3.2
	secret = passwordSecret
}

}
fichier /mods-enabled/eap{

eap {

	default_eap_type = peap
	timer_expire = 60
	ignore_unknown_eap_types = no
	cisco_accounting_username_bug = no
	max_sessions = ${max_requests}

}
fichier radiusd.conf{

prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = ${exec_prefix}/sbin
logdir = /var/log/freeradius
raddbdir = /etc/freeradius/vlan3
radacctdir = ${logdir}/radacct

}
fichier /sites-enabled/default{

ipaddr = 192.168.3.1

	#  Port on which to listen.
	#  Allowed values are:
	#	integer port number (1812)
	#	0 means "use /etc/services for the proper port"
	port = 3030

}


listen {
	ipaddr = 192.168.3.1
	port = 3031
	type = acct
}

Fichiers de configuration du serveur DHCP

/etc/dhcp/dhcpd.conf

# dhcpd.conf

option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;


subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.10 192.168.2.100;
    option routers 192.168.2.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "myLocalDNS.com";
}

subnet 192.168.3.0 netmask 255.255.255.0 {
    range 192.168.3.10 192.168.3.100;
    option routers 192.168.3.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option domain-name "myLocalDNS.com";
}
Dans /etc/default/isc-dhcp-server , ajouter les vlans dans "INTERFACES4=" " : 

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#	Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="vlan2 vlan3"
Restart du serveur dhcp pour prendre en compte les modifications : 
systemctl restart isc-dhcp-server / systemctl status isc-dhcp-server (pour vérifier les erreurs)

Procédure pour installer OpenWRT

Etape 1 : Installation de OpenWrt sur le Tp-link (méthode via interface en ligne)

Aller sur le site d'OpenWrt (download firmware) et trouver le logiciel adapté au tplink eap615-wall : https://openwrt.org/toh/views/toh_fwdownload

Openwrt download.png


Télécharger le "Factory Image", et le renommer "factory.bin" (dossier download du pc)

Factory.bin.png


Brancher le tplink à une box ou routeur et aller sur le site http://tplinkeap.net (login : admin ; password : admin)

Page d'acceuil TPlink.png


Une fois sur la page d'accueil, aller dans System -> Firmware

Page d'acceuil2tplink.png

Update firmware page.png

Dans Browse, choisir dans le dossier Download 'factory.bin' et cliquer sur Update. L'installation d'OpwenWrt va forcer l'ip du tplink à 192.168.1.1,  il faudra utiliser cette ip pour se connecter sur LuCi (interface web d'OpenWrt).

Débrancher le TPlink de la box / routeur, le connecter à l'injecteur de courant et au PC via le convertisseur ethernet -> USB-C. Sur un navigateur, rentrer l'ip 192.168.1.1 .

LuCi.png


Test connexion via ssh -> 'ssh root@192.168.1.1'

Ssh openwrt.png


Etape 2 : Installation des packages nécessaires pour utiliser l'option WPA-EAP lors de la création des ssid

Vérification de l'architecture utilisé par le TPlink -> commande cat/etc/os-release

Architecture.png


Aller sur la page download de OpenWrt pour télécharger les packages associé à l'architecture 'mipsel_24kc' : https://downloads.openwrt.org/releases/23.05.3/packages/mipsel_24kc/base/


Télécharger les packages suivants : 

Packages.png


Dans l'interface LuCi, aller dans l'onglet System -> Software, remove le package pré-installé "wpad-bacics".
Upload les nouveaux packages avec l'onglet "Upload Package". 
Commencer par les "ucode" (le package wpad doit être installé en dernier, étant dépendant des "ucode")

OpenwertSoftwrepack.png

Commandes en ligne pour configurer le point d'accès

Création d'un device vlan :


uci add network device

uci set network.@device[-1].name='br-lan.2'
uci set network.@device[-1].type='8021q'
uci set network.@device[-1].ifname='br-lan'
uci set network.@device[-1].vid='2'
uci set network.@device[-1].macaddr='A8:42:A1:B2:B6:D4'
uci set network.@device[-1].mtu='1500'
uci set network.@device[-1].txqueuelen='1000'
uci set network.@device[-1].ipv6='auto'
uci set network.@device[-1].ipv6mtu='1500'
uci set network.@device[-1].dadtransmits='1'
uci set network.@device[-1].promisc='1'
uci set network.@device[-1].acceptlocal='1'
uci set network.@device[-1].arp_accept='1'
uci set network.@device[-1].drop_gratuitous_arp='0'
uci set network.@device[-1].sendredirects='1'
Création d'une interface wifi1 :


uci set network.wifi1=interface
uci set network.wifi1.proto='static'
uci set network.wifi1.device='br-lan.2'
uci set network.wifi1.ipaddr='192.168.2.2'
uci set network.wifi1.netmask='255.255.255.0'
uci set network.wifi1.gateway='192.168.2.1'
Pour enregistrer les modifications sur le device vlan et l'interface : 

uci commit network
/etc/init.d/network restart
Création du ssid Wifi1:

uci set wireless.@wifi-iface[0]=wifi-iface
uci set wireless.@wifi-iface[0].network='wifi1'
uci set wireless.@wifi-iface[0].device='radio0'
uci set wireless.@wifi-iface[0].mode='ap'
uci set wireless.@wifi-iface[0].ssid='Wifi1'
uci set wireless.@wifi-iface[0].encryption='wpa'
uci set wireless.@wifi-iface[0].auth_server='192.168.2.1'
uci set wireless.@wifi-iface[0].auth_port='2020'
uci set wireless.@wifi-iface[0].auth_secret='passwordSecret'
uci set wireless.@wifi-iface[0].auth_type='WPA-EAP'
Pour enregistrer les modifications sur le ssid 'Wifi1':

uci commit wireless
wifi reload

Procédure pour configurer le point d'accès avec LuCi

Étape 1 : Création du device type Vlan 'br-lan3'

Dans le menu Network -> Interfaces, cliquer sur devices et ajouter la configuration suivante :

Brl3 GS.png


Brl3 AS.png


Étape 2: Modification de la configuration du bridge device 'br-lan'

Image brlan.png


Brl AS.png


Brlan bridge.png

Note :

. Le Vlan d'ID 99 permet juste de pouvoir continuer de configurer les vlans 2 et 3. Il n'a pas d'importance ni de conséquence sur le paramétrage du bridge.

. Ce paramétrage permet de tagger les Vlans 2 et 3 : permet une gestion plus efficace du réseau en regroupant les utilisateurs par Vlan

. Activation du port LAN1 -> utilisé pour dissocier le PC "routeur" et le PC paramétrage du TPlink. M'a permis également de faire du débug car quand je voulais faire un ping depuis un autre pc vers une interface VLAN créée auparavant, je ne recevais pas de paquets de retour. J'ai donc installé TSHARK sur mon pc ubuntu et WIRESHARK pour analyser les trames envoyées / reçues, pour faire des tests et trouver la bonne configuration du TPlink pour faire communiquer les différentes machines entre elles.


Étape 3: Création de l'interface 'wifi2'

Dans le menu Network -> Interfaces, ajouter la configuration suivante :


Imagewifi2interface.png


WIFI2 AS.png

Étape 5: Modification de l'interface 'lan'

Lan GS.png


Lan AS.png


Note : pour pouvoir configurer le TPlink, il faudra donc utiliser l'IP 192.168.10.2 et connecter un cable ethernet sur le port eth1 du TPlink


Étape 6: Création de l'interface 'wifi2'

Dans le menu Network -> Wireless, ajouter la configuration suivante :


ACW2 GS.png


ACW2 WIFITYPE.png