Partager sa connexion quand on a qu'une seule carte réseau
Vous avez l'internet, vous le recevez via un câble réseau et vous voudriez partager cet accès avec un ou plusieurs autres ordinateurs. Comment faire ?
La solution classique pour partager sa connexion
La première solution est d'acheter une carte réseau, un câble croisé, vous lancez le partage de connexion dans drakconf et c'est fini. Si vous voulez partager la connexion avec plus d'un ordinateur, vous pouvez utiliser un hub ou un switch et un câble décroisé à la place du cable croisé.
Maintenant, vous pouvez très bien avoir un hub/switch et votre internet arrive dessus. Puis de cet appareil, le réseau parvient à votre PC qui n'a qu'une seule interface réseau. Comment éviter l'achat d'une nouvelle carte réseau (même si ce n'est pas bien coûteux) ?
Création d'une interface virtuelle
La première chose à faire est de créer une interface virtuelle : de cette manière, vous pourrez clairement distinguer le traffic entre vos ordinateurs locaux et le traffic vers l'internet. L'interface virtuelle s'appellera "eth0:0" (elle partage toutes ses propriétés avec eth0 sauf l'adress ip)
Pour cela, copier et renommer le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 :
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
Ensuite, configurer l'interface virtuelle, de manière à donner une adresse statique à cette interface. Elle n'a besoin que d'une adresse ip et d'un masque, le reste n'ayant pas d'importance (choisir uniquement une adresse non-routables, telle que 192.168.7.254, par exemple et un masque de 255.255.255.0). Editez ce fichier à la main car MCC semble ne pas trop bien comprendre ce qu'est une interface virtuelle. Voici mon fichier ifcfg-eth0:0 dont on comprend aisément chaque paramètre :
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.7.254
NETMASK=255.255.255.0
ONBOOT=yes
Lancez ensuite
service network restart
Configuration de shorewall
Shorewall va nous servir de deux manière : en tant que firewall et aussi de passerelle NAT. Le monde extérieur aura l'impression que seul votre PC raccordé à l'internet existe : seule son adresse IP sera visible et pas celle des autres ordinateurs. Ce principe s'appelle le masquerading.
Déjà, si ce n'est pas déjà fait, utilisez drakfirewall pour configurer un firewall pour votre PC raccordé à l'internet : les fichiers de bases seront ainsi créé et vous n'aurez qu'à les modifier. Car, ici aussi, une modification à la main est nécessaire (drakgw qui permet le partage de connexion ne supporte pas les interfaces virtuelles non plus).
Noter que shorewall supporte les interfaces virtuelles mais d'une manière étonnante : en effet, vous ne ferez pas une seule fois référence à l'interface virtuelle dans ce qui suit et pourtant, c'est la manière dont cela doit être fait...
Une fois votre firewall mis en place, il y a trois changements à opérer dans la configuration de shorewall :
/etc/shorewall/interfaces
Préciser ici qu'il est autorisé qu'un paquet qui rentre par une interface puisse ressortir par la même interface (par défaut, shorewall n'autorise pas cela). En effet, shorewall n'est pas dupe et une interface virtuelle n'est pas vraiment considérée comme une interface. Pour cela, il faut rajouter l'option "routeback" à l'interface réelle associée.
Mis à part les commentaires, mon fichier ne contient que cette ligne :
net eth0 detect routeback
/etc/shorewall/rules
Ici, vous allez autoriser vos ordinateurs à communiquer avec la passerelle, appelée "fw", (ordinateur raccordé à l'internet) et aussi à communiquer avec l'internet, appelé "net".
Si vous avez choisi le même subnet que moi (192.168.7.0/255.255.255.0), rajouter ces deux lignes au dessus de toutes les autres (/24 et /255.255.255.0 sont équivalent) :
ACCEPT net:192.168.7.0/24 fw ACCEPT net:192.168.7.0/24 net
/etc/shorewall/masq
Dans ce fichier, vous indiquez que shorewall doit effectuer un masquage des adresses pour tout paquet à destination de l'internet. Rajouter simplement la ligne suivante (c'est la seule ligne qui apparaît dans mon fichier) :
eth0 192.168.7.0/24
Redémarrage
Lancez :
service shorewall restart
Configuration réseau des ordinateurs
Voilà, c'est fini pour la passerelle, il vous reste maintenant à configurer les autres stations. Il faut leur donner une adresse IP dans la plage d'adresses que vous avez défini et différente de la passerelle (de 192.168.7.1 à 192.168.7.253).
Notez que dans ma configuration, ces hôtes ne sont pas protégées par le firewall sur la passerelle : vous devez configurer drakfirewall sur elles aussi. Je préfère ce genre de configuration ou chaque hôte est libre d'utiliser son propre firewall. Sinon, il vous faudra ajuster la règle qui autorise la communication "net -> 192.168.7.0/4".
Vous pouvez aussi utiliser dhcp-server. Là encore, les outils drakx ne vous aideront pas car le drakwizard pour dhcp-server ne semble pas non plus supporter les interfaces virtuelles : il peut néanmoins vous fournir le fichier de base pour votre configuration DHCP.
Afin de tester si la connectivité à partir d'un ordinateur est correcte, deux commandes "ping" suffiront : vers la passerelle et vers une hôte sur l'internet (www.google.com , par exemple).
Version 1.13 last modified by yoho on 01/12/2005 at 22:29
Comments (2)