la translation d'adresses: NAT ou IPmasquerade
La fonction de translation d'adresses est très utile pour rendre invisibles de l'extérieur les machines
d'un réseau local ayant un plan d'adressage privé. Cette fonction est généralement implémentée
sur un routeur ou éventuellement un firewall dans le cas d'un système fédéré. Ce dernier apparaît
comme étant alors le seul système utilisant la connexion internet.
Ceci permet d'optimiser l'utilisation du plan d'adressage, avec un coût moindre, car il suffit d'avoir
une seule connexion à internet pour plusieurs machines.
La différence entre la NAT et un proxy applicatif réside dans le fait
qu'un proxy agit comme un intermédiaire entre Internet et les machines
connectées au LAN. C'est une bonne chose, cependant chaque application que
vous voudrez exécuter sur votre machine et qui devra se connecter à
Internet à travers le serveur proxy DEVRA savoir comment utiliser un
proxy. Toutes les applications ne savent pas faire ça (et spécialement
les jeux). De plus, il n'y a pas des proxies applicatifs pour tous les
services Internet actuels. La NAT fait correspondre de manière
transparente votre réseau interne à une adresse donnée pour qu'il
puisse se connecter à Internet. Le seul avantage en termes de sécurité
à utiliser un proxy par rapport à la NAT est que le proxy peut
posséder des fonctionnalités de sécurité, et peut filtrer le trafic
d'après le contenu, pour protéger votre machine Windows contre un
virus macro, ou pour protéger votre logiciel client contre les
débordements de tampon...etc. La maintenance de ce type de filtres est
souvent lourde.
En terme de sécurité réseau, le protocole NAT :
- est transparent pour les ordinateurs du domaine,
- cache l'ensemble des machines du réseau derrière la passerelle, qui apparaît comme
étant le seul système connecté à Internet,
- permet une sécurité accrue, car il n'existe aucun moyen pour quelqu'un de l'extérieur,
d'accéder aux machines internes. En effet l'extérieur ne voit qu'une seule machine : la
passerelle sur laquelle est implémentée NAT.
La machine Linux sur laquelle sera installé le protocole NAT devra réaliser les fonctionnalités
suivantes :
- La table NAT doit avoir une entrée pour chaque association statique, afin que chaque
poste puisse avoir accès à Internet,
- Une double traduction est effectuée par le routeur NAT :
- dans le sens interne vers externe :
adresse locale interne vers adresse globale interne
adresse globale externe vers adresse locale externe
- dans le sens externe vers interne :
adresse locale externe vers adresse globale externe
adresse globale interne vers adresse locale interne
- L'administrateur spécifie le pool d'adresses locales internes à traduire et le pool
d'adresses globales internes,
- Chaque fois qu'un paquet avec une adresse IP locale franchit le routeur NAT, il reçoit
une adresse prise dans le pool des adresses globales,
- Cette traduction reste effective tant que la table NAT n'est pas nettoyée ou que la période
de traduction n'est pas expirée. Dans ce cas, un paquet provenant du même hôte doit
obtenir une nouvelle adresse du pool d'adresses globales.
___________________________________________________________________ |
Avantages et inconvénients de NAT |
Du point de vue de la sécurité, NAT cache l'identité réelle des machines. Il n'est pas possible
d'identifier l'identité d'un paquet dont l'adresse IP a été traduite de façon dynamique. Cet avantage
est intéressant pour les sites désirant se protéger de l'extérieur.
Par contre, NAT ``casse'' le modèle IP de bout en bout : la perte de traçabilité de bout en bout
rend la recherche impossible en cas de piratage provoquée par une machine interne.
De manière générale, toute application spécifiant l'adresse IP dans la partie des données (et non
pas dans l'en-tête) ne fonctionne pas avec NAT.
NAT réduit les possibilités de communications sécurisées : impossible de traduire des données
cryptées. Il faut dans ce cas utiliser l'adressage statique avec une adresse globale.
Enfin, le multicast n'est actuellement pas supporté par NAT : il est possible de recevoir du trafic
multicast mais une source interne ne peut pas émettre. Une parade consiste à contourner le NAT,
avec l'utilisation du mode ``sparse'' du protocole PIM (Protocol Independent Multicast) :
identification de la source (interne) à un point de rendez-vous (``Core'') situé à l'extérieur du
réseau local protégé par NAT. PIM ``Sparse Mode'' est analogue au protocole CBT (Core-Based
Tree).
___________________________________________________________________ |
Configuration |
On supposera que votre réseau local est en 192.168.1.X
Première étape: Éditer le fichier /etc/sysconfig/network:
NETWORKING=yes |
FORWARD_IPV4=true |
HOSTNAME=tavel.kervao.fr |
DOMAINNAME=kervao.fr |
GATEWAY= |
GATEWAYDEV= |
________________________________________________________________ |
noyau 2.2.x |
|
- éditer/créez le fichier /etc/rc.d/rc.firewall (ou /etc/rc.d/rc.local si diffèrent de Mandrake)
et ajouter à la fin, les lignes suivantes:
ipchains -P forward DENY
ipchains -A forward -s 192.168.13.0/24 -j MASQ
- Reboutez votre machine
- Pour voir si l'IP Masquerade est bien pris en compte, tapez:
ipchains -L forward
Vous devriez avoir:
Chain forward (policy DENY):
target prot opt source destination ports
MASQ all ------ 192.168.13.0/24 anywhere n/a
Par ailleurs le fichier /proc/sys/net/ipv4/ip_forward doit contenir un 1.
________________________________________________________________ |
noyau 2.4.x |
|
Pour les noyaux 2.4.X il vous faudra installer le package iptables: (urpmi iptables)
Créer un fichier /etc/rc.d/rc.firewall contenant :
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d 0.0.0.0/0 --dport 80 -j DNAT --to 192.168.2.178:3128
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
ou
#!/bin/sh
# Load the NAT module (this pulls in all the others).
modprobe iptable_nat
# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# In the NAT table (-t nat), Append a rule (-A) after routing (POSTROUTING)
# which says to MASQUERADE the connection (-j MASQUERADE).
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
# Allows forwarding specifically to our LAN
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
Pour prendre en compte les modifications vous pouvez exécuter le fichier qui a des droits d'exécution (700).
/etc/rc.d/rc.firewall
|
|
|
Remarque : Il existe un outil graphique pour réaliser l'IPmasquerade, c'est drakgw, mais il est fortement conseillé de ne pas
l'utiliser (attribution d'une adresse IP arbitraire, installation d'un serveur DNS, NIS, et DHCP).
|
|
|
|
|