Académique Documents
Professionnel Documents
Culture Documents
internet ?
Vous pouvez paramétrer votre carte réseau (wifi ou non) pour qu'elle serve de pont entre
plusieurs réseaux. Le plus fréquemment, on rencontre cette configuration lorsque votre
ordinateur sous Ubuntu est relié directement au modem de votre fournisseur d'accès à
Internet, et que vous désirez partager votre accès à Internet avec un autre ordinateur
supplémentaire.
Si vous avez un réseau avec un modem qui ne peut pas dupliquer la connexion lui même, ou,
si vous voulez faire un sous réseau, avoir plus d'emprise sur le filtrage en transformant un
ordinateur en routeur, ou n'importe quoi d'autre, il vous faudra partager votre connexion
internet avec les autres ordinateurs.
Si le contenu de cette page vous dépasse, vous pouvez opter pour l'achat d'un routeur ou
modem-routeur. Son utilisation est décrite dans le forum.
Un peu de vocabulaire
L'ordinateur qui met en place le partage de connexion sera nommé Serveur ICS
Internet Connection Sharing
Un ordinateur relié au serveur ICS sera appelé Client
Une carte réseau ou Wi-Fi est une interface réseau
Une adresse IP ou une IP est l'identifiant d'un ordinateur sur le réseau
Petite note sur l'illustration, le switch (sorte de multi-prises réseau) n'est indispensable que si
vous voulez relier plus d'un ordinateur au serveur ICS.
Il y a plusieurs façons de faire, ici trois seront présentées. La première est très simple et
efficace techniquement, la seconde est disponible si la première ne marche pas et la dernière
est une ancienne technique très personnalisable et parfaitement opérationnelle, même si elle
ne convient pas vraiment aux besoins des utilisateurs standard.
Avec Network-Manager
Cette astuce est tirée du blog Only Ubuntu, et permet de partager une connexion avec le
paquet bridge-utils, qui permet de gérer les ponts réseaux sous Ubuntu.
Pré-Requis
Il faut connaître le nom de l'interface réseau reliée à Internet et le nom de la carte qui
servira au partage. Entrez, dans un terminal :
ifconfig
Vous devriez avoir un résultat semblable à celui-ci (si ce n'est pas le cas, tentez "ifconfig
-a"):
Dans ce cas, on voit clairement que l'interface réseau possédant une connexion Internet est
l'interface eth1, grâce à la seconde ligne :
Si vous avez des interfaces finissant par avah, n'en tenez pas compte, ce sont des duplications.
L'interface de partage ne pourra pas commencer par ppp ou lo
Création du pont
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
Et le partage est fait ! Les PC client peuvent se connecter au PC qui partage sa connexion de
façon similaire à un routeur.
Ancienne méthode
Quelques précisions
Sur Hardy, il est possible qu'il faille laisser l'interface par laquelle on partage la
connexion en itinérant, à tester si après avoir fait tout le nécessaire ça ne marche pas
…
Sur Hardy Heron (8.04) si l'interface réseau reliée à Internet est une connexion Wi-Fi il faut la
laisser en itinérant
Cette documentation a été testée sur Ubuntu 7.10 "Gutsy", avec une carte Wi-Fi et une
carte "câble".
Pour une adaptation pour Kubuntu/Xubuntu et/ou si vous avez des problèmes, avec votre
configuration : contactez-moi → Fabien26
Pré-requis
Firestarter n'est plus compatible avec dnsmasq, utiliser ICS DHCP à la place. Il serait bien de
changer le tuto pour pouvoir utiliser dnsmasq quand même ou mettre un tuto pour installer
ICS DHCP à la place
Vous devez avoir deux interfaces réseau (une Wi-Fi et une câble, deux câbles, ou un
modem et un câble)
L'interface réseau avec laquelle vous allez faire le partage doit être une interface
câblée !
Le câble doit être pour le moment débranché !
Installez le paquet dnsmasq
Ouvrez la configuration du réseau (Système→Administration→Réseau)
o Cliquez sur la carte réseau avec laquelle vous voulez partager et changez les
cases, dans l'ordre :
Configuration : Adresse IP statique
Adresse IP : 192.168.10.1
Masque de sous-réseau : 255.255.255.0
Passerelle : Vide…
o Faites Valider puis Fermer
Ensuite, pour trouver le nom de l'interface réseau reliée à Internet et le nom de la carte
qui servira au partage, entrez, dans un terminal:
ifconfig
Dans mon cas, nous voyons clairement que l'interface réseau qui va partager la connexion est
eth0, car elle n'a pas de ligne de ce genre :
Par déduction, car je n'ai que deux cartes réseau, eth1 est l'interface réseau reliée à Internet.
(de plus elle a les lignes si dessus, ce qui veux dire qu'un réseau y est branché, en l'occurrence
une freebox).
Si vous utilisez un modem branché en USB, ou en port série, l'interface réseau connectée à
Internet est dans 99% des cas ppp0
L'interface avec laquelle vous ferez le partage sera obligatoirement une eth un numéro, elle
ne peut pas être une ppp, ni autre chose.
lo est l'interface que l'on appelle loopback, elle permet à l'ordinateur de communiquer avec lui
même via les protocoles réseau…Cette interface ne sera pas évoquée dans cette
documentation
Attention !!!: Dans la suite nous assumerons que vous avez une configuration
comme la mienne, si ce n'est pas le cas, effectuez les changements comme
indiqué !
Configuration de dnsmasq
Enregistrez le fichier.
#!/bin/sh
#
# Script de démarrage qui lance l'interface réseau internet,
# met en place un firewall basique et un partage de connexion
#
# Inspiré du script de Mjules_at_ifrance.com
#
interface=eth1
start() {
# init du la périphérique internet (ici derriere un modem ADSL ethernet,
DHCP client)
/sbin/ifup $interface
# Dans cette partie, on met en place le firewall
#vidage des chaines
iptables -F
#destruction des chaines personnelles
iptables -X
#stratégies par défaut
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
#init des tables NAT et MANGLE (pas forcément nécessaire)
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
# Acceptation de toutes les connexions en local (un process avec l'autre)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# PORT FORWARDING:
# attention : on ne peut malheureusement pas mettre un nom de machine en
destination, il faut mettre l'adresse IP.
# exemple : on veut qu'un serveur HTTP installé sur une machine du réseau
local soit visible depuis l'extérieur.
###iptables -t nat -A PREROUTING -i $interface -p tcp --dport 80 -j DNAT
--to-destination 192.168.10.121:80
###iptables -A FORWARD -p tcp -i $interface --dport 80 -j ACCEPT
#création d'une nouvelle règle
iptables -N MAregle
#définition de la règle : accepter les nouvelles connexions ne venant pas
de l'interface internet
# et accepter toutes les connexions établies et reliées (ex: une demande de
page HTML provoque l'ouverture
# d'une connexion reliée pour acheminer cette page vers l'ordinateur)
iptables -A MAregle -m state --state NEW ! -i $interface -j ACCEPT
iptables -A MAregle -m state --state ESTABLISHED,RELATED -j ACCEPT
#application de la règle au partage de connexion
iptables -A INPUT -j MAregle
iptables -A FORWARD -j MAregle
# activation du forwarding dans le noyau
# mise en place du partage de connexion sur le réseau local
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o $interface -j
MASQUERADE
}
stop() {
echo 0 >/proc/sys/net/ipv4/ip_forward
ifdown $interface
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop && start
;;
*)
echo "Usage $0 {start|stop|restart}"
exit 1
esac
exit 0
Si vous avez comme interface réseau avec internet: eth0 ou ppp0, ou autre, et non pas
eth1, changez la ligne 9 (interface=eth1), par interface= ce que vous avez.
Enregistrez le fichier
puis :
Optionnel - Configuration du client DHCP pour permettre l'affichage des noms des
machines locales
Enregistrez le fichier
Etape à ne réaliser que si les ordinateurs clients n'arrivent pas à se connecter à Internet
Et voila, branchez enfin les câbles, redémarrer votre serveur ICS, puis redémarrer les autres
machines de votre réseau local.
En DHCP
Sous linux mettre l'interface réseau du client en mode dhcp (c'est la configuration par défaut).
Sur une machine Windows laissez le paramétrage TCP/IP et les DNS sur "obtenir
automatiquement", elle sera reconnue automatiquement.
Tous les ordinateurs reliés devraient marcher, qu'ils soient sous windows, linux, BSD ou
autre.
En IP Fixe
Logiquement, nous pouvons assigner une ip statique (du moment qu'elle est comprise entre
192.168.10.100 et 192.168.10.150 pour l'ancienne méthode).
Problèmes rencontrés
edit 1462809772 [Problèmes renco section 17750-17784
Modifier
La solution est d'installer un serveur DNS sur son ordinateur, pour résoudre soi-même les
noms de domaine, et ne pas dépendre d'autrui (typiquement, de son FAI). Pour cela, il faut
installer le paquet apt://bind9.
Les 2 commandes suivantes sont a exécuter après chaque redémarrage, dès que les deux
interfaces sont connectées :
sudo su
echo 'nameserver 127.0.0.1' > /etc/resolv.conf
edit 1462809772 [Les DNS ne fonc section 17785-18225
Modifier
Liens
http://blog.creaone.fr/post/2008/05/29/Partager-sa-connexion-3G-entre-Linux-et-
Windows Partage de connexion avec firestarter
Accueil
Documentation
o Actions
Plan du site
Modifier cette page
Anciennes révisions
Derniers changements
Liens de retour
o Divers
Participer à la documentation
Documentation hors ligne
Télécharger Ubuntu
Forum
Planet
Contact