Partage de connexion sous Linux

partage de connexion

Cet article à pour but d’expliquer la mise en place d’un partage de connexion pour tout un réseau.

(Dans mon cas, l’interface qui partage sa connexion est mon téléphone en mode Wifi Hotspot et dont le nom d’interface est usb0, cependant la procédure reste la même). Mais dans notre cas, nous allons utiliser eth1, par convention.

 

Le partage de connexion :

MACHINE 1 (debian)

La connexion Internet est fournie depuis eth1.

La connexion au réseau local est fournie sur eth0.

L’application que nous allons devoir installer et configurer est : dnsmasq.

Elle agira comme serveur DHCP pour fournir les informations correctes aux clients du réseau local. Si vous avez un routeur ou un autre serveur DHCP en fonctionnement, je suggère de les éteindre pour éviter tout conflit.

Ok, on y va.

On connecte les câbles réseaux sur la machine Debian, en respectant la notation suivante :

eth0 vers le réseau local, eth1 vers Internet.

Une fois que c’est fait, nous allons configurer ces cartes réseau dans notre Linux.

1ère étape : Les interfaces

On commence par un :

nano /etc/network/interfaces

et on y ajoute ceci (commentez les lignes existantes qui concernent eth0 ou eth1 avec des # en début de ligne) :

auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
auto eth1
iface eth1 inet dhcp

Un petit Ctrl+X, on valide avec Y ou O.

Maintenant, on lance :

service networking restart

pour rédemarrer nos interfaces.

2ème étape : On active le routage des paquets à travers les interfaces

Ici, deux méthodes possibles :

Soit on modifie /etc/sysctl.conf et on décommente la ligne net.ipv4.ip_forward=1

Soit on exécute la commande suivante :

echo 1 > /proc/sys/net/ipv4/ip_forward

Cette option permet de router le trafic à travers les cartes réseaux permettant de faire des ponts, ou du NAT, et c’est la commande primordiale pour réussir un partage de connexion.

3ème étape : On autorise le trafic en activant le MASQUERADING dans iptables

Nous allons configurer notre pare-feu iptables avec la commande suivante :

iptables -t nat -A POSTROUTING -j MASQUERADE

(Ici, je n’ai pas spécifié d’interface vers laquelle router (paramètre « -o eth1 ») car je n’avais pas réussi à le faire fonctionner avec).

4ème étape : La configuration du DHCP

On installe dnsmasq :

apt-get install dnsmasq

Nous allons modifier la configuration de celui-ci pour qu’il distribue les paramètres IP aux clients qui en feront la demande.

nano /etc/dnsmasq.conf

Et on ajoute ceci :

interface=eth0
listen-address=127.0.0.1
domain=VotreDomaine
dhcp-range=192.168.1.10,192.168.1.50,12h
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.1.100
no-negcache
resolv-file=/tmp/resolv.conf.auto

Un petit Ctrl+X, on valide avec Y ou O.

On termine par un

service dnsmasq restart

5ème étape : On configure nos clients en DHCP automatique

Si votre configuration ne fonctionne pas, essayez de spécifier vos ip en fixe pour tester:

adresse ip : 192.168.1.30
masque : 255.255.255.0
passerelle : 192.168.1.100
DNS1 : 192.168.1.100
DNS2 : 8.8.8.8

Si les pings fonctionnent mais pas votre navigateur, c’est qu’il y a un problème au niveau du DNS. Essayez de modifier le fichier /etc/resolv.conf sur votre serveur pour régler le problème.

Relancez ensuite le partage de connexion et tout devrait fonctionner.