2 votes

IPTables Multi-VLAN NAT vers des IP multiples

J'ai un léger problème avec ma configuration NAT.

Ce que j'essaie de faire :

J'ai 2 VLAN (dans cet exemple 100 et 200) et je veux qu'ils puissent accéder au réseau via des IP distinctes. Cela devrait être accompli par un iptables NAT. J'ai créé cette configuration avec pf (FreeBSD) mais malheureusement le matériel que je dois utiliser n'est pas compatible. J'aimerais bien que ce soit dans notre routeur principal, mais le CPU ne peut pas gérer de telles charges. Avec des tables IP, etc. Je suis juste un noob ;) Schema :

Utilisateur sur VLAN 100 (10.100.0.0/24) -> 10.100.0.1 NAT xxx.yyy.zzz.6 -> Réseau

Utilisateur sur VLAN 200 (10.200.0.0/24) -> 10.200.0.1 NAT xxx.yyy.zzz.7 -> Réseau

Tout cela sur la même interface physique, avec des interfaces VLAN, etc.

Voici ma configuration actuelle : /etc/network/interfaces

    lo ....

    iface ens2f3 inet static
        address xxx.yyy.zzz.6
        netmask 255.255.252.0

auto ens2f3.100
iface ens2f3.100 inet static
        address 10.100.0.1
        netmask 255.255.255.0
        vlan-raw-device ens2f3

iface ens2f3 inet static
        address xxx.yyy.zzz.7
        netmask 255.255.252.0

auto ens2f3.200
iface ens2f3.200 inet static
        address 10.200.0.1
        netmask 255.255.255.0
        vlan-raw-device ens2f3

/etc/iptables/rules.v4 (chargé automatiquement)

#NAT TABLE
\*nat
:PREROUTING ACCEPT \[0:0\]
:INPUT ACCEPT \[0:0\]
:OUTPUT ACCEPT \[0:0\]
:POSTROUTING ACCEPT \[0:0\]
-A POSTROUTING -s 10.100.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.6
-A POSTROUTING -s 10.200.0.0/24 -o ens2f3 -j SNAT --to-source xxx.yyy.zzz.7

COMMIT

# General Table
\*filter
:INPUT ACCEPT \[0:0\]
:FORWARD ACCEPT \[0:0\]
:OUTPUT ACCEPT \[0:0\]
COMMIT

# I know this setup is very insecure! I lockdown the server when I got NAT working

Le problème est que je peux obtenir avec un 10.100.0.100 je peux me connecter sur xxx.yyy.zzy.1 avec exactement cette IP (10.100.0.100 ; ce qui ne devrait pas être possible) au lieu de l'IP que j'aurais dû obtenir via NAT.

J'ai aussi essayé de marquer les paquets lorsqu'ils arrivent à l'interface et avoir des tables de routage séparées pour eux. Là, le problème ci-dessus n'existe pas, mais aucune connexion vers quoi que ce soit n'est possible.

Pourriez-vous me donner des conseils sur la façon de réaliser ceci avec un système d'exploitation basé sur Linux. Si nécessaire, je dispose d'une autre interface 10G

2voto

kubanczyk Points 13302

Je n'ai pas tout analysé, mais la première étape est de corriger cela :

-o ens2f3

puisque vous êtes postROUTING, la décision de routage a été prise et je suppose que le paquet va directement vers la passerelle xxx.yyy.zzz.1 donc par une interface différente :

-o enp3s0

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X