[ PrésentationConfiguration  ( Première étape, noyau 2.2.Xnoyau 2.4.X ) | Tests de fonctionnement  |  Pour accéder au mail : pop | Accéder aux news : leafnode  ]

Dernière modification 4 mai 03

IP Masquerade

Configuration du réseau


Présentation

IP Masquerade ou comment donner l'accés à Internet (Web, News, Mail, ...) à vos postes Windows ( ou autres) de votre réseau privé par l'intermédiaire d'un poste Linux connecté au net (via un modem), en utilisant évidemment un seul abonnement.

La première chose à faire est d'avoir déjà relié les machines entre elles, physiquement et logiciellement.

Normalement Mandrake configure le noyau pour l'ip masquerade par défaut de telle sorte que la configuration en devient très simple.

ATTENTION: Je présente ici la configuration la plus basique du système, il existe des configurations beaucoup plus "sioux" notamment en terme de sécurité, mais chaque chose en son temps, voir éventuellement ma page ipchains pour cela.

NOTE: on suppose que votre réseau local est en 192.168.13.X
 

[Retour haut de la page]

Configuration

Première étape

Editer le fichier /etc/sysconfig/network

NETWORKING=yes
FORWARD_IPV4=true
HOSTNAME=tavel.kervao.fr
DOMAINNAME=kervao.fr
GATEWAY=
GATEWAYDEV=

Et faire en sorte que le paramètre FORWARD_IPV4 soit à true.

NOTE: A noter que chez moi les champs GATEWAY (passerelle) et GATEWAYDEV (périphérique de passerelle (eth0,...)) sont vides, et que ça marche très bien ainsi.

Relancer le réseau en tapant

/etc/rc.d/init.d/network restart

[Retour haut de la page]

Noyau 2.2.X

Deuxième étape: éditer le fichier /etc/rc.d/rc.local et rajouter toute à la fin, les lignes suivantes:

ipchains -P forward DENY
ipchains -A forward -s 192.168.13.0/24 -j MASQ

Troisième étape: Rebootez votre machine, ça y est c'est fini (ou éventuellement tapez en tant que root les deux lignes précédentes dans un shell

NOTE: Sur une Mandrake, il existe un fichier /etc/rc.d/rc.firewall, vous mettrez les lignes de commandes ipchains dans ce fichier et non pas dans /etc/rc.d/rc/local. Pour info ce fichier rc.firewall est appelé par /etc/rc.d/rc.sysinit au boot de la 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.

[Retour haut de la page]

Configuration noyau 2.4.X

Pour les noyaux 2.4.X (Mandrake 8.X et 9.X) il vous faudra installer le package iptables:

rpm -ivh iptables-1.2.7a-2mdk.i586.rpm

Créer un fichier /etc/rc.d/rc.firewall contenant :

#!/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.13.0/24 -j MASQUERADE

# Allows forwarding specifically to our LAN
iptables -A FORWARD -s 192.168.13.0/24 -j ACCEPT

Pour prendre en compte les modifs vous pouvez exécuter le fichier à qui vous aurez donné des droits d'exécution (755).

/etc/rc.d/rc.firewall

Ce fichier était appelé au démarrage par /etc/rc.d/rc.sysinit sur les Mandrake 8.X, ce n'est plus le cas avec la 9.X, il faut rajouter en fin de fichier

/etc/rc.d/rc.firewall

Il existe un outil graphique pour réaliser la chose, c'est drakgw, mais je vous le déconseille fortement. Il fait tout sauf ce qu'on lui demande (attribution d'une adresse IP arbitraire, installation d'un serveur DNS, NIS, et DHCP !!).

Pour voir si vos règles ont bien été prises en compte, vous pouvez taper en tant que root

iptables -L

Voilà le résultat

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  192.168.13.0/24      anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

[Retour haut de la page]

Tests de fonctionnement

On peut très bien pinger vers l'extérieur mais uniquement avec une adresse IP, par contre pour pinger avec un nom de station, j'ai installé un serveur dns sur ma machine, et mes autres postes sont clients de ce serveur, et peuvent donc aussi pinger avec un nom de machine vers l'extérieur. Par ailleurs sur vos postes clients, la passerelle doit être configurée comme étant votre poste linux. En plus de pinguer vous pouvez aussi évidemment surfer, et faire du ftp notamment de vos postes clients.
Si installer un serveur DNS vous paraît particulièrement lourd, il suffit alors au niveau de la machine masqueradisée de rentrer les adresses IP des serveurs DNS du fournisseur d'accès internet.

Sur un client Linux pour configurer une passerelle il suffit de modifier le fichier /etc/sysconfig/network et de rajouter

GATEWAY=adresse-IP-serveur

Pour voir si la passerelle est bien configuré on doit taper

route

On doit avoir la ligne suivante

default adresse-IP-serveur 0.0.0.0 UG 0 0 0 eth0
[Retour haut de la page]

Pour accéder au news : leafnode

Configurer leafnode tel que décrit dans la page qui va bien, puis sur les postes clients indiquez que c'est votre poste linux le serveur de news, ça y est c'est fini. Attention n'oubliez pas de lancerfetchnews sur votre poste Linux pour récupérer et poster les messages.

Pour accéder au mail : pop

Pour récupérer le mail

Pour récupérer le courrier, aller voir du côté de fetchmail, procmail et du serveur pop dans la page recevoir du courrier et configurer un serveur pop.

Pour envoyer

Pour envoyer du courrier il suffit de configurer sendmail tel que décrit dans la page qui lui est consacrée.
 
 
[Retour page d'accueil FUNIX]