1 / 37

Module : Technologies des serveurs réseaux : Passerelle Internet sous linux

Module : Technologies des serveurs réseaux : Passerelle Internet sous linux. Présenter par : Mounir GRARI. Technologies des serveurs réseaux : Passerelle Internet. Position du problème. La machine Linux dispose de deux interfaces Ethernet. Ici: Eth0 sur le réseau local (privé)

padma
Download Presentation

Module : Technologies des serveurs réseaux : Passerelle Internet sous linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Module :Technologies des serveurs réseaux : Passerelle Internet sous linux Présenter par : Mounir GRARI

  2. Technologies des serveurs réseaux : Passerelle Internet Position du problème • La machine Linux dispose de deux interfaces Ethernet. Ici: • Eth0 sur le réseau local (privé) • Eth1 sur l'Internet via le modem câble du fournisseur d'accès. Cette interface, le plus souvent, sert de support à PPPoE

  3. Technologies des serveurs réseaux : Passerelle Internet Position du problème • Il faut bien comprendre qu'à priori, il peut entrer et sortir des données de chaque interface. • Il peut entrer et sortir des données par Eth0, parce qu'un client du réseau local établit une connexion avec un service installé sur la passerelle, Samba par exemple, pour le partage de fichiers avec Windows. • Il peut entrer et sortir des données par Eth1 (ou la connexion ppp qui y est associée) parce qu'un client situé sur le Net établit une connexion avec un service installé sur la passerelle, une session ssh ou telnet par exemple (ssh, c'est mieux...).

  4. Technologies des serveurs réseaux : Passerelle Internet Position du problème • Notre objectif c’est de controler le trafic qui passe par la passerelle • Solution : IPTables (Netfilter)

  5. Technologies des serveurs réseaux : Passerelle Internet Netfilter dans la pile IP • Netfilter se présente comme une série de 5 ‘points d'accrochage’, sur lesquels des modules de traitement des paquets vont se greffer. Ces points sont: • NF_IP_PRE_ROUTING • NF_IP_LOCAL_IN • NF_IP_FORWARD • NF_IP_POSTROUTING • NF_IP_LOCAL_OUT

  6. Technologies des serveurs réseaux : Passerelle Internet Netfilter dans la pile IP • La branche gauche représente le trajet des paquets qui entrent et qui sortent vers et depuis un processus local (SMB, FTP, HTTP etc.) • La branche de droite représente le trajet des paquets qui  traversent notre passerelle dans sa fonction de routeur.

  7. Technologies des serveurs réseaux : Passerelle Internet Ce qu’on peut faire avec Netfilter • A travers ces cinq points d'insertion, Netfilter va être capable : • D'effectuer des filtrages de paquets, • D'effectuer des opérations de NAT (Network Address Translation) • D'effectuer des opérations de marquage des paquets: principalement pour assurer des fonctions de Firewall. On pourra par exemple interdire à tous les paquets venant de l'Internet et s'adressant au port 80 (HTTP) de passer. Notre serveur APACHE est un serveur Intranet et ne doit pas être accessible depuis l'extérieur. Ces fonctions sont particulièrement utiles lorsque l'on veut faire communiquer tout ou partie d'un réseau privé, monté avec des adresses IP privées (192.168.x.x par exemple) avec l'Internet. pour leur appliquer un traitement spécial. Ces fonctionnalités sont particulièrement intéressantes sur une passerelle de réseau d'entreprise,  un peu moins pour notre cas de réseau domestique.

  8. Technologies des serveurs réseaux : Passerelle Internet Comment Netfilter sait le faire ? • Netfilter dispose d'une commande à tout faire : IPtables. Cette commande va permettre, entre autres, d'écrire des chaînes de règles dans des tables. Il y a dans Netfilter trois tables qui correspondent aux trois principales fonctions déjà vue

  9. Technologies des serveurs réseaux : Passerelle Internet La table "Filter" • Cette table va contenir toutes les règles qui permettront de filtrer les paquets. Cette table contient trois chaînes: • La chaîne INPUT.Cette chaîne décidera du sort des paquets entrant localement sur l'hôte. • La chaîne OUTPUT.Ici, ce ne sont que les paquets émis par l'hôte local qui seront filtrés • La chaîne FORWARD.Enfin, les paquets qui traversent l'hôte, suivant les routes implantées, seront filtrés ici.

  10. Technologies des serveurs réseaux : Passerelle Internet La table NAT • Cette table permet d'effectuer toutes les translations d'adresses nécessaires. • La chaîne PREROUTING • La chaîne POSTROUTING. • La chaîne OUTPUT. Permet de faire de la translation d'adresse de destination. Cette méthode est intéressante si l'on veut faire croire au monde extérieur, par exemple, qu'il y a un serveur WEB sur le port 80 de la passerelle, alors que celui-ci est hébergé par un hôte du réseau privé, sur le port 8080. Elle permet de faire de la translation d'adresse de la source, comme du masquage d'adresse, la méthode classique pour connecter un réseau privé comme client de l'Internet, avec une seule adresse IP "officielle". Celle-ci va permettre de modifier la destination de paquets générés localement (par la passerelle elle-même).

  11. Technologies des serveurs réseaux : Passerelle Internet La table MANGLE • Cette table permet le marquage des paquets entrants (PREROUTING) et générés localement (OUTPUT). Le marquage de paquets va permettre un traitement spécifique des paquets marqués dans les tables de routage avec IPROUTE 2

  12. Technologies des serveurs réseaux : Passerelle Internet Les chaînes • Les chaînes sont des ensembles de règles que nous allons écrire dans chaque table. Ces chaînes vont permettre d'identifier des paquets qui correspondent à certains critères.  • Les cibles Les cibles enfin sont des sortes d'aiguillage qui dirigeront les paquets satisfaisant aux critères . Les cibles préconstruites sont : • ACCEPT : Les paquets qui satisfont aux critères sont acceptés, ils continuent leur chemin dans la pile, • DROP : Les paquets qui satisfont aux critères sont rejetés, on les oublie, on n'envoie même pas de message ICMP . Un trou noir, quoi. • LOG : C'est une cible particulière qui permet de tracer au moyen de syslog les paquets qui satisfont aux critères. • ….

  13. Technologies des serveurs réseaux : Passerelle Internet Les chaînes • En français, nous pourrons faire des choses de ce genre : • Par défaut, tous les paquets qui entrent sont rejetés (DROP) • Les paquets qui entrent par le port 80 sur l'interface eth0 sont acceptés • Les paquets qui sortent par le port 80 sur l'interface eth0 sont acceptés • etc.

  14. Technologies des serveurs réseaux : Passerelle Internet Exemples pour comprendre

  15. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • C'est la table qui va permettre de filtrer tous les paquets qui entrent et sortent de notre machine. Il n'y a ici aucune modification de ces paquets, ils seront comparés à des critères définis dans la table Filter. • Dans notre cas, il peut se passer deux choses différentes: • Un paquet qui entre est destiné à un processus de l'hôte (serveur HTTP, FTP...). • Un paquet qui entre est destiné à un autre réseau, c'est alors une fonction de routage.

  16. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • Un paquet entre dans notre machine. Peu importe par quelle interface il entre, il peut venir aussi bien du réseau local que de l'Internet. Il passe d'abord par la fonction de décision de routage. • C'est elle qui va déterminer si le paquet est destiné à un processus local de l'hôte ou à un hôte sur un autre réseau.

  17. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • Si le paquet est destiné à l'hôte local: • Il traverse la chaîne INPUT • S'il n'est pas rejeté, il est transmis au processus impliqué. Ce processus va donc le traiter et éventuellement émettre un nouveau paquet en réponse. • Ce nouveau paquet traverse la chaîne OUTPUT • S'il n'est pas rejeté, il va vers la sortie. • Si le paquet est destiné à un hôte d'un autre réseau: • Il traverse la chaîne FORWARD. • S'il n'est pas rejeté, il poursuit alors sa route.

  18. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • La chaîne INPUT sera raccrochée au "hook" NF_IP_LOCAL_INla chaîne OUTPUT au "hook" NF_IP_LOCAL_OUTet la chaîne FORWARD à NF_IP_FORWARD.

  19. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • Avec IPtables... • SEULS les paquets destinés à un process local traversent la chaîne INPUT • SEULS les paquets issus d'un process local traversent la chaîne OUTPUT • SEULS les paquets destinés au routage traversent la chaîne FORWARD

  20. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • Initialisation de Netfilter • Tapez successivement les commandes suivantes pour initialiser votre système: • iptables -F • iptables -X • iptables -t nat -F • iptables -t nat -X • De cette manière, vous avez toutes vos chaînes vides, avec par défaut la règle "ACCEPT"

  21. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • iptables -L • L'affichage va vous assurer que les trois chaînes INPUT, FORWARD et OUTPUT sont vides et ont bien la règle par défaut ACCEPT • iptables -t nat -L • L'affichage va vous assurer que les trois chaînes PREROUTING, POSTROUTING et OUTPUT sont vides et ont bien la règle par défaut ACCEPT.

  22. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • Mise en place de Masquerade • Tapez maintenant les commandes suivantes:: • iptables -t nat -A POSTROUTING –s 172.21.11.1 -o eth1 -j MASQUERADE • Tout ce qui sort du routage (-A POSTROUTING) et qui doit passer vers l'Internet (-o eth1) doit subir un masquage d'adresse (-j MASQUERADE) • echo 1 > /proc/sys/net/ipv4/ip_forward • Ceci pour être certain que votre noyau autorise le routage. Vous n'en avez pas besoin, si votre machine est configurée par défaut pour assurer le routage.

  23. Technologies des serveurs réseaux : Passerelle Internet La table de filtrage • Voilà. La passerelle entre le réseau privé et l'Internet doit être opérationnelle. • Vérifiez que, depuis votre passerelle Linux, vous avez bien accès au Net. • Vérifiez que, depuis un poste de votre réseau privé, vous avez bien accès au Net.

  24. Technologies des serveurs réseaux : Passerelle Internet t maintenant, la manip décisive... • Pour bien montrer que les chaînes INPUT et OUTPUT n'interviennent pas dans le routage, nous allons tout simplement leur mettre DROP comme règle par défaut. • Tapez les commandes suivantes: • iptables -P INPUT DROP • iptables -P OUTUT DROP • iptables -L (pour vérifier que INPUT et OUTPUT "droppent" bien tout ce qui passe). • Vérifiez que, depuis votre passerelle Linux, vous n'avez plus accès au Net (ni à votre réseau privé d'ailleurs). Vérifiez que, depuis un poste de votre réseau privé, vous avez toujours l'accès au Net.

  25. Technologies des serveurs réseaux : Passerelle Internet DNAT • La cible DNAT est utilisée pour la Traduction d'Adresse Réseau de Destination, ce qui veut dire qu'elle sert à réécrire l'adresse IP de Destination du paquet. • Si un paquet est sélectionné, et qu'il est la cible de la règle, ce paquet et tous les paquets suivants du même flux seront traduits, et ensuite routés vers le matériel, l'hôte ou le réseau appropriés. • Cette cible peut être extrêmement utile, par exemple, quand vous avez un hôte avec un serveur web dans un LAN, mais pas d'IP réelle routable sur l'Internet.

  26. Technologies des serveurs réseaux : Passerelle Internet DNAT • Vous pouvez alors indiquer au pare-feu de transférer tous les paquets allant vers son propre port HTTP, vers le serveur web réel dans le LAN. Vous pouvez aussi spécifier une plage d'adresses IP de destination, et le mécanisme DNAT choisira l'adresse IP de destination au hasard pour chaque flux. Nous pourrons donc réaliser une sorte d'équilibrage de charge en faisant ça. • Notez que la cible DNAT est disponible uniquement dans les chaînes PREROUTING et OUTPUT de la table nat. Les chaînes contenant des cibles DNAT ne peuvent pas être utilisées depuis d'autres chaînes, comme la chaîne POSTROUTING.

  27. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple) • iptables -t nat -A PREROUTING -p tcp -d 172.21.11.1 --dport 80 -j DNAT --to-destination 10.10.11.1 • L'option --to-destination indique au mécanisme DNAT quelle Destination IP placer dans l'en-tête IP, et où sont envoyés les paquets qui sont sélectionnés. L'exemple ci-dessus enverra tous les paquets destinés à l'adresse IP 15.45.23.67 dans une plage IP de réseau local comprise entre 192.168.1.1 jusqu'à 192.168.1.10.

  28. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple) • Notez que, comme décrit précédemment, un simple flux utilisera toujours le même hôte, et chaque flux aura une adresse IP attribuée au hasard, et qui sera toujours en direction de quelque part, dans ce flux. • Nous pouvons aussi avoir à spécifier une seule adresse IP, dans ce cas nous serons toujours connectés au même hôte. • Notez aussi que nous pouvons ajouter un port ou une plage de ports vers lequel le trafic sera redirigé. Ceci se fait en ajoutant, par exemple, un :80 à l'adresse IP pour laquelle nous voulons traduire les paquets..

  29. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple) • Une règle peut alors ressembler à --to-destination 192.168.1.1:80 par exemple, ou --to-destination 192.168.1.1:80-100 si nous voulons spécifier une plage de ports. • Comme vous pouvez le voir, la syntaxe est à peu près la même que la cible SNAT, même si elles font deux choses totalement différentes. Les spécifications de port sont valides uniquement pour les règles qui précisent les protocoles TCP ou UDP avec l'option --protocol

  30. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple 2) • Nous voulons publier notre site web via notre connexion Internet. Nous ne possédons qu'une seule adresse IP, et le serveur HTTP est situé dans notre réseau interne. Notre pare-feu possède l'adresse IP externe $INET_IP, et notre serveur HTTP a l'adresse IP interne $HTTP_IP et enfin le pare-feu a l'adresse IP interne $LAN_IP. La première chose à faire est d'ajouter la simple règle suivante à la chaîne PREROUTING dans la table nat : • iptables -t nat -A PREROUTING --dst $INET_IP -p tcp --dport 80 -j DNAT --to-destination $HTTP_IP

  31. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple 2) • Maintenant, tous les paquets provenant de l'Internet et allant vers le port 80 sur notre pare-feu, sont redirigés (ou DNATés) vers notre serveur HTTP interne. Si vous testez ceci depuis L'Internet, tout devrait fonctionner parfaitement. mais, que se passe-t-il si vous essayez de vous connecter depuis un hôte sur le même réseau local que le serveur HTTP ? Il ne fonctionnera tout simplement pas. C'est un réel problème avec le routage. Commençons par voir ce qui se passe dans un cas normal. La machine externe possède une adresse IP $EXT_BOX

  32. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple 2) • Le paquet quitte l'hôte connecté allant vers $INET_IP et la source $EXT_BOX. • Le paquet atteint le pare-feu. • Le pare-feu DNAT le paquet et envoie celui-ci à travers les différentes chaînes, etc. • Le paquet quitte la pare-feu pour aller vers le $HTTP_IP. • Le paquet atteint le serveur HTTP, et la machine HTTP répond en retour à travers le pare-feu, si c'est cette machine que la base de routage a entré comme passerelle pour $EXT_BOX. Normalement, ça devrait être la passerelle par défaut du serveur HTTP. • Le pare-feu Un-DNAT le paquet de nouveau, ainsi le paquet semble provenir du pare-feu lui-même. • Le paquet en réponse transite vers le client $EXT_BOX.

  33. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple 2) • Maintenant, voyons ce qui se passe si le paquet est généré par un client sur le même réseau que le serveur HTTP lui-même : • Le paquet quitte la $LAN_BOX vers $INET_IP. • Le paquet atteint le pare-feu. • Le paquet est DNATé, et toutes les autres actions requises sont prises, cependant, le paquet n'est pas SNATé, ainsi la même adresse source IP est utilisée pour le paquet. • Le paquet quitte le pare-feu et atteint le serveur HTTP. • Le serveur HTTP essaie de répondre au paquet, et voit dans les tables de routage que le paquet provient d'une machine locale sur le même réseau, et donc tente d'envoyer le paquet directement à l'adresse source IP d'origine (qui devient alors l'adresse IP de destination). • Le paquet atteint le client, et le client est dans la confusion car le paquet en retour ne provient pas de l'hôte qui a envoyé la requête d'origine. Donc, le client supprime le paquet, et attend une réponse "réelle".

  34. Technologies des serveurs réseaux : Passerelle Internet DNAT (Exemple 2) • La solution la plus simple à ce problème est de SNATer tous les paquets entrants dans le pare-feu sortant vers un hôte ou une IP sur lequel nous faisons du DNAT. Exemple, regardons la règle ci-dessus. • Nous SNATons les paquets entrants dans notre pare-feu qui sont destinés à $HTTP_IP port 80 et ainsi il est vu que des paquets proviennent d'une $LAN_IP. Ceci force le serveur HTTP à envoyer ces paquets vers notre pare-feu, lequel Un-DNAT ceux-ci et les envoie au client. La règle ressemble à ceci : • iptables -t nat -A POSTROUTING –p –s 10.10.11.0/24 tcp --dport 80 -j SNAT --to-source 172.21.11.1

  35. Technologies des serveurs réseaux : Passerelle Internet Sauvegarde et restauration des tables de règles importantes • Une des principales raisons d'utiliser iptables-save et iptables-restore est qu'elles améliorent la vitesse de chargement et de restauration des tables de règles importantes. Le problème principal lors du lancement de scripts shell contenant des règles iptables est que chaque invocation d'iptables dans le script extraira l'ensemble des règles de l'espace Netfilter du noyau, et après cela, inserrera les règles, ou toute autre action en réponse à la commande spécifique. Enfin, ajoutera les nouvelles règles issues de sa propre mémoire dans l'espace noyau. L'utilisation d'un script shell, créé pour chacune des règles que vous voulez insérer, prend plus de temps pour l'extraction et l'insertion de la table de règles.

  36. Technologies des serveurs réseaux : Passerelle Internet Sauvegarde et restauration des tables de règles importantes • Pour résoudre ce problème, il existe les commandes iptables-save et restore. • La commande iptables-save est utilisée pour sauvegarder la table de règles dans un fichier texte au format spécial, et la commande iptables-restore est utilisée pour charger ce fichier à nouveau dans le noyau. Le plus intéressant de ces commandes est qu'elles chargent et sauvegardent la table de règles en une seule action. iptables-save récupérera la table de règles du noyau et la sauvegardera dans un fichier en une seule action. • iptables-save -c > /etc/iptables-save • iptables-restore -c < /etc/iptables-save

  37. Merci 

More Related