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/09/2010, 22:11] – 213.21.78.164 | 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:// | ||
| + | ---- | ||
| + | // | ||
