SNAT avec iptablesJusqu'à présent, nous avons discuté des principes généraux NAT, les types de NAT, et ce que tout sorte de NAT ne. Configuration du noyauHabituellement, toutes les distributions Linux est fourni avec un noyau compilé avec le support de netfilter, iptables outil, et tous les modules nécessaires pour effectuer Network Address Translation. La nat Table NetfilterLa table nat contient trois chaînes: PREROUTING, POSTROUTING et OUTPUT. Chaque chaîne mai contenir des règles qui sont examinées méthodiquement jusqu'à ce que l'une des règles correspond à un paquet, le même que pour les chaînes de la table netfilter. Ces chaînes peuvent être visualisées par l'émission de la commande iptables-t nat-L. SNAT avec iptablesSNAT est l'un des types les plus couramment utilisées de NAT avec iptables en raison de la topologie utilisée.
Nous pouvons mettre en place SNAT afin que tous les dispositifs dans l'accès 192.168.1.0/24 le réseau d'Internet avec une seule règle: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J SNAT - to 1.2.3.1 Cette commande a le même effet que la commande suivante, dont nous devrions utiliser si l'adresse IP de eth1 ont été assignées de façon dynamique, ou si nous avons utilisé un dial-up modem au lieu d'une carte Ethernet: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J MASQUERADE Disons que notre fournisseur de filtres à tous les ports supérieurs à 1024. Dans ce cas, nous aurons besoin de changer le port d'origine ainsi, et pas seulement l'adresse IP source. Cela peut être fait par: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - to 1.2.3.1:1-1024 L'utilisateur de portable voit dans la figure précédente est un fan d'IRC et il nous donne un appel en disant qu'il ne peut pas se connecter à tout réseau IRC. Cela signifie que le module ip_conntrack a besoin d'un peu d'aide, et nous pouvons lui donner en insérant le module ip_conntrack_irc dans le noyau. En outre, nous pourrions permettre aux utilisateurs d'assurer la réussite de connexions FTP, et si l'on veut ajouter le module ip_conntrack_ftp ainsi. ip_conntrack_irc # modprobe ou insmod ip_conntrack_irc Après quelques semaines, les utilisateurs d'ordinateurs portables a convaincu d'autres utilisateurs dans le réseau 192.168.1.0/24 merveilleux de la façon dont le CRI est: nous avons donc environ 20-30 utilisateurs se connectant au même réseau IRC. Maintenant, ils ont commencé à se plaindre de la façon dont il est difficile de se connecter sur le réseau IRC, car le réseau IRC ne permet que quelques connexions à la même adresse IP. Nous chiffre que 32 adresses IP sont assez pour eux, donc nous appeler le fournisseur d'assigner nous un / 27 sous-réseau IP public. Pour quelques dollars de plus, ils se répartissent nous 1.2.4.0/27. Nous devons changer la règle initiale à:
iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -J SNAT - to 1.2.4.0-1.2.4.32 Ils arrêter de se plaindre, mais nous nous rendons compte que nous n'utilisons pas l'adresse IP publique de notre routeur Linux pour NAT plus. Ajoutons que trop; si nous leur donnons une adresse IP supplémentaire: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - to 1.2.4.0-1.2.4.32 - À 1.2.3.1 Un des utilisateurs se dispute sur IRC, et obtient inondé en SNAT MAPPS son adresse IP à 1.2.4.15. Inonder notre prestataire système de détection du filtre automatiquement l'adresse IP et envoie-nous un courriel nous informant à ce sujet. Nous devons cesser de SNAT à la carte toutes les adresses internes à cette adresse IP, alors nous ne le texte suivant: iptables-t nat-A POSTROUTING-s 192.168.1.0/24-j SNAT - À 1.2.4.0-1.2.4.14 - à 1.2.4.16-1.2.4.32 - à 1.2.3.1 Un gars de la comptabilité avec l'adresse IP 192.168.1.19 se plaint qu'il ne peut pas accéder à tous les ordinateurs avec des adresses IP sur 192.168.1.32. Il est possible qu'il a changé son masque réseau à 255.255.255.227, et ainsi tous les paquets IP à partir de son ordinateur à un ordinateur à 192.168.1.0/24 qui ne sont pas en 192.168.1.0/27 passer par le routeur Linux et récupérer SNATed. Pour résoudre ce problème, nous avons deux possibilités. iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -D! 192.168.1.0/24 -J SNAT - to 1.2.4.0-1.2.4.32 - à 1.2.3.1 Le second choix que nous avons est à la SNAT seulement les paquets qui sortent sur eth1: iptables-t nat-A POSTROUTING-s 192.168.1.0/24 -O eth1 -J SNAT - to 1.2.4.0-1.2.4.32 - à 1.2.3.1 Notre fournisseur associé un autre emplacement de notre entreprise pour le même matériel, et puisque nous sommes dans le même VLAN, nous ne disposons pas de construire un tunnel entre les routeurs à chaque endroit, mais se contenterait de router les réseaux à travers le routeur Linux à cet endroit . Sur le site, nous avons le réseau 192.168.2.0/24. Nous devons permettre aux ordinateurs dans nos ordinateurs d'accès au réseau dans le réseau 192.168.2.0/24 sans SNATing eux: iptables-t nat-I POSTROUTING-s 192.168.1.0/24-d 192.168.2.0/24-j ACCEPT Cette commande permet d'insérer la règle avant que la règle NAT, alors, si un paquet à partir 192.168.1.0/24 est destinée à toute la propriété intellectuelle dans le réseau 192.168.2.0/24, cette règle sera match et la chaîne ne sera pas analysé plus loin, si SNAT n'aura pas lieu. iptables-t nat-I POSTROUTING-s 192.168.1.31 -P tcp - dport 6666:6669 -J DROP Nous pourrions vouloir demander au gérant ce que Jane est autorisé à faire. Par exemple, si le gestionnaire veut permettre Jane accès Web seulement, nous pouvons faire ce qui suit: iptables-t nat-I POSTROUTING-s 192.168.1.31 -P tcp - dport! 80 -J DROP Cette règle ne sera pas SNAT Jane adresse IP lorsque vous tentez d'accéder à quelque chose d'autre que le port 80 TCP, mais il sera SNAT son adresse IP pour accéder à tous les services UDP car les paquets UDP ne correspondra pas à cette règle, de sorte qu'elle sera en mesure d'accéder à n'importe quel serveur DNS en dehors de notre réseau. DNAT avec iptablesNous allons continuer avec le scénario précédent pour DNAT ainsi. Un jour, le gestionnaire nous appelle à nous dire qu'elle a besoin d'accéder à son ordinateur à la maison. Bien sûr, elle ne peut le faire en raison de son adresse IP privée 192.168.1.50. Nous décidons de consacrer l'une des adresses IP publiques que nous avons pour son ordinateur de bureau, mais si nous devions créer un alias sur eth0 pour cela, nous aurions non seulement perdent certaines adresses IP, mais elle ne sera plus possible dans la même réseau comme les autres. La meilleure solution est de Plan une adresse IP publique (disons 1.2.4.1) à l'adresse privée de son ordinateur de bureau IP (192.168.1.50). Ceci est, bien sûr, DNAT: iptables-t nat-A PREROUTING-d 1.2.4.1 --j DNAT - to 192.168.1.50 Donc, la prochaine chose à faire est de l'appeler et lui dire que chaque fois qu'elle essaie de se connecter à son ordinateur de bureau de la maison, elle doit se connecter à 1.2.4.1. iptables-t nat-A PREROUTING-s 1.2.5.17-d 1.2.4.2 --p tcp - dport 80-j DNAT - to 192.168.1.100 Nous pensons que nous pourrions vouloir SSH au serveur intranet de n'importe où. Il ne serait pas une idée très sage de la carte d'une adresse IP au serveur intranet, il est vital pour notre entreprise, et si un bug SSH est découvert, nous ne voulons pas que serveur pour être piraté. Une bonne idée serait de mapper un port de haute nombre vers le port SSH sur le serveur intranet (c'est PAT ou NAPT). iptables-t nat-A PREROUTING-d 1.2.4.2 -P tcp - dport 65521-j DNAT - to 192.168.1.100:22 De cette façon, lorsque nous ne sommes pas au bureau et nous voulons SSH sur le serveur intranet, nous allons ouvrir une connexion SSH à 1.2.4.2 port 65521. iptables-t nat-A PREROUTING-d 1.2.4.5-p tcp - dport 80-j DNAT - to 192.168.1.200 Transparent ProxyProxy transparent est un moyen de forcer les utilisateurs à utiliser un serveur proxy, même si leurs navigateurs sont configurés pour ne pas. Vous savez sans doute sur les avantages d'utiliser un serveur proxy économiser la bande passante pour les pages mises en cache et la mise en œuvre de contrôle d'accès (par exemple, refuser de téléchargements de fichiers qui ont des extensions dangereuses). iptables-t nat-A PREROUTING-s 192.168.1.0/24 -P tcp - dport 80-j REDIRECT - to-port 3128 Si nous voulons permettre au gestionnaire (qui a l'adresse IP 192.168.1.50) pour contourner le serveur proxy, nous le faisons comme ceci: iptables-t nat-I PREROUTING-s 192.168.1.50 --p tcp - dport 80-j ACCEPT Ainsi, cette règle se traduira dans la chaîne PREROUTING, et elle sera SNATed dans la chaîne POSTROUTING. un article présenté par Philip A Clare Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite. Important: Cet article "SNAT avec iptables" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.
|
|||||
| Online: 389 users browsing the articles directory |
|
|