Download - rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

Transcript
Page 1: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE

Professeur encadrant : Georges ESQUIROL

Tuteur de stage : Hervé FAURE

Lieu : Entente pour la forêt Méditerranéenne

BTS SIO 2012 - 2014 - Lycée Théodore Aubanel

STAGIAIRE :

Franck FALCHI

Page 2: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 1/17

Table des matières

Remerciement .......................................................................................................................................................... 2

Présentation de l’entreprise.................................................................................................................................... 3

Projet 1 : Inventorier le parc ................................................................................................................................... 3

Projet 2 : Serveur Update ........................................................................................................................................ 5

Projet 3 : Déploiements de logiciels ........................................................................................................................ 6

Projet 4 : Portail captif ............................................................................................................................................. 7

Projet 5 : Proxy ......................................................................................................................................................... 8

Conclusion .............................................................................................................................................................. 10

Annexes .................................................................................................................................................................. 11

Page 3: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 2/17

Remerciement

Je tiens à remercier en premier lieu Monsieur TOSELLO, directeur du P.Ô.N.T, pour m’avoir donné

l’opportunité de réaliser mon stage au sein de l’Entente et l’occasion de connaitre le fonctionnement d’une

collectivité territoriale.

Je remercie également mon tuteur, Monsieur Hervé FAURE, administrateur réseaux et systèmes, pour son

accueil, sa confiance, sa pédagogie et sa patience qu’il m’a accordé dès mon arrivée. J’ai eu un très grand plaisir

de travailler à ses côtés, nos échanges d’informations et d’explications m’ont permis d’avancer et d’entrevoir le

travail en équipe que j’ai apprécié. Malgré les occupations et responsabilités inhérentes à fonction, il a su faire

preuve d’une aide, d’une disponibilité et d’une attention remarquable.

Je remercie également toute l’équipe du P.Ô.N.T, Emilie, Benoit, Arnaud, Jeremy, Flora, Alexis, Laurent,

Jean-Charles, pour leurs accueils et leur bonne humeur qu’ils ont partagés avec moi.

Enfin, ces remerciements seraient incomplets si je ne témoignais pas de toute ma reconnaissance envers

Thibaud RAYMOND, collègue de ma promotion, pour son soutien et nos conversations de nos travaux. Mais

aussi à mes professeurs, pour avoir répondu à mes nombreux mails afin de me guidé dans mes tâches mais

encore à ma sœur et mon beau-frère de m’avoir hébergé et pour finir à Madame FAUCOUR, concierge de ma

résidence, d’avoir transmis ma demande de stage.

Page 4: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 3/17

Présentation de l’entreprise

L’Entente pour la forêt Méditerranéenne est une collectivité territoriale située à Valabre et crée en 1963.

Elle se compose de quatre principales missions :

Le M.I.P pour l’information et la prévention contre les feux de forêt,

L’E.C.A.S.C pour la formation au métier de la sécurité civile,

Le C.E.R.E.N pour les essais et la recherche de lutte contre les feux de forêt, et

Le P.Ô.N.T pour les nouvelles technologies et la géomatique.

On m’a affecté au P.Ô.N.T ou je travaillais avec l’administrateur réseaux et systèmes, monsieur Hervé

FAURE, tuteur de mon stage.

Durant ce stage, mon tuteur m’a confié plusieurs missions que je détaille ci-dessous sous forme de projet.

Les missions ont consisté leur majeure partie à réduire le trafic de la bande passante, inventorier le parc

informatique composé de 70 postes et à contrôler l’accès à Internet.

Projet 1 : Inventorier le parc

Mon premier projet fut d’inventorier le parc informatique dans le but d’avoir une connaissance précise de

la configuration des postes. Le cahier des charges était le suivant :

CC1 : Inventorier les éléments connectés et déconnecter du réseau

CC2 : Générer des QR code des éléments de l’inventaire

CC3 : Installer les dernières versions de logiciel d’inventaire

CC4 : Le logiciel d’inventaire devait être open source

CC5 : L’installation devait se faire sur une OpenVZ Debian 7 sous un hyperviseur natif, Promox

CC6 : Déployer l’agent de l’inventaire de manière centralisée

CC7 : Temps de réalisation, indéterminé

Mon tuteur m’a imposé l’utilisation d’OCS/GPLI qui était déjà présent dans le parc mais dans une

version antérieure et de son agent non installé sur les nouvelles machines. Apres avoir installé OCS/GLPI, je

devais déployer son agent, plusieurs solutions s’offraient à moi :

Utilisation du logiciel « OCS Inventory NG Agent Deployment Tool » d’OCS qui devait contenir un

paquetage de l’agent, préparer intérieurement avec « OCS Packager ». Cette méthode utilise trois

utilitaires « PsExec », « Puty » et « Pscp » dont les clients devaient disposer d’un certificat

Page 5: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 4/17

d’authentification généré par le serveur, par la suite il suffisait d’indiquer la plage d’adresse et

l’installation se faisait à distance. Cette solution élaborée et n’étant pas performantte a été

abandonnée.

Une autre possibilité à peu près équivalente était d’utiliser « Runasspc » mais je ne détaillerai pas

cette solution car elle n’a pas abouti.

La dernière solution était de déployer l’agent OCS par script Power Shell mais cette solution n’était

pas très judicieuse. Je m’explique : on disposait d’un serveur nommé UpdatEngine qui est un outil

publié sous licence GPL permettant d'effectuer l'inventaire de postes de travail et serveurs, de créer

des paquets de déploiements et de gérer des profils de configurations logicielles. Pour l’utiliser, il

fallait déployer son agent sur les postes, alors on a décidé de se pencher sur le langage Power Shell.

Cette solution était très intéressante car non seulement on pouvait déployer l’agent d’OCS mais

aussi d‘autre logiciel qu’on ne trouve pas en MSI. Ce script (cf. annexe 1), peut être encore amélioré,

sur la suppression des logs lors de la réussite de l’installation et de ne pas tester la présente du

dossier d’installation mais d’utiliser une commande pour tester la présence de l’agent car

l’installation pouvait échouer suivant la configuration de la machine.

Concernant la génération de QR Code, il m’a fallu simplement ajouter « Barscode », un plugin dans le

répertoire « glpi/plugins/ », celui-ci pouvait générer tout type de code pouvant être imprimé sur des

étiquettes. L’avantage du QR code c’est que même s’il s’efface en partie on retrouve l’information, d’autant

plus que grâce à une application smartphone en se connectant au réseau de l’entreprise on peut directement

accéder à un lien URL en scannant le QR code qui nous redirige vers GLPI pour avoir des informations plus

approfondies sur l’élément inventorié. Un autre plugin à était ajouté, « OCS Inventory NG » pour la

synchronisation de l’inventaire d’OSC dans GLPI, n’étant pas présent nativement dans la dernière version de

GLPI. Pour l’inventaire des éléments hors réseau une saisie en dur est obligatoire. Mon tuteur à choisi de la

saisir sur GLPI car la génération des QR code associé à l’inventaire saisi lui permettait de retrouver facilement

les éléments et même d’indiquer sur GLPI, la durée, la personne et le lieu du prêt du matériel.

Pour CC3, j’ai utilisé la commande « aptitude show nom_paquet » pour comparer la version présente dans

les dépôts et sur les sites officiels puis je l’ai télécharges à l’aide de la commande « wget URL_paquet ». Ce

projet a duré environ deux semaines.

Page 6: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 5/17

Projet 2 : Serveur Update

L’Entente dispose d’une connexion SDSL de 4 Mbits/s pour le réseau bureautique et d’une connexion ADSL

Orange de 8 Mbits/s pour le Wifi de l’hébergement, lors des mises à jour Windows Update et antiviral, la bande

passante devenait indisponible. J’ai donc proposé à mon tuteur de mettre en place le service WSUS afin de

libérer la bande passante et de contrôler le déploiement des mises à jour. Cette solution a été approuvée et

installée sur un serveur physique sous Windows 2008 R2. Le cahier des charges était le suivant :

CC1 : Mettre à jour les postes client de manière totalement transparente

CC2 : Crée des groupes pour appliquer ou non les mises à jour

CC3 : Certaines machines ne devaient pas recevoir les mises à jour

CC4 : Utiliser un poste pour faire des tests avant le déploiement total

CC5 : Ne pas recevoir les notifications de Windows Update

Après l’installation de WSUS, j’ai dû configurer les GPO sur l’Active Directory principal afin de respecter CC1.

Mon choix a été de sélectionné des stratégies ordinateur dont celle qui installait instantanément les mises à

jour ne nécessitant pas de redémarrage, d’empêcher le redémarrage automatique durant l’utilisation de la

session, avec une détection des mises à jour toutes les 22 heures et un retardement d’une journée du forçage

du redémarrage pour ne pas gêné l’utilisateur.

Pour CC3, j’ai proposé à mon tuteur de créer un groupe dans WSUS où aucune mise à jour ne sera

approuvée. Dans ce cas, le client ne les reçoit pas et ne détectera pas automatiquement les nouvelles mises à

jour sur internet.

Pour CC4, j’ai créé un groupe dans WSUS où j’ai rajouté une machine pour faire des tests pendant plusieurs

jours avant de l’appliquer à l’ensemble du parc.

Pour CC5, il fallait appliquer une GPO qui bloquait l’accès à l’interface de Windows Update et par

conséquent l’installation automatique des drivers aurait eu besoin d’une autorisation élevé. Cette GPO n’a pas

été appliquée. J’ai aussi configuré WSUS pour qu’il prévienne par mail l’administrateur des nouvelles mises à

jour disponibles dont’ il fallait approuver. Je lui ai aussi informé qu’on pouvait établir des règles dans WSUS

pour que les nouvelles mises à jour soient approuvées automatiquement à l’aide de règles. Je n’ai pas

configuré ces règles mais elles seront faites ultérieurement par mon tuteur. Ce projet m’a pris un peu moins de

trois jours mais je me suis donné la tâche de gérer le serveur tout au long de mon stage pour approuver les

mises à jour et de suivre sur les postes la bonne réussite des déploiements.

Page 7: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 6/17

Projet 3 : Déploiements de logiciels

L’Entente a récemment reçu de nouvelles machines et migre peu à peu vers l’Active Directory sous

Windows Serveur 2008 R2, récemment installé. Donc, il a fallu déployer quelques logiciels de manière

centralisée. Dans un but de limiter l’utilisation de la bande passante xDSL, les déploiements devaient se faire

avec UpdatEngine, pour personnaliser leur installation à l’aide de paramètres d’installation et de désactiver

leurs mises à jour automatique par GPO. La durée du projet a été d’environ 4 jours, voici des exemples de

déploiement :

Pour VLC :

Les paramètres à configurer sur UpdatEngine sont « VLC .exe /S /noreboot », ce qui permet de lancer le

.exe en mode silencieux sans forcer le redémarrage de la machine. Pour désactiver sa mise à jour et sa

demande de notification à la première utilisation, il faut lancer une 1ère fois le logiciel puis récupère le fichier

« vlcr », crée par défaut dans le dossier « C:\Users\%user%\AppData\Roaming\ », puis modifier les valeurs de «

no-qt-privacy-ask » et « no-qt-updates-notif ». Mettre ce fichier modifié dans un répertoire réseau commun

pour le remplacer à l’ouverture de la session des utilisateurs par GPO.

Pour PDF Creator :

Les paramètres à configurer sur UpdatEngine sont « PDFCreator.exe /VERYSILENT /NORESTART

/FORCEINSTALL /COMPONENTS="program,ghostscript,helpfiles\french,languages\french” » ce qui permet de

forcer l’installation, d’être en mode silencieux, sans redémarrage, sans installer PDF Architect et les toolbars

Amazone, tout en ayant le programme et l‘aide en français.

Pour désactiver sa mises à jour automatique, il faut ajouté une clé dans la base de registre par GPO

dans « HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\PDFCreator\Program » qui sera

« DisableUpdateCheck » avec une valeur à 1 pour désactiver l’interface de la mise à jour ou

« CheckUpdateInterval » avec une valeur à 0 pour ne jamais chercher la miser à jour.

Pour Adobe Reader :

Les paramètres à configurer sur UpdatEngine sont « AdbeRdr11.exe /sAll /rs », ce qui permet de lancer le

.exe en mode silencieux sans redémarrage de la machine. Pour désactiver sa mise à jour, il faut créer une clé

dans la base de registre par GPO dans « HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Acrobat

Reader\11.0\FeatureLockDown » qui sera « bupdater » avec une valeur à 0 pour désactiver l’interface de la

mise à jour.

Page 8: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 7/17

Projet 4 : Portail captif

L’hébergement de l’Entente dispose de 8 bornes Wifi extérieure reliées au VLAN Wifi centralisées sur un

portail captif qui date de plus de 8 ans. J’ai donc proposé à mon tuteur de mettre à niveau d’Etch vers Wheezy

mais il a préféré que j’en réalise un sur une nouvelle machine. Le cahier des charges était le suivant :

CC1 : Utiliser Pfsense pour le portail captif

CC2 : Crée un seul utilisateur pour le portail

CC3 : Personnalisé la page d’accueil du portail

CC4 : Limitation de la bande passante

CC5 : Autoriser l’accès à l’interface d’administration de Pfsence du coté du WAN

CC6 : Bloquer l’accès à certains VLAN

CC7 : Intégrer un proxy avec le cache

CC8 : Appliquer des règles de filtrage URL

CC9 : Enregistrement des logs de connexion

CC10 : Avoir des statistiques de connexion

Pour CC3, j’ai tout simplement récupéré le code source de la page par défaut du portail captif où j’ai intégré

le login, le mot de passe et le logo de l’entreprise.

Pour CC4, j’ai limité la bande passante à 500 kilo octets pour le seul utilisateur créée, cela permettait aux

autres utilisateurs de la ligne Orange qui ont un accès par une connexion à distance d’avoir un minimum de

débit.

Pour CC5, j’ai appliqué une règle de filtrage pour le réseau source avec le port 80 sur l’interface WAN. J’ai

aussi autorisé la connexion en SSH grâce à une option incluse à Pfsense.

Pour CC6, j’ai appliqué des règles de filtrage à l’interface LAN pour bloquer les requêtes vers d’autre VLAN.

Pour CC7, j’ai installé le proxy « Squid » en mode transparent ce qui permet un enregistrement les logs de

connexion durant 365 jours, conformément à l’article 6 de 2004 des FAI. Puis j’ai configure le cache du proxy

pour 5 Go tout en limitant le téléchargement de fichier supérieure en 50 Mo.

Pour CC8, j’ai utilisé le paquet « SquidGuard » à l’aide d’une black liste pour bloquer les sites web qui ne

respecte pas la charte de l’entreprise.

Pour CC10, j’ai installé le paquet « Lights Squid » ce qui permet d’avoir des statistiques des sites web les

plus visite, de connaitre le total du débit utilisé par IP. La durée de ce projet a été de 3 jours. Il a été réalisé

sous forme de maquette puis il a été mis en place sur le réseau de l’Entente avec succès.

Page 9: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 8/17

Projet 5 : Proxy

L’Entente disposant de trois proxys, un pour le centre de formation au P.Ô.N.T sous Pfsense, un autre pour

le réseau Wifi de l’hébergement sous Etch et un autre pour le réseau bureautique sous Clear OS. Le proxy

principal ne disposait pas de règle de filtrage, ni d’enregistrement des logs avec le nom de l’utilisateur, ni de

limitation de bande passante. J’ai donc proposé à mon tuteur un projet pour intégrer Squid afin de répondre à

ses différents besoins et d’unifier les trois proxys en un seul.

Les contraintes étaient les suivantes :

CC1 : Mettre en place un proxy open source en mode transparent

CC2 : Remplacer les proxys qui sont sur des anciennes machines en VM

CC3 : Utiliser la base utilisateur de l’AD pour avoir le nom des utilisateurs dans les logs

CC4 : Limiter la bande passante en fonction des groupes AD

CC5 : Filtrer les URL inappropriées

CC6 : Conservation des logs avec le nom de l’utilisateur

CC7 : Mettre en place le cache proxy pour libérer la connexion Internet

CC8 : Visualisation des logs de connexion en mode graphique

CC9 : Avoir un rapport en temps réel du débit par utilisateur

CC10 : Faire du load balancing avec les deux lignes Internet

Ce projet a été l’un des plus important de mon stage et a duré trois semaine malheureusement il n’a

pas complètement abouti. Je me suis d’abord renseigné sur le fonctionnement du proxy puis j’ai fait quelques

recherches pour bien choisir le proxy à déployer. Il y avait la possibilité d’avoir des proxys matériels, très

onéreux mais aussi des proxys logiciels libre avec des modules supplémentaires payant dont on avait besoin

comme l’authentification des utilisateurs AD. Je me suis donc tourner vers le proxy « Squid » que j’ai réalisé

sous forme de maquette virtuelle. Vous trouverai ci-dessous mes fichiers de configuration (cf. annexe 2 à 5).

Ma première maquette (cf. annexe 4) consister a utilisé Samba et Kerberos pour joindre le proxy au

domaine Active Directory. Winbing me permettais de récupéré la liste des groupes et des utilisateurs du

domaine AD et Kerberos de joindre la machine proxy a l’AD. Apres j’ai utilisé le protocole d’authentification

NTLM pour utiliser la base des utilisateurs de l’AD afin d’associer les groupe AD lors d’une requête HTTP vers

Squid avec « wbinfo_group.pl ». Cette configuration fonctionnée bien mais le problème était la lenteur de

l’authentification NTLM lors des requêtes. Il ne me restait plus qu’à trouver un moyen de lier mes deals pools

au différent groupe pour limiter la bande passante.

A ce stade du projet j’ai effectué des recherche plus poussée sur les différentes type d’authentifications

qu’il était possible d’utiliser avec Squid et dont celle que j’avais besoin. L’utilisation de plusieurs types

Page 10: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 9/17

d’authentifications était nécessaires, LDAP, Kerberos, NTLMv2 et LDAP_group. Cela est dû au protocole NTLM

qui n’est plus vraiment supporter a Windows 7 et qu’il a deux types d’authentifications, le Kerberos pour

l’architecture x86 et NTLMv2 pour l’architecture x64 mais cette information est à vérifier. L’utilisation de

Samba pour joindre le domaine est inutile. L’utilisation de l’authentification Kerberos configurable avec

l’utilitaire msktutil de Windows étai suffisent pour la jointure de domaine AD.

Vous trouverai ci-dessous ma deuxième maquette (cf. annexe 5). Cette configuration semble être la

bonne mais j’ai rencontré quelques problèmes. Lors d’une requête Internet, le proxy me demander

constamment les informations d’authentification de l’utilisateur sans afficher une page web. Au niveau du

serveur AD, dans le journal de Windows les tentatives d’authentification étai bien présente mais il était indiqué

une erreur de login et ou de mot de passe. Le problème doit venir d’une erreur de syntaxe du fichier de

configuration Squid ou d’un mauvais choix d’utilisation de protocole d’authentification. Malheureuse à ce stade

mon projet a été arrêté due à la fin de mon stage.

Concernent CC5, l’utilisation de « SquidGuard » semble approprié mais je n’ai pas vraiment testé cette

fonctionnalité car elle était moins urgente que d’autre.

Concernent CC6, la bonne procédure à appliquer c’est de déployer un serveur Syslog qui récupère les

logs du serveur Squid pour les transfère vers un autre serveur qui doit être verrouillé car vis-à-vis de la loi

l’employeur n’a pas le droit de consulter les logs, il doit être approuvé par la justice.

Pour CC8 et CC9, l’utilisation des paquets comme LightSquid, Sarg et Reporter Cyfin non pas été testé

sur ce projet mais sur Pfsence appart Reporter Cyfin.

Pour CC10, je n’ai pas eu le temps de rechercher une solution précise. Il est possible d’utiliser une

solution matérielle comme le routeur CISCO RV042G qui a pour fonctionnalité le load balancing. Ce routeur

présent a l’entreprise a était testé en ma présence pendent une trentaine de minute lors d’un problème

technique de bagot sur la ligne xDSL. Il est capable de rediriger les requêtes vers l’autre ligne lorsque celle-ci

arriver à saturation. Une autre possible est de configurer le routeur pour que certain protocole passe par une

ligne ou par l’autre. J’ai conclu que du faite que l’Entente disposent de deux type de connexions différent cette

solution s’avère pas très approprier en ce qui concerne l’envoie de gros fichier souvent utilisé par le P.Ô.N.T et

qu’il fallait que je m’informe d’avantage sur le fonctionnement de load balancing de ce routeur pour trouver

une autre solution ou pour le configurer de manier optimal. Malheureusement cela aurai entrainé une

indisponibilité de la connexion.

Page 11: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 10/17

Conclusion

Le stage à l’Entente a été pour moi très formateur. Il m’a permis d’acquérir des connaissances dans

l’administration de logiciels du monde libre qui était pour moi jusqu’à ce jour une faiblesse que j’ai su

surmonter. Durent ce stage, j’ai rencontré quelque difficulté surmontable mais ce qui m’a le plus freiné a était

la langue anglaise. En effet, le monde du logiciel libre et 80 % du web utilise l’anglais.

Je regrette sincèrement, de ne pas avoir pu aboutir mon projet Squid. Il m’aurait fallu connaitre les

protocoles a utilisés dès le début de mon projet. Je me suis engagé envers moi-même de ne pas abandonner ce

projet qui est plein de ressources afin d’y aboutir.

Le projet OCS/GLPI offre de multiples possibilités, je n’ai pas eu l’occasion de tester sa fonctionnalité de

déploiement de logiciels, de découvrir la gestion d’incident de GLPI et d’assimiler toute ses fonctionnalités. Le

projet Pfsence est très intéressant due à sa facilité de mise en œuvre et ses nombreux modules

complémentaires. Il pourrait très bien remplacer le projet Squid pour l’authentification de la base des

utilisateurs de l’AD. Cette fonctionnalité a était testé a mainte reprise sans réussite c’est la raison pour laquelle

je ne l’es pas testé mais je l’approfondirais dès que j’en aurais location. Il reste tout à découvrir sur ce

routeur/pare-feu open source basé sur FreeBSD.

J’aurais bien aimé faire d’avantage mais la durée probatoire a été de courte durée. En effet, j’avais pour

projet qui me tenait à cœur de déployer un serveur antiviral centralisé. Ce projet a était en partie traité avec le

projet WSUS qui met à jour Microsoft Defender et Microsoft Security Essentials. Mais aussi le déploiement de

Microsoft Exchange, d’un serveur DHCP redondant, d’un serveur Fog et d’effectuer une migration d’un

Windows XP qui gère l’automate de la station-service de l’Entente vers Windows 7.

Pour finir, je tiens à recommander aux futurs étudiants cette collectivité territoriale qui accueille de

nombreux stagiaires. Son infrastructure informatique offre de multiples projets à promouvoir.

Page 12: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 11/17

Annexes

Annexe 1 - Power Shell

###################################################### # Script d'installation sans assistance pour le logiciel : # Logiciel : Agent UpdatengineClient # Inspiré de Jean-René DANIS le 13/02/2014 : www.jrdanis.com # Réécrit par : FALCHI Franck et FAURE Hervé # prérequis : rien # Valable pour les systèmes d'exploitations suivants : # Windows XP 32 bits : pas testé # Windows Vista 32 bits et 64 bits : pas testé # Windows 7 32 bits: pas tester # Windows 7 64 bits: OK # Historique des mises à jour : Oui # Le 13/02/2014 : création ## Emplacement du fichier log $dossierLog = "C:\install\log_UpdatengineClient" ## Création du dossier pour le fichier log $dossierACreer = $dossierLog If ((test-path $dossierACreer) -ne $TRUE) { New-Item -type directory -Path $dossierACreer } ## Fichier Log $fichierLog = "$dossierLog\UpdatEngineClient.PS1.log" $heureDebut = Get-Date "Début : $heureDebut" >> $fichierLog ## Variables $scriptDir = Get-Location $EXEtoProcess = "updatengine-client-setup.exe" $ProgExist = $False ## Architecture $Archi = (Get-WmiObject -class Win32_OperatingSystem).OSArchitecture switch ($Archi){ ## Cas de Win7 64bits "64 bits" {"Archi 64 bits" >> $fichierLog; break} "32 bits" {"Archi 32 bits" >> $fichierLog; break} ## Cas de XP 32bits "" {$Archi = "32 bits" ;"Archi 32 bits (XP)" >> $fichierLog; break} } ## Test présence dossier installation antérieure d’UpdatEngineClient $InstallDossier = 'C:\Program Files (x86)\Updatengine Client' If ( (Test-Path $InstallDossier) -eq $True){ "Une version de $EXEtoProcess est déjà installée, désinstaller la manuellement si vous souhaitez la réinstaller." >> $fichierLog $ProgExist = $True } Else

Page 13: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 12/17

{ Write-host "Pas de version d'UpdatEngine Client déjà installée." "Pas de version d'UpdatEngine Client déjà installée." >> $fichierLog } ## Installation de la nouvelle version If( $ProgExist -eq $False){ cd $scriptDir Write-host "Lancement de l'installation" "Lancement de l'installation OKOK" >> $fichierLog $parameters = " /verysilent /server=http://updatengine:1979 /delay=240 /norestart" $installStatement = [System.Diagnostics.Process]::Start( "$scriptDir\updatengine-client-setup.exe", $parameters ) $installStatement.WaitForExit() } Else{ "Le programme existe déjà, il ne sera pas réinstallé." >> $fichierLog } $heureFin = Get-Date "Fin : $heureFin" >> $fichierLog ##########################################################################

Annexe 2 – Kerberos

###################### CONFIGURATION KERBEROS krb5.conf #################### ##### /etc/krb5.conf##### [libdefaults] default_realm = DOMAINE.COM dns_lookup_kdc = no dns_lookup_realm = no ticket_lifetime = 24h default_keytab_name = /etc/squid3/PROXY.keytab default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5 [realms] DOMAINE.COM = { kdc = ad1. domaine.com kdc = ad2. domaine.com admin_server = ad1. domaine.com default_domain = domaine.com } [domain_realm] .domaine.com = DOMAINE.COM domaine.com = DOMAINE.COM ##########################################################################

Page 14: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 13/17

Annexe 3 - Samba 4

###################### CONFIGURATION SAMBA smb.conf #################### ##### /etc/ samba4/smb.conf #####

[global] workgroup = DOMAINE realm = DOMAINE.COM security = ads encrypt passwords = yes password server = AD1.DOMAINE.COM idmap uid = 10000-20000 idmap gid = 10000-20000 winbind enum groups = yes winbind enum users = yes winbind use default domain = yes

##########################################################################

Annexe 4 - Squid (1er maquette)

###################### CONFIGURATION SQUID3 squid3.conf #################### ###### /etc/squid3/squid.conf ####### ##### Paramètres d'authentification NTLM ##### auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 20 auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic auth_param basic children 20 auth_param basic realm SquidEntreprise auth_param basic credentialsttl 2 hours ##################################### #Config minimum recommandée par SQUID# ##################################### acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 # https acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT

Page 15: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 14/17

################# #Gestion des ACL's# ################# ###### Définition des modes de connexion avec liée au groupe AD ###### external_acl_type NTLM %LOGIN /usr/lib/squid3/wbinfo_group.pl ###### Dit que le groupe squid1 doit être testé avec ACL externe NTLM ###### acl ad_groupe1 external NTLM squid1 acl ad_groupe2 external NTLM squid2 ###### Autorisation d'accès au groupe squid1 et non squid2 ###### http_access allow ad_groupe1 http_access deny ad_groupe2 ###### Permet de forcer l'authentification ###### acl ntlm proxy_auth REQUIRED http_access allow ntlm ########################################### #Configuration minimum recommandée par SQUID# ########################################### ##### Autoriser l'accès à squid seulement depuis local host ##### http_access allow manager localhost http_access deny manager ##### Autorise l'accès aux ports SSL ##### http_access allow ssl_ports ##### Refuser les requetés provenant de ports inconnus ##### http_access deny !Safe_ports ##### Refuse CONNECT a d'autres ports que les SSL ##### http_access deny CONNECT !SSL_ports ##### autorise les demande ICP a tous ##### icp_access allow all ##### Recommandation de Squid d'une ligne à utiliser ##### hierarchy_stoplist cgi-bin ? ##### Port de connexion squid ##### http_port 3128 ##### Mail de l'administrateur de squid ##### cache_mgr [email protected] ##### Nom du Serveur Proxy ##### visible_hostname Squid3.2 ##### Droit user et groupe d'accès au cache ##### cache_effective_user proxy cache_effective_group winbindd_priv ##### Cache mémoire ##### cache_mem 20000 KB

Page 16: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 15/17

##### Page web à ne pas garer dans le cache ##### acl QUERY urlpath_regex cgi-bin \? \.cgi \.pl \.php3 \.asp ##### Limite de remplissage du cache mémoire ##### #cache_mem_low 75 #cache_mem_high 90 ##### Tail maxi objet dans le cache ##### maximum_object_size 2000 KB ##### Rep de cache type disque; rep; tail total; nb rep; nb sou rep ##### cache_dir ufs /var/spool/squid3 4000 60 120 ##### Chemin d'aces du cache ##### coredump_dir /var/spool/squid3 ##### Chemin des logs ##### access_log /var/log/squid3/access.log squid ##### Processus exécutant les requetés DNS mise en cache 24 heure si réussi ##### #dns_children 10 ##### Permet de contrôler la durée de validité du cache ##### refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern ^http 1440 10% 10080 refresh_pattern . 0 20% 4320 ##### Limite le téléchargement par fichier ##### reply_body_max_size 50 MB all ##### Deal Polls pour limité la bande passante delay_pools 2 delay_class 1 5 delay_class 2 4 delay_parameters 1 20/20 delay_parameters 2 -1/-1 -1/-1 -1/-1 6250/100

##########################################################################

Annexe 5 - Squid3 (2ème maquette)

###################### CONFIGURATION SQUID3 squid3.conf ############################### ###### /etc/squid3/squid.conf ####### ##### Gestionnaire du cache ##### cache_mgr [email protected] ##### Kerberos Authentication ##### auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/proxysquid.domaine.com auth_param negotiate children 10 auth_param negotiate keep_alive on ##### Fournir un accès via LDAP pour les clients non authentication via Kerberos #####

Page 17: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 16/17

auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b dc=valabre,dc=com -D [email protected] -w "*****" -f sAMAccountName=%s -h ad1.domaine.com auth_param basic children 10 auth_param basic realm Internet Proxy auth_param basic credentialsttl 1 minute ##### Autorisations LDAP ##### ##### Proxy d'accès restreint connectai ##### external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K -b "dc=domaine,dc=com" -D [email protected] -w "*****" -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=squid1,ou=Computers,dc=domaine,dc=com))" -h ad1.domaine.com ##### Proxy d'accès complet aucun enregistrement ##### external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K -b "domaine,dc=com" -D squidproxy@ domaine.com -w "*****" -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=squid1,ou=Groups,ou=DOMAINE,dc=domaine,dc=com))" -h ad1.domaine.com ##### Proxy d'accès complet connectai ##### external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K -b "dc=example,dc=local" -D [email protected] -w "*****" -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Security Groups,ou=MyBusiness,dc=domaine,dc=com))" -h dc1.lan.valabre.com ##### Acl pour auth proxy et autorisations LDAP ##### acl auth proxy_auth REQUIRED ##### Format "acl, aclname, acltype, acltypename, activedirectorygroup" ##### acl RestrictedAccessLog external internet_users squid1 acl FullAccessNoLog external internet_users_full_nolog squid1 acl FullAccessLog external internet_users_full_log squid1 #acl whitelistsites url_regex -i "/etc/squid3/whitelistsites.txt" #acl blockedsites url_regex -i "/etc/squid3/blockedsites.txt" ##### Squid par défaut ##### acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost

Page 18: rapport de Stage - franckfalchi.weebly.comfranckfalchi.weebly.com/uploads/2/5/0/1/25013616/rapport_stage... · RAPPORT DE STAGE FRANCK FALCHI 2/17 Remerciement

RAPPORT DE STAGE FRANCK FALCHI 17/17

##### Appliquer auth: ordre des règles est important pour les niveaux d'autorisation ##### #no_cache deny whitelistsites #http_access allow whitelistsites http_access allow FullAccessNoLog auth http_access allow FullAccessLog auth #http_access deny blockedsites http_access allow RestrictedAccessLog auth ##### Login ##### # Ne pas enregistrer whitelistsites, FullAccessNoLog #access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog ##### Squid défaut ##### http_access deny all http_port 3128 hierarchy_stoplist cgi-bin ? coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 ##### Droit user et groupe d'accès du cache ##### cache_effective_user proxy cache_effective_group proxy ##### Chemin d'accès du cache ##### coredump_dir /var/spool/squid3 ##########################################################################