Travaux Pratiques Configuration du filtrage par un routeur et un proxy logiciel (mod_security)

 
CONTINUER À LIRE
Travaux Pratiques

Configuration du filtrage par un routeur et un proxy
              logiciel (mod_security)

Le but de cette manipulation est de réaliser un contrôle d'accès conforme à la politique de
sécurité d'une entreprise. Pour cela, les étudiants configureront un routeur pour filtrer les
paquets IP en fonction des adresses IP et des numéros de ports TCP.
Cette manipulation vous permettra de vous familiariser avec le filtrage IP et les serveurs
proxies web.
Responsable : Maryline Maknavicius-Laurent, Olivier Paul

1.     Préparation
Se documenter sur l'attribution des numéros de ports TCP pour les applications - ftp, http,
telnet, smtp et finger - ainsi que sur les différents types de filtrage de paquets IP et les
serveurs proxies web.
Vous répondrez à toutes les questions marquées d'une astérisque avant de venir en TP.

2.     Cadre général
Le but du TP est de protéger le réseau d'une entreprise en limitant les échanges entre
l'entreprise et le réseau Internet. Pour cela, il est nécessaire de configurer le routeur placé
en frontière de l'entreprise.
Le réseau d'entreprise est simulé dans ce TP par un PC (PC prof), un serveur
Web/FTP/DNS/WINS et 2 routeurs R et RX. Le X de RX désigne le numéro de poste de
travail (1, 2, 3 ou 4) sur lequel vous vous trouvez. Le routeur R a pour seul objectif de définir
un sous-réseau de l'entreprise.
Le réseau Internet est simulé par les 2 ou 3 PC de votre poste de travail. Normalement le
routeur RX doit être configuré à partir du PC de l'administrateurdu réseau d'entreprise. Pour
des raisons évidentes d'optimisation de l'utilisation du matériel, nous considérons que l'un
des PC extérieurs à l'entreprise (sur votre poste de travail) servira à la configuration de RX.
Le TP ne commence véritablement qu'à la section 3. Il est cependant nécessaire de
configurer correctement le poste de travail (PCs et routeur RX) et de câbler les
équipements avant de commencer le TP.
Une disquette contenant la configuration de base du routeur doit vous être remise en
début de TP

                                               1
Serveur prof                    PC prof
                   WEB/FTP/DNS/WINS

                                                     Routeur R prof

                                            Routeur RX
  Réseau d’entreprise                       Cisco 1600

                                                             Terminal
                   Terminal                                  PC-Windows
                   PC-Windows

                                      Réseau Internet simulé

Figure 1 : Interconnexion d'un réseau d'entreprise à un réseau Internet.

2.1. Le réseau de la salle
2.1.1- Schéma
Cf. figures 2 et 3

                                                               2
Serveur WEB/
                                                                                    FTP/WINS/DNS
    Poste de travail 2                                                                                                              PC prof

                                                  1                                                                                    1                 Poste de travail 1
                                                                   Réseau d'entreprise

                                                  2                                                                                    2

                                                  3                                                                                    3
                                                                                                                                                             Poste de travail 3
    Poste de travail 4
                                                      1      2                  3             3             2                 1

 Figure 2 : Le réseau de la salle de TP. L'un des PC (PC prof) du poste de travail 1 appartient au
 réseau d'entreprise et ne sera pas utilisé par les étudiants.

                                                            Serveur prof                                                              PC prof
                                                            WEB/FTP/WINS/
                                                            DNS
                                                                                                     LAN 20.20.30/24

                                                                                                                                           200.20.30.2
                                                                                                         Routeur R
                                                                                                         prof         200.20.30.1
                                                                 200.20.20.10

                                                                                                  200.20.20.11

                                                                                       Hub
                                                                                       prof
                                             Routeur R2                                                          Routeur R1
                                                                                                                                     Hub

                                 Hub

                                                                                                                       Poste de
                                                                    LAN 200.20.20/24

                     Poste de                                                                                          travail 1
                     travail 2                                                                                         200.100.1/24
                     200.100.2/24

                                 Poste de
                                 travail 4
                                 200.100.4/24                                                                          Routeur R3            Hub

                                                                                                                                      Poste de
                                       Hub     Routeur R4

                                                                                                                                      travail 3
                                                                                                                                      200.100.3/24

                 Liaison série

                  Câble réseau

 Figure 3 : Le réseau de la salle de TP dans le détail

2.1.2- Adressage :
Serveur WEB/FTP/WINS/DNS : 200.20.20.10 sur le sous-réseau 200.20.20/24
PC prof : 200.20.30.2 sur le sous-réseau 200.20.30/24

                                                                                              3
2.2. Poste de travail
2.2.1- Schéma

                                                                          Serveur / PC prof
                            PC1
                                             200.100.X.2
                                                                          entreprise

                                                               Hub prof
       PC2

                              Hub
              200.100.X.3

                                     Eth 0    Console           Eth 1

                                                                            Routeur RX

    Figure 4 : Le poste de travail

2.2.2- Identification du matériel
1 routeur RX (2 ports Ethernet) où X désigne votre poste de travail : 1, 2, 3 ou 4.
-         1 hub
-         1 PC1 servant à configurer le routeur via le port console et à effectuer des tests sur
          le réseau
-         1 PC2 voire 2 PC (PC2 et PC3) servant à effectuer des tests sur le réseau. PC3 est à
          ce moment là connecté au hub, comme PC2.

2.2.3- Câblage
->     Les connexions suivantes sont à vérifier :
-         le port COM1 du PC1 sur le port console du routeur. C'est par le biais de ce port que
          le routeur sera configuré.
-         les ports LAN des PC2 et PC3 sur le hub de votre poste de travail .
-         le port Ethernet 0 du routeur vers le hub de votre poste de travail.
-         le port Ethernet 1 du routeur vers le hub prof.
->        Mettre tous les équipements sous tension.

2.2.4- Configuration des PC
Dans le menu «Paramètres>Panneau de configuration», cliquez sur «Réseau» puis sur
TCP/IP et configurer les PC comme suit :
-         Adresse IP de PC1 : 200.100.X.2 (où X désigne le poste de travail 1, 2, 3 ou 4 sur
          lequel vous vous trouvez)
-         Adresse IP de PC2 : 200.100.X.3
-         Adresse IP de PC3 pour les postes de travail 2, 3 et 4 : 200.100.X.4
-         Configuration du DNS :
          -         Adresse DNS : 200.20.20.10

                                                           4
-      Passerelle : 200.100.X.1
->     Valider.

2.2.5- Configuration du routeur RX
Un fichier de configuration des adresses des ports du routeur et ses tables de routage
existe. Pour le charger dans le routeur via le port console, à partir de PC1, ouvrir une
connexion                                 Hyperterminal                              (menu
«Démarrer>Programmes>Accessoires>Hyperterminal>HyperTerminal»), puis placer vous en
mode configuration (cf. paragraphe 2.2.6. ) et charger le fichier de configuration en
appelant le menu «Transférer>Envoyer le fichier texte» et en envoyant le fichier configX.txt
qui se trouve sur la disquette dans le répertoire TPfiltrage/.
Le routeur RX a les adresses suivantes :
-      Interface Eth0 : 200.100.X.1
-      Interface Eth1 : 200.20.20.X

2.2.6- Etude du fonctionnement du routeur
->     Pour configurer le routeur, ouvrir une connexion HyperTerminal. Le prompt du
routeur (par exemple : routeur>) apparaît. Voici les différentes commandes qu'il est
possible d'effectuer :

visualisation du filtrage en cours :
-      passer en mode privilégié. C'est-à-dire, taper :
         routeur> enab
         routeur> password : int

puis taper :
         routeur# show access-lists

visualisation d'une liste d'accès seule (la numéro 12) :
         routeur# show ip access-list 12

visualisation de la configuration en cours qui montre les ports ethernet 0 et 1 et les filtres qui
sont appliqués :
         routeur# show running-config

aide en ligne très pratique sur les Cisco. Quand vous ne savez pas à quelles commandes
vous avez droit dans un mode donné, taper :
         routeur# ?

cela vous donnera l'ensemble des commandes possibles.
si vous ne savez plus quelles informations doivent être fournies après une commande, faire :
         routeur# show ?
         access-list
         ip
         routeur# show ip ?
         ...
         access-list
         ...

cela indique les informations qui doivent suivre.

                                                5
modification de la configuration du routeur :
-      passer en mode configuration. Taper après le prompt du mode privilégié (routeur#) :
         routeur# configure
         Configuring from terminal, memory or network [terminal] ?

-      faire juste «Enter». Il comprend par défaut que vous configurez le routeur à partir
d'un pc connecté sur le port console.
-      vous vous retrouvez alors en mode configuration avec le prompt : routeur(configure)
-      rentrer un élément de filtrage dont voici quelques exemples.
         routeur(configure)# ip access-list standard 12
         routeur(config-std-nacl)# permit 157.159.20.0 0.0.0.255

-       il s'agit de la liste d'accès référencée 12 qui autorise le passage de tous les paquets
issus du réseau 157.159.20. Le filtrage ne doit porter que sur les 3 premiers octets de
l'adresse IP. Le masque correspondant à spécifier au routeur est donc : 0.0.0.255. Noter
que ce masque n'est pas celui qui est couramment utilisé dans IP.
-     il est important de noter que ce type de liste d'accès (standard) doit porter un numéro
compris entre 1 et 99.
         routeur(configure) ip access-list extended 101
         routeur(config-ext-nacl)# deny ip 157.159.60.0 0.0.0.255 182.28.0.0 0.0.255.255

-      cette commande interdit tout envoi de paquets de protocole IP (ICMP, TCP, UDP) du
réseau 157.159.60.0 à destination du réseau 182.28.0.0.
-      ce type de liste d'accès (étendue) dans laquelle se trouve précisé le type de
protocole (IP, TCP, ICMP, etc.) autorisé ou interdit ainsi que les numéros de ports doit porter
un numéro compris entre 100 et 199.
         routeur(configure) ip access-list extended 101
         routeur(routeur (config-ext-nacl)# permit tcp 10.1.5.0 0.0.0.255 any eq 23
         routeur(config-ext-nacl)# permit tcp 10.1.5.0 0.0.0.255 any eq telnet

-       ces commandes sont équivalentes et autorisent les stations du réseau 10.1.5.0 à
faire du telnet.
         routeur(configure) ip access-list extended 101
         routeur (config-ext-nacl)# permit icmp any any echo

-      cette commande autorise les échanges de paquets ICMP echo.
         routeur(configure) no ip access-list standard 12

-      cette commande supprime la liste d'accès numéro 12.
-        une règle de base en sécurité est de toujours terminer une liste d'accès par
l'interdiction de tout autre accès possible.
-      attention ! Pour que le filtre soit activé, il est important de l'associer à une interface
(ethernet 0 ou ethernet 1 dans notre cas). Pour cela, à partir du mode configuration, placer-
vous en mode interface ethernet 0 ou ethernet 1 en tapant :
         routeur(configure) interface ethernet 1
         routeur(config-if) ip access-group 101 in

-      ici, la liste d'accès numéro 101 est appliquée sur le flot de paquets entrant sur le port
ethernet 1 (cf. figure 5).
         routeur(config-if) ip access-group 12 out

-      la liste d'accès 12 est appliquée sur le flot de paquets sortant sur le port ethernet 1.

                                                          6
-     attention ! On ne peut définir qu'une seule liste d'accès sur chaque port, une dans le
sens entrant, une dans le sens sortant.
-          attention ! Dès que vous spécifiez une liste d'accès, tout le trafic qui n'est pas
           explicitement autorisé dans cette liste est interdit.

                                                                in
                        in
                                                                liste d’accès 101
                                                Fonction de
    ethernet 0                                  routage                             ethernet 1

                                                                out
                        out
                                                                liste d’accès 12

Figure 5 : Le routeur, ses interfaces et ses listes d'accès

-       pour supprimer cette association - liste d'accès / interface - taper (à partir du mode
interface toujours) par exemple :
             routeur(config-if) no ip access-group 101 in

-          sortir des modes «interface», «configure» et privilégié en tapant :
             routeur(config-if) exit
             routeur(configure) exit
             routeur# exit
             routeur>

3.  Filtrage de niveau paquet
Q1.  * Quel est l'intérêt de filtrer les paquets IP sur les adresses IP ?

3.1. Filtrage sur des adresses simples
Modifier la configuration du routeur de telle sorte que PC prof soit la seule machine joignable
par la station PC1 d'adresse 200.100.X.2.
Faire un ping à partir de PC1 à destination de PC prof. Pour cela, sélectionner dans le menu
Démarrer>Programmes, le programme «Commandes MS-DOS» et faire un ping à
destination de l'adresse IP de PC prof: 200.20.30.2. Faire un second ping à destination du
serveur 200.20.20.10.
Q2.        Que se passe-t-il ? Est-ce normal ?

Faire un ping à partir de PC2 ou PC3 à destination de PC prof.
Q3.        Que se passe-t-il ? Est-ce normal ?

                                                            7
3.2. Filtrage sur des adresses multiples
Modifier la configuration du routeur RX de telle sorte que PC1, PC2, (PC3) ne puissent pas
joindre le sous-réseau 200.20.30/24 mais puisse joindre celles du réseau 200.20.20/24.
A partir de PC1, PC2 ou PC3, faire un ping à destination d'un équipement du sous-réseau
200.20.30/24 (PC prof ou routeur) et d'un équipement du sous-réseau 200.20.20/24 (serveur
ou routeur).
Q4.    Que se passe-t-il ?

Supprimer la liste d'accès créée dans l'interface ethernet 1 ou ethernet 0.

3.3. Filtrage sur des ports
Q5.   * Quel est l'intérêt de faire du filtrage sur les ports TCP ?

Modifiez la liste d'accès créée dans l'interface ethernet 1 ou ethernet 0 de telle sorte que:
-      seul le serveur HTTP présent sur serveur prof soit accessible par PC1
-      seul le serveur FTP présent sur serveur prof soit accessible par PC2 ou PC3.

Q6.    Donnez les listes crées pour rendre ce service.

4.   Filtrage à état
Cisco IOS possède deux fonctionnalités similaires au filtrage à état:
-      Les listes de contrôle d'accès réflexives (Reflexive Access Lists).
-      Le contrôle d'accès contextuel (CBAC - Context Based Access Control).
Dans les deux cas le principe est le suivant. Lorsque le paquet relatif à un protocole est
autorisé à traverser une interface en entrée ou en sortie (au travers d'une liste de contrôle
d'accès appropriée), s'il existe une instruction de mémorisation d'état, des listes de contrôle
d'accès temporaires correspondant aux paquets devant circuler entre la destination et la
source sont associées à l'interface dans le sens opposé. Ces listes temporaires sont
supprimées au bout d’une certaine durée et sont examinées avant toute autre liste de
contrôle d’accès.
Il n'est donc pas nécessaire avec ces deux techniques de saisir des listes correspondant à
tous les paquets circulant mais seulement à celui que l'on désire autoriser pour la création
de l'état.
La différence entre les listes réflexives et les listes contextuelles porte sur la quantité
d'information mémorisée et sur la précision du filtrage à partir des listes crées.

                                                8
Schématiquement, la précision des listes de contrôle d’accès réflexives ne portent que sur
l'en tête IP et une partie de l'en-tête transport des paquets alors que la précision du filtrage
CBAC peut porter en plus sur d'autres champs de l'en-tête transport et sur le contenu
applicatif des paquets. Le contrôle d’accès contextuel n’est présent que sur les versions
assez récentes de l’IOS (12.0(T) et supérieur) dans des distributions particulières
contrairement aux listes de contrôle d’accès réflexives qui sont plus répandues. Les deux
procédés n'ont pas également le même cout d'exécution.

4.1. Listes de contrôle d'accès réflexives
On commence pour l'utilisation des listes de contrôle d'accès réflexives à créer une liste
classique qui correspond au premier paquet correspondant à la communication. Dans notre
cas il s'agit d'un paquet partant de la machine d'adresse 192.168.4.2 sur un port supérieur à
1024 vers la machine d'adresse 192.168.3.2 sur le port ssh. On y ajoute le mot clef reflect
sshtraffic. Lorsqu'un paquet validera cette règle la règle temporaire sshtraffic sera crée avec
comme paramètres les conditions exprimées (adresses et ports) par la règle inbound
spécifiées inversées.
         routeur(config)#ip access-list extended inbound
         routeur(config-ext-nacl)#permit tcp host 192.168.4.2 gt 1024 host 192.168.3.2 eq 22 reflect sshtraffic
         routeur(config-ext-nacl)#exit

On crée ensuite un règle pour le trafic retour. Dans l'idéal on souhaiterait utiliser la règle
sshtraffic en l'associant directement à l'interface. Cependant l'IOS ne permet pas cette
opération directement (ceci n'est pas une limitation mais existe pour pouvoir combiner des
règles créées dynamiquement avec des règles statiques). On crée donc une règle
particulière dans laquelle on demande l'évaluation de la règle temporaire sshtraffic.
         routeur(config)#ip access-list extended outbound
         routeur(config-ext-nacl)#evaluate sshtraffic
         routeur(config-ext-nacl)#exit

On associe enfin les règles à l'interface la plus proche de la machine source.
         routeur(config)#interface ethernet 0
         routeur(config-if)#ip access-group inbound in
         routeur(config-if)#ip access-group outbound out

La commande suivante permet d’afficher les listes de contrôle d'accès. A la fin de celles-ci
apparaissent les listes temporaires en cours de validité une fois qu'une connexion initiée par
192.168.4.2 est crée.
         routeur#show ip access-lists
         Extended IP access list inbound
                10 permit tcp host 192.168.4.2 gt 1024 host 192.168.3.2 eq 22 reflect sshtraffic (51 matches)
         Extended IP access list outbound
                10 evaluate sshtraffic
         Reflexive IP access list sshtraffic
                permit tcp host 192.168.3.2 eq 22 host 192.168.4.2 eq 53768 (31 matches) (time left 3)

On désire autoriser l’utilisation de la commande ping entre PC1 et serveur prof mais interdire
l’opération inverse. Tout autre trafic doit être interdit.
Q7.    Donnez les listes crées pour rendre ce service.

                                                         9
Q8.      Quelle est l’opération à réaliser pour vérifier le bon fonctionnement de vos
      commandes ? Quel est le résultat ?

4.2. Listes de contrôle d'accès contextuelles
Le fonctionnement général des listes de contrôle d'accès contextuelles est le même que le
contrôle d'accès réflexif. On commence par autoriser le premier paquet correspondant à une
communication que l’on désire autoriser. Ici il s’agit d’une connexion tcp depuis l’équipement
192.168.4.2 sur un port supérieur à 1024 vers la machine 192.168.3.2 sur le port 22.
          routeur(config)#ip access-list extended 101
          routeur(config-ext-nacl)# permit tcp host 192.168.4.2 gt 1024 host 192.168.3.2 eq 22

On crée ensuite une règle d’inspection appelée tcp_s pour le protocole tcp.
          routeur(config)# ip inspect name tcp_s tcp

L’interface la plus proche de 192.168.4.2 étant ethernet 0, on associe les deux règles à cette
interface. Indépendamment de l’ordre de saisie des règles, l’application de l’instruction
d’inspection se fait toujours après la validation des règles de contrôle d’accès et uniquement
si il existe une règle autorisant le traffic.
          routeur(config)# interface ethernet 0
          routeur(config-if)# ip access-group 101 in
          routeur(config-if)# ip inspect tcp_s in

On peut par ailleurs interdire tout autre trafic retour.
          routeur(config)#ip access-list extended 102
          routeur(config-ext-nacl)# permit deny ip any any
          routeur(config)# interface ethernet 0
          routeur(config-if)# ip access-group 102 out

Il est à noter que contrairement aux listes réflexives ou on est obligé explicitement de
demander l'évaluation des paquets vis à vis de règles temporaires, ce n'est pas le cas ici.
Cependant il faut également noter que cet état est local à l'interface.
La commande suivante permet d’afficher les sessions en cours lorsqu’une connexion initiée
par 192.168.4.2 est crée.
          routeur#show ip inspect sessions
          Established Sessions
          Session 82D4C5CC (192.168.4.2:3126)=>(192.168.3.2:22) tcp SIS_OPEN

                                                         10
On désire autoriser l’utilisation de la commande ping entre PC1 et serveur prof mais interdire
l’opération inverse. Tout autre trafic doit être interdit.
Q9.     Donnez les listes crées pour rendre ce service.

Q10. Quelle est l’opération à réaliser pour vérifier le bon fonctionnement de vos
   commandes ? Quel est le résultat ?

Q11. Que proposeriez-vous comme test afin de vérifier la différence de comportement
   entre les listes réflexives et listes CBAC pour le protocole tcp ?

5.     Utilisation d'un proxy (http)
5.1. Filtrage de http
Vérifier     que        «Netscape»          (menu «Demarrer>Programmes>Netscape
Communicator>Netscape Navigator» n'est pas en mode proxy. Pour cela, vérifiez que dans
le menu «Edition>Preferences», dans la rubrique «Avancées» puis «Proxy», l'option
«Connexion directe à Internet» est sélectionnée.
Charger la page : http://200.20.20.10/TPfiltrage/default.html
Q12.           Quels sont les numéros de port utilisés ?

Modifier la liste d'accès pour que le routeur bloque le trafic http.
Charger une page quelconque.
Q13.           Que se passe-t-il ?

                                                11
5.2. Utilisation du proxy mod_security

mod_security est un module de filtrage que l'on peut ajouter au serveur apache pour faire du
filtrage sur le trafic http et ftp. Un module dans apache est un morceau de code exécutable
qui peut être chargé à la demande afin d'ajouter de nouvelles fonctionnalités à apache.
mod_security s'appuie sur d'autres modules fournis nativement avec le serveur apache:
mod_proxy, mod_proxy_http, mod_proxy_ftp, Ceux-ci permettent de donner au logiciel
apache son rôle de proxy mais ne permettent qu'un filtrage sommaire des requêtes.

Installer sur PC2 le proxy mod_security pour apache. Pour cela, charger par ftp le logiciel
(ftp 200.20.20.10) mod_security-*.zip.
Décompresser l'archive dans le répertoire "modules" à partir du répertoire de base d'apache.

La configuration de base du module se fait au travers du fichier de configuration d'apache
(conf/httpd.conf). Avant de modifier celui-ci, faites en une copie (conf/httpd.conf.old) que
vous restaurerez en fin de TP. Le fichier est composé d'un certain nombre d'instructions qui
permettent à la fois la configuration du serveur et des modules permettant d'étendre le
fonctionnement d'apache.
Le chargement des modules se fait au travers de l'instruction LoadModule:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule unique_id_module modules/mod_unique_id.so

Ces modules sont normalement désactivés. Commencez par les activer en enlevant le
caractère # qui les précède et qui a pour rôle de commenter une ligne.

Avant d'aller plus loin nous allons configurer ces modules:

        ProxyRequests On
        
              Order deny,allow
              Deny from all
#             Allow from x.x.x.x
        
    •   Les instructions  sont des balises utilisées pour
        n'exécuter les instructions encadrées que si le module proxy_module a été chargé.
    •   ProxyRequests configure apache pour fonctionner en mode proxy.
    •   Les instructions  sont des balises qui contiennent la configuration
        du proxy en terme de contrôle d'accès. Le caractère * indique que ces instructions
        sont valides pour toute requête. On aurait put utiliser une URL à la place de cette
        étoile pour indiquer des conditions s'appliquant à un site ou une partie de site.

                                              12
o    Order indique dans quel ordre les commandes seront executées (dans ce cas
                deny puis allow). Ce qui signifie que "Deny from all" sera executé en premier
                et que "Allow from x.x.x.x" sera executé en second. Dans le système de
                contrôle d'accès d'apache (contrairement aux règles utilisées avec les
                routeurs) la dernière règle validée est exécutée.
           o    Deny from all: Interdit l'accès depuis toutes les adresses.
           o    Allow from x.x.x.x: Autorise l'accès depuis l'adresse x.x.x.x. On aurait pu
                remplacer le "all" et le "x.x.x.x" par un préfixe de réseau ou un nom qualifié.

Nous allons ensuite fixer le port (8080) sur lequel le proxy va fonctionner:
Listen 8080

Pour tester la syntaxe votre configuration vous pouvez utiliser le lien "Test Configuration"
dans le panneau de démarrage associé à apache (Apache HTTP Server->Configure Apache
Server).

Depuis PC1 (ou PC3), configurer le navigateur en mode proxy (menu
‘Preferences>Avancées>Proxy’           pour       Netscape        et        ‘Outils>Options
Internet>Connexions>Paramètres réseaux>Utiliser un serveur proxy>Avancé’ pour Internet
Explorer) en définissant votre PC2 (200.100.X.3) comme proxy http de la façon suivante :
                                                      port
         HTTP : 200.100.X.3                           8080

Q14.   * Quel est le rôle joué par un proxy applicatif ?

Recharger une page quelconque.
Q15. Que se passe-t-il ? Quels sont les numéros de port qui devraient être utilisés ?
   Expliquer.

Une première chose est de faire en sorte que notre module ne soit accessible que par les
clients internes de telle sorte qu'il ne puisse pas être utilisé par des utilisateurs externes pour
surfer anonymement. Pour cela configurez le proxy pour n'accepter que des
communications provenant de l'intérieur de votre réseau.
Recharger une page quelconque depuis PC2.
Q16.   Que se passe-t-il ?

Q17. Quels mécanismes un administrateur a-t-il à disposition pour éviter qu’un utilisateur
   ne contacte un serveur web directement sans passer par le proxy ?

                                                13
Nous allons maintenant configurer apache pour qu'il charge le module mod_security2. Celui-
ci permet de créer des règles de filtrage plus complexes.
LoadModule security2_module modules/mod_security2/mod_security2.so

On peut ensuite faire sa configuration de base. Voici un exemple de configuration.

       SecAuditEngine RelevantOnly
       SecAuditLogRelevantStatus "^[45]"
       SecAuditLogType Serial
       SecAuditLog logs/audit.log
       SecAuditLogParts "ABFZ"

       SecRuleEngine On
       SecResponseBodyAccess On
       SecRule REQUEST_URI_RAW ".*ebay\.com.*" log,deny,phase:1
       SecRule RESPONSE_BODY ".*ebay\.com.*" log,deny,phase:4

   •   Les 5 premières instructions ont pour rôle de configurer la façon dont les logs seront
       conservés. Ceux-ci seront conservés uniquement lorsqu'ils sont considérés comme
       intéressants (RelevantOnly) dans un seul fichier (Serial) qui aura pour nom
       logs/audit.log sous un format particulier (ABFZ). Les logs considérés comme
       intéressants sont ceux possédant un code de réponse correspondant à une erreur
       (codes 400, 500) c'est à dire qui commencent par 4 ou 5 ("^[45]").
   •   SecRuleEngine permet d'activer le filtrage.
   •   Par défaut, le module ne permet que de faire du filtrage sur le contenu des en-têtes
       HTTP. Afin de permettre le contrôle des informations transportées par HTTP, on doit
       spécifier des instructions complémentaires. Ainsi SecResponseBodyAccess permet
       de faire du filtrage sur le contenu de la réponse.
   •   SecRule représente une règle de filtrage. Elle est composée:
           o   D'un paramètre indiquant le champ considéré (l'URI demandée pour
               REQUEST_URI_RAW, Le contenu de la réponse pour RESPONSE_BODY)
               (Tous les paramètres disponibles sont contenus dans le manuel -
               mod_security2/doc/).
           o   D'une expression indiquant la valeur que doit prendre le champ pour valider la
               règle. On peut ici utiliser des expressions régulières.
           o   D'une liste d'actions. Celles-ci incluent ici le fait de garder un log de
               l'évènement (log), le fait d'interdire la requête (deny) et la phase à laquelle
               s'applique la règle (phase:x). On distingue 5 phases dans l'analyse des
               échanges HTTP. Parmis lesquelles:
                     La phase 1: correspond à l'analyse de l'en-tête de la requête.

                                             14
   La phase 2: correspond à l'analyse du contenu de la requête.
                      La phase 3: correspond à l'analyse l'en-tête de la réponse.
                      La phase 4: correspond à l'analyse du contenu de la réponse.
               Ainsi les mots clefs ne sont pas suffisants pour décider à quelle phase une
               règle s'applique.
           o   Pour une phase donnée, les règles sont examinées dans l'ordre de leur
               expression.
                      Les règles validant la requête ou la réponse et possédant une action
                       non interruptive sont executées.
                      Si une règle valide la requête ou la réponse et posséde une action
                       interruptive (allow ou deny), elle est appliquée et les règles suivantes
                       sont ignorées.
           o   Il est possible de combiner plusieurs conditions en utilisant plusieurs règles
               dans lesquelles toutes les règles sauf la dernière utilisent l'action "chain".

Faîtes en sorte d'interdire l'accès au fichier carte_1.html sur le serveur prof.

Q18.   Que se passe-t-il ?

Q19. Que faut-il faire pour que l'accès à ce fichier soit interdit indépendamment de son
   nom ? Modifiez la configuration en ce sens.

Q20.   Par défaut, mod_security est il sensible aux attaques jouant sur le codage de l'URI ?

Supprimer la liste d'accès créée dans l'interface ethernet 1 ou ethernet 0.

                                               15
6.    Filtrage habituellement mis en place par les entreprises sur leur routeur d'accès
Configurer le routeur conformément aux exigences en matière de filtrage exprimées ci-
dessous. Elles correspondent à un filtrage simplifié réalisé par les entreprises sur leur
routeur d'accès. Pour chaque nouvel élément de filtrage introduit, il sera demandé aux
étudiants d'écrire les lignes de commandes rentrées dans la configuration du routeur.
Les étudiants pourront créer un fichier de filtrage contenant toutes les lignes de commandes
nécessaires, puis l'envoyer sur le port console du routeur à partir de la fenêtre hyperterminal
(permettant la configuration du routeur) en sélectionnant Transférer>Envoyer le fichier texte.
Voici le filtrage à mettre en place :
-       Seuls les messages icmp - echo, echo reply, host-unreachable, host-unknown, net-
unreachable, network-unknown, port-unreachable, precedence-unreachable, protocol-
unreachable et unreachable - transitent librement au travers du routeur. Tous les autres
messages, comme alternate-address, host-redirect, host-tos-redirect, net-redirect, net-tos-
redirect et redirect doivent être supprimés au niveau du routeur, ceci pour empêcher qu'une
personne malintentionnée ne modifie le routage des paquets IP dans le réseau. Veillez à
vous prémunir des attaques IP spoofing.

Q21.   Décrire le ou les élément(s) ajouté(s) dans la liste d'accès du routeur :

-        Supposons que l'entreprise veuille limiter ses communications à un réseau distant
particulier : un réseau (200.20.30/24) par exemple. Cela peut se produire si l'unique objectif
de cette entreprise, en se connectant à l'Internet, est de communiquer avec un réseau local
d'entreprise distant. Les deux réseaux d'entreprise distants forment alors un réseau privé
virtuel.
Q22.   Décrire le ou les élément(s) ajouté(s) dans la liste d'accès du routeur :

                                              16
-        Le trafic ftp/http est également traité par le proxy PC2. Analyser les possibilités
offertes par le proxy pour filtrer le trafic ftp et http. A des fins de test, l’accès au serveur Prof
est autorisé pour les services ftp/http. Tester le filtrage http depuis PC1 vers le serveur Prof
en utilisant un navigateur et tester le filtrage ftp en accédant au serveur ftp de LOR depuis la
page web principale de LOR (voir le lien à la fin de la page principale de LOR - default.html).
Q23.    Décrire le ou les élément(s) ajouté(s) dans la liste d'accès du routeur :

-        N'oubliez pas que tout ce que l'entreprise n'autorise pas est par défaut interdit. Ainsi
la liste d'accès se termine toujours par une liste d'accès interdisant le transfert de tout autre
type de paquets IP.
Q24.    Décrire le ou les élément(s) ajouté(s) dans la liste d'accès du routeur :

7.     Remise en ordre
-       N'oublier pas de rendre la disquette qui vous a été prêtée.
-      Supprimer la configuration proxy de votre navigateur «Netscape» (menu
‘Preferences>Avancées>Proxy’, « Connexion directe à Internet ») ou Internet Explorer
(menu ‘Outils>Options Internet>Connexions>Paramètres réseaux’, décocher « Utiliser
un serveur proxy »).
->    Restaurez la configuration du serveur apache à partir du fichier de
configuration (httpd.conf.old). Supprimer ensuite ce fichier.
->      Se déconnecter des PC, les éteindre.
->      Eteindre le routeur.

                                                 17
Vous pouvez aussi lire