Travaux Pratiques Configuration du filtrage par un routeur et un proxy logiciel (mod_security)
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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