Category ArchiveE4

DÉPLOIEMENT WPAD

Web Proxy Auto-Discovery (WPAD). est un protocole imaginé par Microsoft, qui permet d’effectuer automatiquement le paramétrage du serveur proxy de son navigateur.

Chaque navigateur doit connaitre le proxy à utiliser pour accéder à Internet.
Soit on le configure (manuellement ou automatiquement), soit on ajuste pour que le navigateur trouve tout seul le proxy.

Fonctionnement général :
Les navigateurs vont utiliser

soit une info DNS

soit une info DHCP
pour trouver un serveur web qui va leur fournir un script (en javascript) qui, en fonction d’une URL, retournera soit ‘proxy=http://serveur:port’ soit ‘direct’

Les conditions préalables incluent un fichier PAC, un serveur Web et un nom d’hôte DNS d’accès local pour pointer vers le serveur Web.

Pré-requis

serveur proxy

serveur Web

serveur DNS

serveur DHCP

DNS Server

Par défaut le browser va chercher le sous-domaine wpad du domaine dans le quel on est connecté ensuite il lira à la racine de ce domaine le fichier wpad.dat (http://wpad.mondomaine.lan/wpad.dat
NB: les serveurs DNS Windows (à partir de 2008) ne fournissent pas nativement wpad.domain.local (bloqué). Nous allons donc créer un CNAME en modifiant le nom « wpad.epbooktic.local » en « wpa.epbooktic.local » , cela peut être une option ou d’ajuster la ‘globalqueryblocklist’.

DHCP Server

Le serveur DHCP doit être configuré pour servir une entrée 252 dans les informations DHCP envoyées à un utilisateur. Une fois configurée, cette entrée inclut un lien direct vers le fichier wpad.dat.

Linux DHCP

Editez le fichier de configuration DHCP généralement /etc/dhcp/dhcpd.conf.

    Editez et collez ce qui suit dans le fichier:

   option local-pac-server code 252 = text;

    option local-pac-server “http://wpad.example.com:80/wpad.dat”;

Les placer dans la section globale du fichier de configuration, ensuite redémarrez le serveur DHCP.

Web server

Il faut maintenant configurer un Virtual host pour ce sous domaine.

pour cela, se déplacer dans le répertoire /etc/apache2/sites-available et faire une copie du premier virtual host se trouvant dans ce répertoire à l’aide de la commande suivante:

cp /etc/apache2/sites-available/000-default.conf  /etc/apache2/sites-available/proxy1.conf

par la suite éditer le fichier « proxy1.conf » et configuré comme suit:

Activer le site avec la commande « a2ensite proxy1.conf » dans le répertoire /etc/apache2/sites-enabled.

Créer le répertoire /var/www/html/wpad qui contiendra le script « proxy.pac »

Création du fichier « proxy.pac

Cette fonction va permettre de définir quand utiliser le proxy et de spécifier le proxy en question. Ici on se connecte directement au machine du même domaine par contre tous le reste utilise le proxy.

Par la suite créer un lien symbolique avec le fichier « proxy.dat », à l’aide de la commande:

ln -s /var/www/html/proxy.pac /avr/www/html/proxy.dat

Déploiement du navigateur

En fonction de l’environnement administratif, les navigateurs peuvent être configurés automatiquement à l’aide d’un outil tel que la stratégie de groupe ou manuellement pour les paramètres de connexion de chaque navigateur.

Les paramètres de stratégie de groupe s’appliqueront à Internet Explorer, Chrome et Safari. Des outils tiers peuvent être nécessaires à Firefox pour adopter ces paramètres de stratégie de groupe.

Ouvrez l’éditeur d’objets de stratégie de groupe.

Développez l’arborescence Configuration de l’utilisateur> Paramètres Windows> Maintenance d’Internet Explorer.

Ouvrez Connexion et sélectionnez Configuration automatique du navigateur.

 Cochez Activer la configuration automatique.

 Entrez l’URL du fichier PAC dans la zone de texte URL du proxy automatique, cliquez sur OK.

Déploiement de WPAD

  • Fichier PAC

Pour que la fonctionnalité DNS WPAD détecte le fichier PAC, renommez-le en wpad.dat et chargez-le sur votre serveur Web.

Le serveur Web doit être configuré pour servir un fichier PAC, wpad.dat avec le type MIME correct.

  • Serveur Web Apache

    Créer un fichier .htaccess.

    Ajoutez la ligne ci-dessous dans le fichier:

    AddType application / x-ns-proxy-autoconfig .dat

   Téléchargez le fichier au même emplacement que le fichier wpad.dat, à savoir /var/www/html/wpad.

PLAN D’ADRESSAGE IP – LOGIN/MOT DE PASSE

ROUTAGE INTER-VLAN

Plan d’adressage

Schéma logique du Switch

Schéma logique du Switch

configuration du Switch

Configuration du routeur

Schéma réseau du contexte

Schéma réseau contexte BOOKTIC

Présentation du contexte

L’entreprise Booktic est une groupement d’établissements d’éditions informatique implantée partout en France depuis 1944. Cette année nous avons en projet d’assurer la maintenance des systèmes informatiques pour la division Ile de France, précisément celui du centre administratif de Meaux. Ce projet consiste à mettre en place un réseau interne dont une DMZ avec deux serveurs web, le tout connecté au WAN via le FAI.

Pour la mise en œuvre de notre projet, nous avons commencé par établir une feuille de route, visant à monter le projet, de la conception à sa réalisation.

Nous avons par la suite recensé tout le matériel nécessaire à savoir :

  • Un  routeur
  • Un Switch
  • 2  machines Windows serveur 2012 R2
  • 1  machine linux, Debian 9
  • Les Virtualiseurs : Hyper-V et VirtualBox
  • Des câbles réseaux RJ45

Par la suite, nous avons conçu deux schémas, un logique et un physique. Puis en se basant sur le schéma physique, nous avons procédé au câblage des différents matériels. Le schéma logique quant à lui nous permis de concevoir un plan d’adressage IP.

Par la suite, nous avons procédé à l’installation des différentes machines sur les virtualiseurs et ainsi configurés les différents services nécessaires à notre projet, notamment :

  • DNS   
  • DHCP   
  • FTP   
  • Active     Directory   
  • LAMP (Apache, Mysql, PHP)   
  • GLPI   
  • NaGIOS
  • Proxy
  • VPN   
  • Pare-feu : Pfsense.

Authentification Squid Active Directory

L’authentification Active Directory utilise le mode ntlm.

Le mode NTLM permet d’effectuer une identification silencieuse. Les navigateurs exécutés dans une session Windows connectée au domaine Active Directory envoient les jetons d’identification en tâche de fond aux proxy.
Ainsi, avec ce mode, les utilisateurs n’ont pas à s’identifier sur le proxy pour naviguer sur Internet, le proxy dispose déjà des informations d’identifications.

Les avantages de cette méthode

  • Les utilisateurs sont identifiés avec leur compte Active Directory sur le proxy et dans les évènements d’accès.
  • Les règles de filtrages Web peuvent être créées en fonction d’un utilisateur ou d’un groupe Active Directory.

Les Inconvénients

  • Uniquement les postes de travail connectés au domaine Windows et compatibles NTLM peuvent utiliser le proxy.
  • Les ordinateurs hors du domaine ( tablettes , ordiphones, iTunes, serveurs, applications Java) ne peuvent utiliser le proxy car ils ne pourront pas d’identifier, car Ceci nécessite des règles d’autorisation spécifiques pour autoriser les nœuds hors domaine.

Installation des paquets

Pour rejoindre le domaine, il va falloir installer les paquets suivants sur notre serveur proxy :

« apt install samba krb5-user libpam-krb5 ntpdate winbind ».

  • Samba : servira à faire le lien entre des machines Linux et Windows ;
  • krb5-user et libpam-krb5 : sont les bibliothèques liées à Kerberos, le protocole d’authentification utilisé par Active Directory ;
  • ntpdate : permet de synchroniser les horloges machines pour Kerberos ;
  • winbind : est le composant de samba communiquant avec Active Directory.

Synchronisation de l’heure locale

Kerberos nécessite que l’heure locale soit synchronisée avec celle de votre Domain Controller

Taper la commande « ntpdate172.16.2.2 »

Configuration de kerberos

Éditer le fichier /etc/krb5.conf et configurer comme suit :

Par la suite nous allons tester les paramètres kerberos à l’aide de la commande :

« kinit administrateur » et renseigner le mot de passe du compte administrateur.

La commande « klist » permet de voir les tickets kerberos en cache.

Configuration de samba

Avant de procéder à la configuration, stopper les services Winbind et Samba :

« service
winbind stop"
"
service smbd stop"

 Éditer le fichier /etc/samba/smb.conf et rajouter les lignes suivantes :

[global]
               workgroup = epbooktic
               realm = epbooktic.local
               security = ads
               encryptpasswords = yes
               password server = srv-virt.epbooktic.local
               idmap uid = 10000-20000
               idmap gid = 10000-20000
               winbind enum groups = yes
               winbind enum users = yes
               winbind use default domain = yes

Ensuite redémarrer les services winbind et samba.

"service
smbd start"
"
service winbind start"

NB: si les service winbind ne démarre pas essayer de joindre la machine dans le domaine à l’aide de la commande « net join -U administrateur » et ensuite redémarrer le service

Rejoindre le domaine

Afin d’intégrer notre serveur proxy dans le domaine nous allons taper la commande suivante :

« net join –U
administrateur »

Si vous obtenez le message suivant :

Allez dans le fichier « /etc/hosts » et modifiez comme suit:

Tests

Effectuer des tests afin de voir si tout s’est déroulé correctement

« net
ads testjoin »

Devrait retourner « Join is OK ».

Pour afficher la liste des groupes d’Active Directory : « wbinfo –g »

Pour afficher la liste des utilisateurs d’Active Directory : « wbinfo –u »

Tester la connexion au DC (Domain Contollers), qui devrait être fonctionnelle avec la commande

« /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic »

Rentrer un login suivi du mot de passe d’un utilisateur d’Active Directory:

Cela devrait retourner OK (Ctrl–C pour quitter).

Modification de squid

Éditez le fichier/etc/squid/squid.conf de configuration de Squid et rajouter les lignes suivantes :

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param
basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param
basic children 5
auth_param basic realm epbooktic
auth_param
basic credentialsttl 2 hours

Dans la partie acl rajouter

« acl ntlm proxy_auth REQUIRED »   //Dans la partie http_access, rajouter:

« http_access allow ntlm »

Par la suite redémarrer le service squid.

Pour autoriser l’accès à une page Web juste à un groupe spécifique de votre active directory il faut ajouter le paramètre

require-membership-of au ligne ci-dessus.

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=DOMAINE.LOCAL\\groupead
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of=DOMAINE.LOCAL\\groupead

Authentification utilisateur fichier HTACCESS

Pour mettre en place le système d’authentification, squid utilise la méthode htpasswd avec le paquet apache2_utils. L’installer avec la commande « apt-get install apache2-utils« 

Créer un fichier où seront stockés les utilisateurs et leur mot de passe, pour cela utilisez la commande suivante: « htpasswd -b -c /etc/squid/utilisateurs ‘Nonutilisateur’ ‘MotdePasse’ « 

L’option -c permet de créer le fichier en même temps que la création des utilisateurs.

l’option -b permet de renseigner le mot de passe à partir de la ligne de commande plutôt que de l’inviter.

NB: Si vous créez plusieurs utilisateurs, utilisez l’option -c à partir du deuxième utilisateur.

Le fichier utilisateur s’est donc rempli sous la forme ‘NomUtilisateur:MotdePasse’, les mots de passe étant chiffrés.

Par la suite il faut indiquer à squid qu’il doit utiliser le programme d’authentification, pour cela nous allons compléter le fichier «  /etc/squid/squid.conf » avec les commandes suivantes:

auth_param basic program /usr/lib/squid3/ncsa_auth  /etc/squid/utilisateurs              // déclare le programme qui gère l’authentification

acl utilisateurs proxy_auth REQUIRED   //acl qui permet au proxy de demander une authentification

http_access deny !utilisateurs   //refuse l’accès à tous les utilisateurs sauf ceux du fichier utilisateurs

Ex: de fichier de configuration:

Redémarrer le service.

Essayez d’ouvrir un page web, vous avez bien une demande d’authentification qui s’affiche.

Vous renseignez le nom et mot de passe de l’utilisateur crées plus haut, vous avez donc accès à la page Web.

SERVEUR PROXY: SQUID

Le proxy est un composant logiciel informatique qui joue le rôle d’intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges.

Pour mettre en place notre serveur proxy, nous allons installer et configuré « Squid » qui est un serveur mandataire entièrement libre et très performant. il est capable de gérer les protocoles FTP, HTTP, HTTPS… Squid cumule trois fonctions à savoir:

  • Le filtrage : Le filtrage est appliqué en fonction de la politique de sécurité en place sur le réseau. Ceci permet de bloquer selon une liste noire, les sites considérés comme malveillants et/ou inutiles au contexte de travail de l’entreprise (pornographie … etc)
  • Serveur cache : garde en cache les sites visités pour être consulté plus rapidement en cas de demande par les utilisateurs du réseau. Le stockage des logs des sites les pages vues, permet à l’administrateur du réseau de redéfinir la politique de sécurité du réseau et/ou d’intervenir auprès d’un utilisateur qui visite fréquemment des sites malveillants ou sans rapport avec l’activité de l’entreprise.
  • Serveur mandataire : car c’est lui qui est mandaté pour faire la demande à la place des utilisateurs.

Installation de SQUID

Pour mettre en place notre serveur, nous allons commencer par mettre à jour les paquets Debian à l’aide de la commande:

"apt-get updtate & upgrade"

Ensuite nous allons installer Squid:

"apt-get install squid3 squidGuard"

Nous pouvons lancer la commande « ps –axf » pour voir si le processus de squid est bien lancer.

Configuration de Squid

Attribution des droits à l’utilisateur proxy

L’utilisateur proxy du groupe proxy sera le contrôleur des processus squid. Il faut donc lui donner les droits sur les répertoires créés.

« chown –R proxy:proxy /etc/squid »

On va vérifier en tapant la commande « ls –l | grep squid »

Par la suite nous allons créer le répertoire de cache de squid et attribuer les droits.

« mkdir
/var/cache/squid »
« chown –R proxy:proxy /var/cache/squid ».

Après l’installation, nous allons configurer le fichier suivant: « /etc/squid/squid.conf » qui est le fichier où se feront la majorité des configurations.

Après l’installation nous pouvons vérifier le port sur lequel écoute notre serveur dans le fichier de configuration.

Nous pouvons ouvrir notre navigateur et paramétrer le proxy dans les « paramètres avancés d’internet » c’est à dire entrer l’adresse IP de notre serveur proxy ainsi que son port associé, comme suit:

Si nous retournons sur le navigateur et tentons de joindre la page www.google.fr, nous aurons un blocage par le proxy.

Si nous consultons le fichier de log « /var/log/squid/access.log« , nous remarquons que l’accès à la page www.google.fr a été refusé par le proxy.

Afin d’éviter tout désagrément en cas d’erreur, nous allons commencer par faire une copie de configuration de Squid:

"cp
/etc/squid/squid.conf /etc/squid/squid.conf.ini"

Ensuite nous allons enlever les commentaires dans ce fichier et la copier dans un nouveau fichier:

"sed
"/^#/d" /etc/squid/squid.conf> /etc/squid/squid.conf.test"

Et supprimer les lignes vides dans ce même fichier et la mettre dans le fichier de départ.

"sed
"/^$/d" /etc/squid/squid.conf.test> /etc/squid/squid.conf"

À la fin, nous avons le fichier suivant:

Nous pouvons commencer la configuration de squid, nous remarquons que de base, squid bloque tous l’accès à tous les sites. Après chaque modification du fichier de configuration il faut redémarrer le serveur: « service squid restart »

Contrôles d’accès

Afin de contrôler tout ce qui passe par notre serveur, nous utilisons les ACL (Access Control List). Ce sont des règles que le serveur applique afin d’interdire ou d’autoriser certaines transactions.

On peut autoriser ou interdire en fonction du domaine, du protocole, de l’adresse IP, du numéro de port, d’un mot ou des plages horaires.

La syntaxe d’une ACL

Acl       ‘aclname’           ‘acltype’             ‘string’

http_access      allow/deny       [ !]’aclname’

  • Autoriser l’accès au Lan

Interdire l’accès à certains sites.

Nous allons tout d’abord créer un fichier dans lequel nous allons noter tous les sites que nous désirons bloquer et ainsi renseigner le chemin dans le fichier de configuration de squid.

Par la suite nous allons créer une acl comme sur l’image ci-dessous

NB : afin que cette restriction puisse s’appliquer sur les réseaux cités nous allons la placer au-dessus de l’acl autorisant ces réseaux.

Test de connexion pour les sites bloqués

Ensuite nous essayons d’atteindre l’un de ces sites bloquer : ex : www.cdiscount.com, nous remarquons que le proxy refuse la connexion à ce site.

Contrôle d’accès horaires

Squid permet de restreindre l’accès de certains postes clients suivant des plages horaires définies. On ajoute alors les lignes suivantes dans le fichier de configuration de squid :

Afin de faire des tests nous allons créer une restriction horaire de 8h à 13h et les appliqué aux différents réseau.

Après la configuration nous tentons de nous connecter après 14 et la connexion à notre page Web est bien refusée.

Installation d’une solution de filtrage SquidGuard

Un proxy tout seul a peu d’utilité, raison pour laquelle nous allons mettre en place une solution filtrage afin de nous permettre de filtrer l’accès à certains sites ou catégories de site à partir d’une blacklist française. Nous allons commencer par installer SquidGuard:

« apt install squidguard »

Ensuite nous allons mettre en place notre blacklist, ou utiliser la blacklist mis à disposition gracieusement par L’Université Toulouse 1 Capitole qui diffuse depuis quelques années une liste noire d’URLs, gérée par Fabrice Prigent.

L’installation de squidguard crée de base le répertoire/var/lib/squidguard/db, qui est destiné à contenir nos listes noires et blanches ainsi que les scripts cgi.

Le répertoire/var/log/squid quant à lui permet de récupérer les logs

Une fois installer, faire une copie du fichier de squidGuard

« cp
/etc/squidGuard/squidGuard.conf.default /etc/squidGuard/squidGuard.conf »

Ensuite nous allons enlever les commentaires dans ce fichier et la copier dans un nouveau fichier, avec la commande:

"sed "/^#/d" /etc/squidGuard/squidGuard.conf.default>
/etc/squidGuard/squidGuard.conf.test"

Et supprimer les lignes vides dans ce même fichier et la mettre dans le fichier de départ.

"sed "/^$/d" /etc/squidGuard/squidGuard.conf.test>
/etc/squidGuard/squidGuard.conf"

Attribution des droits à l’utilisateur proxy

Nous allons donner tous les droits à l’utilisateur proxy dans les répertoires suivants:

Chown
–R proxy:proxy /etc/squidGuard

On va vérifier en tapant la commande « ls –l | grep squidGuard ».

« chown –R  proxy:proxy /var/lib/squidGuard/db » 

Nous allons par la suite télécharger la blacklist en version compressée à partir du site : https://dsi.ut-capitole.fr/blacklist/.

Pour cela, se déplacer dans le répertoire /var/lib/squidGuard/db

« cd /var/lib/squidGuard/ »

Entrons la commande suivante pour télécharger la blacklist:

« wget https://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz »

Nous décompressons l’archive dans le répertoire /var/lib/squidGuard/db et on copie le contenu du répertoire blacklist dans le répertoire /var/lib/squidGuard/db/

« tar xvzf blacklists.tar.gz »

Par la suite nous éditons le fichier /etc/squidguard/squidguard.conf. Dans ce fichier nous pouvons:

Indiquer les réseaux où seront appliqués les restrictions

la liste des répertoires contenant des sites à bogués

Les horaires de connexion des utilisateurs des réseaux renseignés.

Avant de relancer squid. Il faut lui signaler de démarrer squidguard, on ajoute alors dans squid.conf les lignes suivantes :

redirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.conf
redirect_children 5


Création d’un lien symbolique du fichier de configuration squidGuard.conf dans /etc/squid/

« ln –s /etc/squidguard/squidGuard.conf /etc/squid »

Nous allons attribuer des droits aux dossiers suivants :

« chown–R proxy :proxy /var/log/squid  /var/lib/squidguard"

Par la suite nous allons générer la base de donnés avec la commande suivante :

« squidGuard –d –b –C all »

NB: On lance la commande « squidGuard -C all » pour faciliter l’indexation des bases de données de SquidGuard et on vérifie dans les logs (/var/log/squidguard/squidGuard.log) que tout s’est bien déroulé : on devrait avoir une dernière ligne de log précisant « squidGuard ready for requests« 

Pour se faire :

Ouvrir un premier terminal dans lequel on lance la commande « squidGuard –C all » (all: pour charger toute la base de donnée).

NB: vous pouvez taper la commande « squidGuard -C ‘NomduRépertoire’ » pour mettre à jour un répertoire spécifique.

Dans un second terminal nous lançons la commande suivante « tail –f /var/log/squidguard/squidGuard.log » afin de voir les logs.

NB: cela peut prendre un peu plus de temps car il met à jour la base de donnée des sites bloqués

Si vous créer votre propre répertoire de base de données, pensez à lui donner des droits à l’utilisateur proxy afin qu’il lise ce répertoire.