• Aucun résultat trouvé

Problèmes entre WCCP et IWSVA

Dans le document Authentification centralisée (Page 40-63)

Une fois la plateforme de test mise en place et fonctionnels, on m’a apporté quelques détails sur ce qui est actuellement mis en place, principalement au niveau du service comptabilité.

Parmi ces spécificités, on trouve :

 Des accès directs vers certaines adresses, sans passer par le proxy

 Des serveurs effectuant des requêtes sur d’autres protocoles que du HTTP(s)

Il a donc été nécessaire d’étudier la mise en place de ces spécificités entre l’ASA et la solution de sécurité IWSVA

AUTRES PROJETS EFFECTUÉS

En ce qui concerne les autres projets sur lesquels j’ai travaillé, on pourra trouver :

10 HyperText Transfer Protocol

11 Domain Name Service

12 File Transfer Protocol

13 HyperText Transfer Protocol Secured

14 Real Time Streaming Protocol

un script permettant de vérifier la présence de comptes utilisateurs sur certains serveurs ;

un script permettant de vérifier le nombre de caractères des répertoires personnels

des utilisateurs, afin qu’ils correspondent à la norme mise en place au sein du SI ;

une vérification et mise à jour de pilotes d’imprimantes ;

des réparations de smartphones ;

la création, dans plusieurs langues (anglaise, espagnole, italienne) de MSI permettant

l’installation simplifiée et silencieuse (sans demander à l’utilisateur de cliquer sur un quelconque bouton) de programmes ;

du support utilisateur.

Cependant, je n’estime pas ces sujets assez importants pour être détaillés, mais je tenais ce que ceux-ci sont tout de même représentés dans ce rapport.

CONCLUSION

Au travers de ce rapport, je me suis efforcé de démontrer l’importance d’une authentification centralisée au sein d’un système d’information. Une politique qui ne doit pas être négligée, puisqu’elle est facteur d’un gain de temps important, et qu’elle simplifie et sécurise des démarches concernant les éléments systèmes et réseaux de sécurité indispensables à l’entreprise.

Pour être efficace, un Système d’Information a besoin d’être le plus automatisé possible, puisque des manipulations répétitives nuisent à la productivité d’un service informatique.

Au cours de ce stage chez CWF, j’ai pu appréhender les méthodes appliquées sur les projets informatiques, j’ai eu à cœur de proposer des solutions en prenant en compte tous les critères nécessaires, tels que le coût, la maintenabilité, la mise en place, et j’ai effectué le travail nécessaire pour simplifier au maximum toute procédure afférente.

J’ai eu la possibilité de mettre en pratique ce qu’on appelle le « savoir-faire » ingénieur : mettre en place, à partir d’un besoin, une procédure simple et compréhensible, générée par la synthèse à la fois d’un aspect théorique (manuels administrateurs ou utilisateurs) et d’un aspect pratique (batterie de tests fonctionnels, de configurations référencées dans les manuels ou non, confrontation de différentes informations, etc.), le tout menant à un réel apport de valeur ajoutée à un système d’information.

L’autonomie qui m’a été offerte m’a permis de confirmer mon avis sur le fait qu’avec un point de départ et un point d’arrivée, il existe une multitude de chemins, parfois très éloignés les uns des autres, parfois très proches, parfois se rejoignant ou s’écartant mutuellement.

Parfois, je n’avais qu’un point de départ pour bâtir ma réflexion : de celui-ci, il m’a fallu explorer les différents chemins, et analyser ce que serait le meilleur point d’arrivée pour l’entreprise, en respectant toutes les contraintes nécessaires.

J’ai également vu que, malgré qu’on puisse imaginer que tout est faisable, il arrive parfois que des sujets sur lesquels on a travaillé et dépensé beaucoup de temps n’arrivent pas à leur terme, par exemple à cause d’incompatibilités techniques qui nécessiteraient trop de changements pour pouvoir fonctionner (comme par exemple la limitation technique entre le protocole WCCP et l’IWSVA, bloquante pour le service comptabilité, qui imposerait un changement d’un matériel complet).

J’ai eu l’opportunité de découvrir tous les aspects du travail d’ingénieur en informatique au sein d’une société de la taille de CWF, avec tout ce que cela implique, notamment :

 le support utilisateur, local et à distance (international) ;

 la cohésion d’une équipe en situation réelle ;

 l’autonomie sur les projets ;

 la réactivité en cas de crise.

Mon parcours s’enrichit donc avec CWF, qui, suite à mes stages précédents, améliore ma vision du monde de l’entreprise :

 dans le domaine de l’éducation (Oniris, 2010) ;

 dans la Moyenne Entreprise (ME) ne disposant que d’un informaticien (MBP, 2011) ;

 dans la grande entreprise industrielle (CWF, 2012).

Cet enrichissement se poursuivra lors de ma dernière année d’études, via un contrat d’alternance avec une grande entreprise.

J’estime les missions qui m’ont été confiées comme réussies, puisque, même si je n’ai pu atteindre le stade de mise en place de tous ces projets, j’ai mené à bien une étude théorique et pratique du fonctionnement de celles-ci, et ai proposé des solutions lorsque la mise en place était bloquée par un problème technique.

Pour conclure, je tenais à remercier une nouvelle fois Monsieur Julien CHARPENTIER, pour sa disponibilité, la confiance qu’il m’a accordé sur ces projets et son accueil au sein de CWF.

TABLE DES ILLUSTRATIONS

FIGURE 1 : MARQUESSOUSLICENCEDÉTENUESPAR CWF...5

FIGURE 2 : TOPOLOGIERÉSEAUDETEST...9

FIGURE 3 : PROCESSUSD'AUTHENTIFICATION KERBEROS...16

FIGURE 4 : FONCTIONNEMENTD'UNEARCHITECTURE RADIUSSURCONNEXION WIFI...17

FIGURE 5 : TABLEAUDESMÉTHODESSUPPORTÉESPARLESDIFFÉRENTSPROTOCOLES...18

FIGURE 6 : FONCTIONNEMENTD'UNPROXY...23

FIGURE 7 : TOPOLOGIEDURÉSEAUAVECPROXY RADIUS...24

FIGURE 8 : AUTHENTIFICATION LDAP...27

FIGURE 9 : AUTHENTIFICATIONAVEC KERBEROSET LDAP...27

FIGURE 10 : AUTHENTIFICATIONAVEC WINBIND...28

FIGURE 11 : RAPPELDELATOPOLOGIERÉSEAU...33

FIGURE 12 : FONCTIONNEMENTDU WCCP...37

FIGURE 13 : PRIORITÉDU WCCP...38

TABLE DES MATIÈRES

4/ L’infrastructure du Système d’Information de CWF...7

II – Missions... 8

1/ Introduction... 8

Introduction à la virtualisation... 10

Présentation d’ESXi... 11

Présentation de l’ASA 5505... 11

2/ Authentification AAA sur matériel Cisco... 13

Existant... 13

NPS, serveur Radius de Microsoft... 19

Windows Server... 20

NPS... 21

FreeRadius avec authentification sur LDAP...21

Fonctionnement... 22

Configuration de Freeradius en tant que proxy...22

Introduction au fonctionnement d’un proxy... 23

Mise en place et configuration... 24

Conclusion quant à la configuration de Freeradius...25

3/ Authentification centralisée des serveurs Linux... 26

Existant... 26

Besoin... 26

Recherche... 26

4/ Authentification des machines connectées sans fil...30

Existant... 30

Ce qui se passe dans la pratique... 33

5/ Proxy transparent sur firewall Cisco... 35

Existant ... 35

Problèmes... 35

Besoin... 35

Recherche... 35

1/ Présentation d’IWSVA... 35

2/ Présentation de WCCP... 36

4/ Non priorité du protocole... 37

5/ Services WCCP courants... 39

6/ Problèmes entre WCCP et IWSVA... 39

Autres projets effectués... 39

Conclusion... 41

Table des illustrations... 43

Table des matières... 44

Index... 47

Glossaire... 48

Bibliographie... 51

Annexes... 52

INDEX

AAA... 11, 12, 19, II, III ACL... 35, 46, VI Active Directory... 12, 25, 26, 27, IV AD... 9, 14, 24, 25, 31

GLOSSAIRE

AAA Authentication, Authorization and Accounting (Authentification, Autorisation et Traçabilité) : modèle de sécurité permettant une gestion centralisée des accès à un équipement.

ACL Access control List : Liste de contrôle d’accès, utilisée partout où des permissions sont accordées à des utilisateurs selon plusieurs critères

AD Voir Active Directory

Active Directory Adaptation des services d’annuaire LDAP par Microsoft, pour les systèmes d’exploitation Windows.

ASA Adaptive Security Appliance : Matériel Cisco Assurant des fonctionnalités de pare-feu, génération suivante des PIX.

CHAP Protocole d’authentification sans mot de passe, à base de « challenge ».

Chaque partie (client et serveur) doit disposer d’un « secret » commun Cisco Fabricant de matériel réseau, leader mondial.

Debian Distribution Linux axé sur le tout « open-source »

DMZ DeMilitarized Zone (zone démilitarisée) : zone de sécurité entre le réseau Internet et le réseau local, servant à séparer ceux-ci

DNS Domain Name Service (Service de Noms de Domaine) : service permettant de translater une adresse intelligible (exemple www.google.fr) en adresse qui sera utilisée par la machine pour accéder au service demandé

Gio Gibioctet : unité de mesure informatique, représentant 230 octets (1073741824 octets) : à ne pas confondre avec Go, pour gigaoctet, qui représente 109 octets (1000000000 octets)

IWSVA InterWeb Security Virtual Appliance : Distribution Linux CentOS avec le logiciel de sécurité Trend Micro IWSS intégré.

Kerberos Protocole d’authentification très sécuritaire

LDAP Lightweight Directory Access Protocol : Protocole d’accès à un annuaire d’entreprise (recensant généralement toutes les informations utiles concernant les employés d’une entreprise)

MIT Massachussets Institute of Technology : Université du Massachussets, regroupant des chercheurs dans tous les domaines scientifiques (science, technologie, informatique, etc.)

MS-CHAP Protocole, défini par la RFC2759 de janvier 2000, qui est la version Microsoft du protocole CHAP en en supprimant principalement l’obligation de secrets partagés.

PAM Pluggable Authentication Modules : démon d’authentification par défaut sous Linux, fonctionnant via des modules.

PEAP Protected Extensible Authentication Protocol : méthode de transfert sécurisée d’informations d’authentification

Radius Remote Authentication Dial-In User Service : Protocole permettant de centralizer des données d’authentification

RAM Random Access Memory (mémoire à accès aléatoire) : terme utilisé pour désigner la mémoire vive d’une machine, servant à stocker des données temporaires, généralement le temps de l’exécution d’un programme RFC Request For Comments (demande de commentaire) : série de documents,

numérotés, décrivant des aspects techniques du domaine des réseaux Switch (commutateur) : équipement d’interconnexion à l’intérieur d’un réseau

local

TACACS+ Protocole propriétaire, développé par Cisco, permettant une authentification AAA.

VPN Virtual Private Network : Réseau privé virtuel (créé via un tunnel), créé à partir de réseaux physiques distincts (par exemple, dans des pays différents)

WCCP Web Cache Communication Protocol : protocole de routage de contenu développé par Cisco : il permet notamment la redirection de flux de manière totalement transparente pour l’utilsiateur

WEP Wired Equivalent Privacy : protocole de sécurisation des réseaux sans-fil de type Wi-Fi : cassable en quelques secondes, il n’est plus recommandé au profit du WPA ou du WPA2.

WiFi Ensemble de protocoles permettant la communication sans fil

WPA Wi-Fi Protected Access : mécanisme de sécurisation des réseaux sans-fil

de type Wi-Fi.

BIBLIOGRAPHIE

[1] Cisco Systems, Serveurs de sécurité adaptatifs de la gamme ASA 5500, San José, CA, 2007.

[2] A. Mbaye, Mise en oeuvre d'un service de sécurité.

[3] B. Boutherin, Sécuriser un réseau Linux, Eyrolles, 2006.

[4] Cisco, «Cisco IOS Firewall feature guide,» [En ligne]. Available:

http://www.cisco.com/en/US/docs/ios/12_0t/12_0t5/feature/guide/iosfw2_1.html#wp11997.

[Accès le 12 Juin 2012].

[5] Cisco, «Cisco Security Appliance Command Line Configuration Guide,» [En ligne]. Available:

http://www.cisco.com/en/US/docs/security/asa/asa72/configuration/guide/dhcp.html#wp10 94445. [Accès le 4 Juin 2012].

[6] F. Facciola, «Be transparent with WCCP,» [En ligne]. Available: http://doublef.org/archives/be-transparent-with-wccp.

[7] T. Micro, «IWSVA 5.1 Installation Guide,» [En ligne]. Available:

http://docs.trendmicro.com/all/ent/iwsva/v5.1/en-us/iwsva_5.1_ig.pdf . [Accès le 20 Juin 2012].

ANNEXES

CONFIGURATION DE L’AAA SUR ÉQUIPEMENT CISCO

Origine : [2]

router(config)# aaa new-model

Cette commande active l’authentification AAA sur le routeur

router(config)# aaa authentication login default group radius local

Définit la liste des méthodes d’authentification : dans le cas présent, si le serveur Radius ne répond pas, on pourra passer par une authentification locale. C’est une sécurité indispensable.

router(config) # aaa authentication login CONSOLE local

On garde ici le login classique actuellement en place quand on se connecte via la console.

router(config)# aaa authorization exec default group radius local router(config)# aaa authorization network default group radius local

Même configuration ici pour l’autorisation que pour l’authentification.

router(config)# radius-server host hostname auth-port port acct-port port key cle

Spécifie le nom du serveur AAA, ses ports de fonctionnement et la clé de chiffrage qui sera utilisée entre le routeur et le serveur AAA. On peut entrer plusieurs fois cette commande dans le cas où nous aurions plusieurs serveurs RADIUS.

router(config)# access-list access-list-number permit tcp host source eq radius host destination

Créé une liste d’accès pour permettre au serveur AAA de renvoyer du trafic. L’adresse source est l’adresse IP du serveur AAA, la destination est l’adresse IP de l’interface du routeur où se situe le serveur AAA.

router(config)# aaa accounting exec default start-stop group radius local router(config)# aaa accounting network default start-stop group radius local router(config)# aaa processes 6

SPÉCIFICITÉS DE L’ASA POUR LA CONFIGURATION AAA

hostname(config)# aaa-server radius protocol radius

Ici, on commence donc par créer le “groupe”, nommé radius (pour plus de simplicité à retenir), utilisant le protocole radius.

hostname(config)# aaa-server radius (INSIDE) host 192.168.1.249

Ici, on spécifie le groupe auquel on va rajouter un serveur (radius), puis l’interface (que l’on aura au préalable nommée via nameif), puis enfin l’adresse IP du serveur auquel l’ASA devra s’authentifier.

Ensuite, la configuration pour activer le AAA est différente : pas besoin de aaa new-model :

hostname(config)# aaa authentication ssh console radius LOCAL

Ici par exemple, on va activer l’authentification AAA pour la connexion au SSH. Si le serveur Radius ne répond pas, on garde tout de même une méthode locale d’authentification (attention, le LOCAL s’écrit bien en majuscules)

hostname(config)# ssh 192.168.1.0 255.255.255.0 inside

Activation de l’écoute SSH sur l’interface inside, pour le réseau 192.168.1.0

hostname(config)# crypto key generate rsa

Génération de la clé publique/privée du serveur pour le SSH, nous pouvons maintenant nous y connecter depuis un client SSH ! (Par exemple, PuTTY sous Windows, ou nativement sous Linux) Les commandes debug aaa authentication, debug aaa authorization, debug aaa common nous permettrons de débuguer, si besoin, le comportement de l’authentification.

CONFIGURATION DE FREERADIUS AVEC LDAP

Nous utiliserons les compatibilités LDAP15 de l’Active Directory pour permettre ceci. Autrement, il nous aurait fallu joindre la machine au domaine, ce qui n’était pas nécessaire,

Depuis une machine Debian16, on effectue la commande :

apt-get install freeradius

Le fichier de configuration global est situé ici : /etc/freeradius/radiusd.conf

Le fichier de configuration pour joindre un annuaire LDAP est situé ici :

/etc/freeradius/modules/ldap

Il faudra modifier la ligne server= par l’adresse de son serveur LDAP, ainsi que la ligne basedn, par l’arborescence que nous avons au niveau de notre annuaire.

Il faudra également rajouter une ligne dans/etc/freeradius/clients.conf : client 192.168.1.0/24 {

secret = testing123 shortname = LAN }

Avec l’adresse réseau, puis la clé partagée (qui sera donc à renseigner sur les machines se connectant au serveur Radius), et un nom pour ce réseau.

Une autre étape est d’activer l’interrogation du serveur LDAP dans le fichier

/etc/freeradius/sites-enabled/default

Dans la section authorize, décommenter la ligne ldap

Dans la section authenticate, décommenter les 3 lignes suivantes :

Auth-Type LDAP { ldap

}

Lancer freeradius en mode de test avec la commandefreeradius –X

Lancer, depuis un autre terminal, une commande radtest :

radtest <user> <password> <ip>:<port> <port_local> <clé partagée>

<user> : nom d’utilisateur que l’on désire tester (il doit exister dans l’annuaire)

<password> : mot de passe de l’utilisateur que l’on désire tester (il doit être correct)

<ip> : adresse IP du serveur Radius

<port> : port d’écoute du serveur Radius (par défaut, c’est le 1812)

15 Lightweight Directory Access Protocol

16 Distribution Linux : voir www.debian.org

<port_local> : port local depuis lequel la requête va être émise (on choisit ce que l’on veut)

<clé partagée> : suite de caractères devant être identique dans le serveur Radius (dans sa section clients)

Si l’on obtient en réponse un Accept, c’est que le test est correct. Dans le cas d’un Access-Reject, il y a plusieurs possibilités :

- Erreur de configuration

- Erreur de couple login/mot de passe - Annuaire injoignable

Dans ces trois cas, il faut se référer à la sortie terminal de la commande freeradius –X qui donnera plus de détails.

ACTIVATION DU WCCP SUR L’ASA

Pages de référence : [4] [5]

L’activation de WCCP se déroule en trois étapes : - Création d’une ACL

- Identifier le service à rediriger avec la commande wccp

- Identifier l’interface sur laquelle la redirection s’effectue avec la commande wccp redirect

ETAPE 1

Création d’une ACL, exemple : création d’une ACL marquant le trafic http et HTTPS depuis 10.10.10.0 en /24

ACCESS-LIST WCCP EXTENDED PERMIT TCP 10.10.10.0 255.255.255.0 ANY EQ HTTPS ACCESS-LIST WCCP EXTENDED PERMIT TCP 10.10.10.0 255.255.255.0 ANY EQ WWW

Attention, un bug affecte quelques versions d’ASA qui cause la redirection de TOUT le trafic correspondant à une ACL standard vers le proxy. Il faut bien spécifier une ACL étendue et les ports concernés.

ETAPE 2

Commande d’activation d’un groupe de service WCCP :

wccp {web-cache | service_number} [redirect-list access_list] [group-list access_list] [password password]

Le service par défaut est web-cache, qui intercepte le trafic du port 80 (http) et le redirige vers le proxy, mais il est possible d’identifier un service entre 0 et 254, si besoin. (par exemple, FTP = wccp service 60).

Il est possible d’entrer plusieurs fois cette commande pour activer plusieurs groupes.

L’argument redirect-list contrôle le trafic redirigé à ce groupe de service. Access-list doit être une chaîne de moins de 64 caractères qui spécifie l’ACL.

Le password spécifie l’authentification MD5 pour les messages reçus depuis le groupe de service.

Les messages non acceptés par l’authentification sont abandonnés.

ETAPE 3

Pour activer la redirection WCCP sur une interface, entrer la commande suivante : wccp interface INTERFACE_NAME {web-cache | SERVICE_NUMBER} redirect in

Exemple : activer le web-cache et rediriger le trafic http qui entre sur l’interface inside vers le proxy :

wccp 0 redirect-list WCCP wccp 70 redirect-list WCCP

wccp interface INSIDE 0 redirect in wccp interface INSIDE 70 redirect in

ACTIVATION DE WCCP SUR PROXY IWSS / IWSVA

Pré-requis :

- WCCPv2 disponible (Et donc IOS 12.1 ou supérieur installé sur le routeur)

CONFIGURATION DE WCCP SUR IWSVA VIA L’INTERFACE WEB

Documentation : [6]

Dans le menu, il faut se diriger vers Administration > Deployment Wizard > Deployment mode.

Dans la page suivante, il faudra entrer les adresses IP des routeurs (l’ASA ne supportant pas la configuration multi-routeurs, il ne faudra en mettre qu’une)

Mot de passe optionnel (mais si spécifié, doit être identique sur le matériel Cisco) Choisir ensuite l’auto-négociation des protocoles (ainsi, IWSVA demandera au routeur ce qu’il supporte, et s’adaptera en fonction)

Il n’y a plus qu’à valider les étapes suivantes.

La commande show ip wccp 80 detail sur le routeur doit retourner une liste d’informations.

JONCTION D’UNE MACHINE LINUX À UN DOMAINE WINDOWS

SCRIPT D’AUTOMATISATION

#!/bin/bash

# Script de jonction d'une machine à un AD

# Définition des variables

# Définition du realm (nom de domaine, en majuscules : ex CWF.FR) read -p "Note préalable :

- Le serveur DNS doit être renseigné dans /etc/resolv.conf

- Ce script doit avoir été relu / modifié pour coller à la configuration - Internet doit être accessible directement (sinon, 'export

http_proxy=http://<proxy>:<port>' fera l'affaire)

- Le système doit être de la famille Debian (Debian, Ubuntu, Mint ...) - Quand vous êtes prêt, appuyez sur Entrée !" varr

# 2 solutions ici : Soit on entre en dur les infos dans le script, soit la

personne qui lance le script les tape : la solution en dur est probablement plus simple à déployer

#read -p 'Nom du domaine (ex CWF) : ' domaine

#read -p 'REALM du domaine, en majuscules (ex CWF.FR) : ' realm

#read -p "Adresse ou nom de l'AD : " ad

#read -p "Login de l'Administrateur du domaine" administrateur domaine="OLIVIER"

realm="OLIVIER.COM"

ad="ldap.olivier.com"

administrateur="Administrateur"

echo "Installation des paquets, veuillez patienter ..."

yes | apt-get install krb5-config krb5-user samba winbind > /dev/null if [ $? != 0 ]

then

echo "Problème de récupération des paquets : vérifier l'accès à Internet"

exit 2 fi

mv /etc/krb5.conf /etc/krb5.conf.old

mv /etc/samba/smb.conf /etc/samba/smb.conf.old

echo "smb.conf et krb5.conf sauvegardés en smb.conf.old et krb5.conf.old"

echo "# REALM Kerberos realm = $realm

# Domaine

workgroup = $domaine

# Active Directory Server gère la sécurité des ressources partagées security = ADS

# Active Directory n'accepte pas les mots de passe en clair encrypt passwords = yes" > /etc/samba/smb.conf

# Jonction au domaine

echo "Test de jonction au domaine, le mot de passe de l'admin du domaine est demandé :"

net ads join -U $administrateur if [ $? != 0 ]

then

echo "Problème de jonction au domaine ... "

exit 2 fi

echo "# Correspondances des uids entre le serveur Linux et Active Directory idmap uid = 10000-20000

# Correspondances des gids entre le serveur Linux et Active Directory idmap gid = 10000-20000

# Lister les utilisateurs au démarrage de Winbind winbind enum users = yes

# Lister les groupes au démarrage de Winbind winbind enum groups = yes

# Caractère de séparation domaine/nom d'utilisateur (ex: DOMAINE+utilisateur) winbind separator = +

# Si le domaine n'est pas spécifié on utilise celui par défaut winbind use default domain = yes

# Shell par défaut

template shell = /bin/bash

# Répertoire home par défaut

template homedir = /home/AD/%U" >> /etc/samba/smb.conf mkdir /home/AD/

# Restart des services

echo "Redémarrage des services"

service winbind restart

service samba restart

echo Backup de nsswitch

mv /etc/nsswitch.conf /etc/nsswitch.conf.old

cat /etc/nsswitch.conf.old | grep -v compat > /etc/nsswitch.conf

cat /etc/nsswitch.conf.old | grep -v compat > /etc/nsswitch.conf

Dans le document Authentification centralisée (Page 40-63)

Documents relatifs