Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
partage_de_connexion_internet [Le 03/12/2010, 03:34] – 69.157.92.148 | partage_de_connexion_internet [Le 03/06/2020, 11:29] (Version actuelle) – 93.23.248.184 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | ====== Comment partager une connexion internet ? ====== | ||
+ | |||
+ | Vous pouvez paramétrer votre carte réseau (wifi ou non) pour qu' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Si le contenu de cette page vous dépasse, vous pouvez opter pour l' | ||
+ | modem-routeur. [[http:// | ||
+ | |||
+ | < | ||
+ | |||
+ | === Un peu de vocabulaire === | ||
+ | |||
+ | * L' | ||
+ | * 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' | ||
+ | |||
+ | {{ applications: | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | Il y a plusieurs façons de faire, ici trois seront présentées. La première est très simple et efficace techniquement, | ||
+ | |||
+ | ===== Configuration côté serveur ===== | ||
+ | |||
+ | ==== Avec Network-Manager ==== | ||
+ | Reportez-vous à ce [[: | ||
+ | |||
+ | ==== Avec un pont réseau ==== | ||
+ | |||
+ | Cette astuce est tirée du blog Only Ubuntu, et permet de partager une connexion avec le paquet bridge-utils, | ||
+ | |||
+ | === Pré-Requis === | ||
+ | |||
+ | * [[: | ||
+ | |||
+ | sudo apt-get install bridge-utils | ||
+ | |||
+ | * Il faut connaître le nom de l' | ||
+ | |||
+ | | ||
+ | |||
+ | Vous devriez avoir un résultat semblable à celui-ci (si ce n'est pas le cas, tentez "'' | ||
+ | |||
+ | < | ||
+ | eth0 Lien encap: | ||
+ | UP BROADCAST MULTICAST | ||
+ | (...) | ||
+ | |||
+ | eth1 Lien encap: | ||
+ | inet adr: | ||
+ | adr inet6: fe80:: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | (...) | ||
+ | </ | ||
+ | Dans ce cas, on voit clairement que l' | ||
+ | inet adr: | ||
+ | L' | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | === Création du pont === | ||
+ | Stoppez le service des réseaux : | ||
+ | sudo / | ||
+ | Modifier le fichier / | ||
+ | sudo gedit / | ||
+ | |||
+ | Et remplacez son contenu par celui-ci, en modifiant bien entendu eth0 par l' | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | </ | ||
+ | Relancez les services : | ||
+ | sudo / | ||
+ | ou (Si start ne fonctionne pas): | ||
+ | sudo / | ||
+ | ou (si networking ne fonctionne pas) | ||
+ | sudo ifdown --exclude=lo -a && sudo ifup --exclude=lo -a | ||
+ | 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 Intrepid, avec la disparition de **gnome-network-admin** (que vous pouvez tout de même [[: | ||
+ | |||
+ | * Sur Hardy, il est possible qu'il faille laisser l' | ||
+ | < | ||
+ | |||
+ | * Cette documentation a été testée sur Ubuntu 7.10 " | ||
+ | |||
+ | Pour une adaptation pour Kubuntu/ | ||
+ | |||
+ | Cette documentation est une simplification/ | ||
+ | |||
+ | === Pré-requis === | ||
+ | |||
+ | <note important> | ||
+ | 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' | ||
+ | * Le câble doit être pour le moment débranché ! | ||
+ | * [[: | ||
+ | * Ouvrez la configuration du réseau (**Système-> | ||
+ | * Cliquez sur la carte réseau avec laquelle vous voulez partager et changez les cases, dans l' | ||
+ | * __Configuration__ : Adresse IP statique | ||
+ | * __Adresse IP__ : 192.168.10.1 | ||
+ | * __Masque de sous-réseau__ : 255.255.255.0 | ||
+ | * __Passerelle__ : Vide... | ||
+ | * Faites **Valider** puis **Fermer** | ||
+ | * Ensuite, pour trouver le nom de l' | ||
+ | |||
+ | ifconfig | ||
+ | |||
+ | Vous devez retrouver quelque chose qui ressemble à ça : | ||
+ | |||
+ | < | ||
+ | eth0 Lien encap: | ||
+ | UP BROADCAST MULTICAST | ||
+ | Packets reçus:0 erreurs:0 :0 overruns:0 frame:0 | ||
+ | TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | Octets reçus:0 (0.0 b) Octets transmis:0 (0.0 b) | ||
+ | Interruption: | ||
+ | |||
+ | eth1 Lien encap: | ||
+ | inet adr: | ||
+ | adr inet6: fe80:: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | Packets reçus:767 erreurs:4 :39 overruns:0 frame:0 | ||
+ | TX packets:825 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | Octets reçus: | ||
+ | Interruption: | ||
+ | |||
+ | lo Lien encap: | ||
+ | inet adr: | ||
+ | adr inet6: ::1/128 Scope:Hôte | ||
+ | UP LOOPBACK RUNNING | ||
+ | Packets reçus:60 erreurs:0 :0 overruns:0 frame:0 | ||
+ | TX packets:60 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | Octets reçus:3947 (3.8 KB) Octets transmis: | ||
+ | </ | ||
+ | |||
+ | <note help> | ||
+ | |||
+ | Dans mon cas, nous voyons clairement que l' | ||
+ | |||
+ | inet adr: | ||
+ | adr inet6: fe80:: | ||
+ | |||
+ | Ce qui signifie qu' | ||
+ | |||
+ | Par déduction, car je n'ai que deux cartes réseau, **eth1** est l' | ||
+ | |||
+ | <note idee>Si vous utilisez un modem branché en USB, ou en port série, l' | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | <note help> | ||
+ | |||
+ | **Retenez bien les valeurs que vous avez trouvées !** | ||
+ | |||
+ | * **__Attention !!!__: Dans la suite nous présumerons que vous avez une configuration comme la mienne, si ce n'est pas le cas, effectuez les changements comme indiqué !** | ||
+ | |||
+ | |||
+ | === Configuration de dnsmasq === | ||
+ | |||
+ | * Tous d' | ||
+ | |||
+ | sudo cp / | ||
+ | |||
+ | * [[: | ||
+ | |||
+ | < | ||
+ | # Fichier de Configuration pour dnsmasq. | ||
+ | # | ||
+ | # pour éviter de fournir du trafic DHCP/DNS inutile du coté internet | ||
+ | ## | ||
+ | bogus-priv | ||
+ | # (Optionnel) Si vous avez une ip fixe, | ||
+ | # décommentez cette ligne. | ||
+ | # no-poll | ||
+ | # pour limiter l' | ||
+ | interface=eth0 | ||
+ | # nom de votre domaine pour dnsmasq | ||
+ | domain=inet | ||
+ | # activez le serveur DHCP: | ||
+ | dhcp-range=192.168.10.100, | ||
+ | </ | ||
+ | |||
+ | * Adaptez la ligne 10 selon ce que vous avez trouvé précedemment. | ||
+ | |||
+ | * Enregistrez le fichier. | ||
+ | |||
+ | |||
+ | === Faire un script d' | ||
+ | |||
+ | * [[: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | # | ||
+ | # Script de démarrage qui lance l' | ||
+ | # 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 | ||
+ | # | ||
+ | iptables -X | ||
+ | |||
+ | # | ||
+ | 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' | ||
+ | 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, | ||
+ | # exemple : on veut qu'un serveur HTTP installé sur une machine du réseau local soit visible depuis l' | ||
+ | ###iptables -t nat -A PREROUTING -i $interface -p tcp --dport 80 -j DNAT --to-destination 192.168.10.121: | ||
+ | ###iptables -A FORWARD -p tcp -i $interface --dport 80 -j ACCEPT | ||
+ | |||
+ | |||
+ | #création d'une nouvelle règle | ||
+ | iptables -N MAregle | ||
+ | |||
+ | # | ||
+ | # et accepter toutes les connexions établies et reliées (ex: une demande de page HTML provoque l' | ||
+ | # d'une connexion reliée pour acheminer cette page vers l' | ||
+ | |||
+ | iptables -A MAregle -m state --state NEW ! -i $interface -j ACCEPT | ||
+ | iptables -A MAregle -m state --state ESTABLISHED, | ||
+ | |||
+ | # | ||
+ | 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 >/ | ||
+ | iptables -t nat -A POSTROUTING -s 192.168.10.0/ | ||
+ | |||
+ | } | ||
+ | |||
+ | stop() { | ||
+ | echo 0 >/ | ||
+ | ifdown $interface | ||
+ | } | ||
+ | |||
+ | case " | ||
+ | | ||
+ | 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**), | ||
+ | |||
+ | * Enregistrez le fichier | ||
+ | |||
+ | * Exécutez ensuite dans un [[terminal]] : | ||
+ | |||
+ | sudo chmod +x / | ||
+ | |||
+ | puis : | ||
+ | |||
+ | sudo update-rc.d iptables start 99 2 . stop 00 2 0 1 6 . | ||
+ | |||
+ | |||
+ | === Optionnel - Configuration du client DHCP pour permettre l' | ||
+ | |||
+ | * [[: | ||
+ | |||
+ | * Enlevez le **#** devant la ligne **prepend domain-name-servers 127.0.0.1; | ||
+ | * Enregistrez le fichier | ||
+ | |||
+ | |||
+ | === Optionnel - Nom d' | ||
+ | |||
+ | * [[: | ||
+ | |||
+ | * Ajoutez dans ce fichier, **192.168.10.1 | ||
+ | |||
+ | * Enregistrez le fichier | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Optionnel (si besoin) - Configurer le pare-feu === | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | * Si ce n'est déjà fait, [[: | ||
+ | * lancer Système/ | ||
+ | * cliquer sur Préférences/ | ||
+ | * cocher " | ||
+ | * Accepter la modification des Préférences ; | ||
+ | * Arrêter puis redémarrer le pare-feu ; | ||
+ | * Quitter Firestarter. | ||
+ | |||
+ | === C'est fini, comment ça marche ? === | ||
+ | |||
+ | Et voila, branchez enfin les câbles, redémarrer votre serveur ICS, puis redémarrer les autres machines de votre réseau local. | ||
+ | |||
+ | Quand une machine du réseau local démarre, voici ce qu' | ||
+ | |||
+ | * recherche d'un serveur DHCP –> le serveur ICS répond. | ||
+ | * le serveur ICS fourni une adresse DHCP dans la plage 192.168.10.100 à 192.168.10.150. | ||
+ | * le serveur ICS renseigne le fichier / | ||
+ | * le serveur ICS renseigne la route par défaut. Il se donne lui-même en route par défaut car c'est lui qui effectue le partage de la connexion internet. | ||
+ | |||
+ | ===== Configuration coté client ===== | ||
+ | |||
+ | ==== En DHCP ==== | ||
+ | |||
+ | Sous linux mettre l' | ||
+ | |||
+ | Sur une machine Windows laissez le paramétrage TCP/IP et les DNS sur " | ||
+ | |||
+ | Tous les ordinateurs reliés devraient marcher, qu'ils soient sous windows, linux, BSD ou autre. | ||
+ | |||
+ | ==== En IP Fixe ==== | ||
+ | |||
+ | Logiquement, | ||
+ | |||
+ | * Ouvrez la configuration du réseau (**Système-> | ||
+ | * Ouvrez la carte réseau du client et changer les cases, dans l' | ||
+ | * __Configuration__: | ||
+ | * __Adresse IP:__ 192.168.10.* | ||
+ | * __Masque de sous-réseau: | ||
+ | * __Passerelle: | ||
+ | * Faites **Valider** puis **Fermer** | ||
+ | |||
+ | ^ Action | ||
+ | | Ouvrez la configuration du réseau |**Système -> Administration -> Réseau** | ||
+ | |Ouvrez la carte réseau du client| Sélectionner la carte concernée puis **Propriétés** \\ remplir comme suit : | Dans l' | ||
+ | |Remplissez les paramètres| __Configuration__: | ||
+ | |Validez \\ Puis fermez||| | ||
+ | |||
+ | ===== Problèmes rencontrés ===== | ||
+ | ==== Les DNS ne fonctionnent pas ==== | ||
+ | La solution est d' | ||
+ | |||
+ | Les 2 commandes suivantes sont a exécuter après chaque redémarrage, | ||
+ | sudo su | ||
+ | echo ' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Liens ===== | ||
+ | |||
+ | * http:// | ||
+ | ---- | ||
+ | // |