schema_partage_connexion

A bien des égards, partager la connexion d'une CentOS (ou autre Linux) vers les autres postes du réseau peut s'avérer très utile. D'une part cela permet de faire profiter aux autres postes des accès dont bénéficie la machine, d'autre part il devient facile de gérer et configurer les règles pour tous les clients en ne modifiant que les paramètres depuis ladite CentOS Linux.

Pour que tout ceci fonctionne, il faudra déclarer la machine comme passerelle par défaut. soit dans les paramètres réseau (ip fixe), soit via le routeur ou un serveur DHCP comme dnsmasq par exemple.


Pour les exemples ci-dessous, nous partons du principe que le poste qui va effectuer le (ou les) partage(s) se trouve derrière une box ou un routeur. Nous désactivons donc SELinux et le Pare-feu sur cet appareil.

Note Importante 1 : Ne pas confondre " désactivation du Pare-feu " et " désactivation de IPTABLES " !
Ici, nous désactivons uniquement le pare-feu, c'est à dire l'application des règles IPTABLES qui correspondent au mode Pare-feu désactivé.

Note Importante 2 : N'appliquez pas ces méthodes sur un serveur ouvert à Internet. Par exemple si votre Linux est un dédié chez un hébergeur ou si la connexion à Internet est de type directe (pas de routeur, modem Usb ancienne génération, liaison spécifique)

Note Importante 3 : Veillez à ce que le serveur ne soit pas déclaré en DMZ (zone démilitarisée) sur votre routeur ou votre Box. Sauf si vous savez ce que vous faites, privilégiez toujours le transfert de ports au cas par cas plutôt que le mode DMZ sur votre routeur (ou box).



Partage de connexion simple


Pour un cas de figure simple, la machine (ou le serveur) dispose d'une carte réseau unique (identifiée comme interface ETH0).

  • Activez l'IP Forwarding via la ligne " net.ipv4.ip_forward = " du fichier " /etc/sysctl.conf " qu'il faut pousser à la valeur "1" :
# vi /etc/sysctl.conf


  • Forcer "1" sur la ligne concernée :
net.ipv4.ip_forward = 1


  • Puis "pousser" la configuration sans redémarrer :
# sysctl -p


  • Autorisez la translation d'adresse (NAT) via l'option "MASQUERADE" de "IPTABLES" :
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


  • Vous pouvez limiter cette option à votre réseau local uniquement (ici 192.168.0.x) en le précisant via l'option "source" ( -s) :
# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE



Attention : Ne cumulez pas les deux lignes ci-dessus. C'est l'une ou l'autre.

  • Testez le bon fonctionnement de votre passerelle depuis une machine cliente puis, si le fonctionnement est OK, sauvegardez la règle "IPTABLES" que vous venez de configurer :
# service iptables save


Note : En cas d'erreur ou de non fonctionnement du test, n'effectuez pas la sauvegarde, rechargez l'état "IPTABLES" précédent en effectuant un redémarrage du service IPTABLES :

# service iptables restart




Cas Particulier : Partage de connexion avec 2 cartes réseau


Supposons une carte primaire reliée au réseau local reconnue comme ETH0 et une carte secondaire (reliée à la Box ou au routeur) désignée comme ETH1.

  • Procédez comme dans le cas précédent pour l'IP Forwarding ( net.ipv4.ip_forward = 1 ).
  • En revanche, pour la translation d'adresse (NAT), déclarez la carte secondaire, c'est à dire celle reliée à Internet.

Rappelez vous, on ne partage pas le réseau local (ETH0) à destination d'internet (ETH1) mais le contraire, donc :

# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


  • Comme le cas précédent, sauvegarde des règles IPTABLES :
# service iptables save




Cas Particulier : Partage de connexion type "Client VPN"


Si votre passerelle est un client VPN (OpenVPN), elle peut partager ses accès avec les autres membres du réseau.

Attention : Pour des raisons évidentes de sécurité, il est conseillé d'autoriser les postes au cas par cas, et non l'ensemble du réseau.

Pré-requis : Nous considérons ETH0 comme étant l'interface réseau locale et TUN1 l'interface virtuelle créée par le client OpenVPN. Adaptez en fonction de vos paramètres.

  • Autoriser la translation d'adresse (NAT) entre une machine du réseau local (via son ip. Exemple ici 192.168.0.25) et l'interface VPN :
# iptables -t nat -A POSTROUTING -s 192.168.0.25 -o tun1 -j MASQUERADE


  • Enclencher l'IP Forward entre la carte physique et la virtuelle créée par OpenVPN :
# iptables -A FORWARD -i eth0 -o tun1 -j ACCEPT



Note : La première ligne est à répéter pour chaque poste qui doit bénéficier du partage. La seconde ligne est à rentrer une fois pour toutes.

  • Effectuez des tests de fonctionnement puis sauvegardez la configuration IPTABLES :
# service iptables save



TIPS : Vous pouvez à tout moment vérifier les règles IPTABLES en cours via les commandes ci-dessous.

  • Règles au sens large :
# iptables -v -L


  • Règles de la table "NAT" :
# iptables -v -L -t nat




A cet instant, votre passerelle devrait donc être opérationnelle. Il vous est maintenant possible d'optimiser encore en rajoutant un proxy comme Squid et/ou des règles d'accès plus limitatives, notamment en ce qui concerne Internet. Mais ceci fera l'objet d'un autre tuto...


Vous pouvez commenter ou participer à l'amélioration de cet article via le topic dédié du forum.