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 | ||
tutoriel:comment_configurer_son_reseau_local [Le 15/09/2010, 19:17] – 86.209.130.137 | tutoriel:comment_configurer_son_reseau_local [Le 23/09/2018, 11:31] (Version actuelle) – [Méthode avancée : Configuration dynamique et centralisée] 78.203.218.4 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ====== Comment configurer son réseau local ? ====== | ||
+ | <note warning> | ||
+ | Doc très intéressante mais : | ||
+ | |||
+ | * En la lisant on hésite entre le format " | ||
+ | * Les procédures sont décrites principalement pour agir directement sur les fichiers de configuration avec Gedit (Editeur de texte), la version par interface graphique est parfois référencée mais bizarrement dans une section intitulée avancée. | ||
+ | * Enfin le titre de la page (Config réseau) correspond à une page qui parle d'ICS (partage de connexion internet | ||
+ | *Un réglage d'ip statique apparait dans une section parlant de dynamique | ||
+ | A conserver mais sûrement réorganiser !</ | ||
+ | <note warning> | ||
+ | Cette page s' | ||
+ | |||
+ | {{ applications: | ||
+ | |||
+ | Si votre modem est en fait un routeur, il sera sans doute plus intéressant pour vous de raccorder ce routeur directement au switch. En effet, en choisissant de faire assurer le partage ICS à une machine de votre réseau, il faut bien comprendre que cette machine devra être démarrée avant toutes les autres pour que ça fonctionne, et qu' | ||
+ | |||
+ | Par contre, si vous n'avez pas de routeur, si vous avez une vieille machine que vous voulez dédier à cette fonction, si vous voulez contrôler d'un peu plus près le trafic vers internet, ou mettre en place des fonctions avancées, cette documentation est faite pour vous. | ||
+ | |||
+ | |||
+ | Cette page documente donc les façons de mettre en place la fonction ICS (Internet Connection Sharing = Partage de Connexion Internet) sur une des machines du réseau, qu' | ||
+ | Dans les deux cas de figure, j’appellerai cette machine __le serveur ICS__, même si c'est un poste de travail utilisateur. | ||
+ | |||
+ | De plus, elle permettra de " | ||
+ | |||
+ | Ce guide part du principe que la connexion internet arrive via la carte réseau identifiée eth1. C'est le genre de connexion qu'on met en place quand on dispose d'une freebox ou d'un sagem 908 qu'on raccorde à notre PC ICS avec un câble réseau RJ45. | ||
+ | Si vous vous connectez en ppp vers internet, alors il y a de grandes chances que votre liaison s' | ||
+ | Ce n'est pas l' | ||
+ | |||
+ | J' | ||
+ | * Ceux qui ont pu surfer tout de suite sur internet sans modifier le paramétrage réseau sont précisément dans ce cas de figure (donc pas d' | ||
+ | * ceux qui ont déjà dû aller modifier leurs fichiers / | ||
+ | |||
+ | Pour simplifier, je considère aussi que toutes mes machines sont connectées au réseau local par l' | ||
+ | |||
+ | Comme on a affaire à un réseau de moins de 254 machines on prendra un masque en 255.255.255.0 , on choisira d' | ||
+ | http:// | ||
+ | ou celui-ci : | ||
+ | http:// | ||
+ | |||
+ | * Le **X** représente alors l' | ||
+ | * Le **Y** permet de distinguer les machines les unes des autres au sein de mon réseau 192.168.10.y : chaque machine DOIT avoir une valeur différente. | ||
+ | |||
+ | De plus, je vais décider que le serveur qui voit internet aura l' | ||
+ | |||
+ | |||
+ | Je vais vous proposer 2 façons de configurer votre réseau local: | ||
+ | * Méthode basique : configuration statique. | ||
+ | * Méthode avancée : configuration dynamique et centralisée. | ||
+ | |||
+ | À vous de choisir votre méthode en fonction de vos désirs et de votre niveau de connaissance. | ||
+ | On peut aussi mixer les deux solutions (avec précaution) : rien n' | ||
+ | |||
+ | ===== Méthode basique : configuration statique ======= | ||
+ | |||
+ | Cette méthode est la plus simple à mettre en place, mais aussi la plus lourde à tenir à jour, surtout si vous avez des modifications de parc assez régulières (des machines qui viennent et repartent de votre réseau régulièrement): | ||
+ | |||
+ | ==== 1. Fixer l' | ||
+ | |||
+ | Une fois qu'on a déterminé quelle adresse IP on voulait donner à une machine, il faut faire en sorte que cette machine prenne cette adresse IP et n'en change plus jamais. | ||
+ | |||
+ | Avec les droits d' | ||
+ | < | ||
+ | iface eth0 inet dhcp | ||
+ | </ | ||
+ | Il deviendra alors (exemple avec une Freebox) : | ||
+ | < | ||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address 192.168.10.2 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 192.168.10.1 | ||
+ | |||
+ | # Configuration derrière une FREEBOX HD | ||
+ | auto eth1 | ||
+ | iface eth1 inet static | ||
+ | address 192.168.0.10 | ||
+ | netmask 255.255.255.0 | ||
+ | gateway 192.168.0.254 | ||
+ | iface eth1 inet6 static | ||
+ | address 2001:db8::2 | ||
+ | netmask 32 | ||
+ | gateway 2001:db8::1 | ||
+ | </ | ||
+ | |||
+ | |||
+ | Redémarrez ensuite le réseau : | ||
+ | < | ||
+ | sudo / | ||
+ | </ | ||
+ | <note warning> | ||
+ | |||
+ | En cas de configuration en "IP fixe" via le / | ||
+ | ==== 2. Activer le partage de connexions | ||
+ | |||
+ | Sur la machine ICS, voici les commandes à exécuter : | ||
+ | |||
+ | < | ||
+ | echo 1 | sudo tee / | ||
+ | sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/ | ||
+ | </ | ||
+ | |||
+ | Note : si vous essayez la commande '' | ||
+ | |||
+ | |||
+ | La commande iptables permet d' | ||
+ | Ce mécanisme s' | ||
+ | |||
+ | |||
+ | Maintenant qu'on a fixé nos adresses IP locales, et qu'on a activé le partage de connexion, toutes nos machines sont capables d' | ||
+ | Essayez la commande **ping 212.27.33.233**, | ||
+ | |||
+ | Toutefois, on ne peut pas encore utiliser de noms pour s' | ||
+ | |||
+ | **NOTE **: Ces deux commandes sont " | ||
+ | |||
+ | Le contenu du fichier est le suivant : | ||
+ | < | ||
+ | ip_forward=no | ||
+ | spoofprotect=yes | ||
+ | syncookies=no | ||
+ | </ | ||
+ | Il suffit de changer le paramètre **ip_forwarding** en **yes**. | ||
+ | L' | ||
+ | Enfin, la dernière option **syncookies** protège la machine des attaques de type SYN flood. | ||
+ | |||
+ | |||
+ | ==== 3. Renseigner le fichier / | ||
+ | |||
+ | On va s' | ||
+ | Il faudra faire le tour de toutes les autres machines de votre réseau afin d' | ||
+ | |||
+ | Voici par exemple le fichier /etc/hosts d'une machine nommée pippin: | ||
+ | < | ||
+ | 127.0.0.1 | ||
+ | 192.168.10.1 | ||
+ | 192.168.10.2 | ||
+ | 192.168.10.3 | ||
+ | 192.168.10.4 | ||
+ | |||
+ | # ce qui suit fait partie de l' | ||
+ | # The following lines are desirable for IPv6 capable hosts | ||
+ | ::1 | ||
+ | fe00::0 ip6-localnet | ||
+ | ff00::0 ip6-mcastprefix | ||
+ | ff02::1 ip6-allnodes | ||
+ | ff02::2 ip6-allrouters | ||
+ | ff02::3 ip6-allhosts | ||
+ | </ | ||
+ | |||
+ | A noter que le fichier /etc/hosts de la machine boromir sera différent. Il devra ressembler à ceci: | ||
+ | < | ||
+ | 127.0.0.1 | ||
+ | 192.168.10.1 | ||
+ | 192.168.10.2 | ||
+ | 192.168.10.3 | ||
+ | 192.168.10.5 | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | |||
+ | A ce stade de notre configuration, | ||
+ | Mais c'est à vous d' | ||
+ | |||
+ | ==== 4. Configurer sa résolution DNS ==== | ||
+ | |||
+ | Il reste encore à faire en sorte qu'au lieu de devoir taper **ping 213.95.41.13**, | ||
+ | |||
+ | On va devoir renseigner le fichier / | ||
+ | |||
+ | Si votre machine ICS a bien fait son travail lorsqu' | ||
+ | |||
+ | Le contenu du fichier / | ||
+ | Il suffit donc de noter le contenu du fichier / | ||
+ | |||
+ | |||
+ | |||
+ | ===== Méthode avancée : Configuration dynamique et centralisée ===== | ||
+ | |||
+ | L' | ||
+ | On va utiliser un logiciel appelé **dnsmasq**. Ce logiciel regroupe un serveur DHCP et un serveur relais DNS. | ||
+ | * Le serveur DHCP permet de ne plus renseigner les adresses IP sur chaque machine. Chaque machine devient " | ||
+ | * Le relais DNS évite de passer par la liaison internet à chaque fois qu'il y a un nom à résoudre : toutes les machines interrogent le serveur relais DNS. Si on lui a déjà posé la question, il répond tout de suite, sinon, c'est lui qui interroge les serveurs DNS du fournisseur d' | ||
+ | De plus, le relais DNS va également mémoriser les noms de nos machines locales. C'est très important , car comme les machines vont être en DHCP , on ne saura pas avec quelle adresse IP elle vont se retrouver (sauf à passer la commande **ifconfig** sur place, mais ça n'est pas le but). Par contre, le nom sera toujours à jour. | ||
+ | |||
+ | On va en profiter pour sécuriser un peu mieux le démarrage de notre serveur. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 1. dnsmasq ==== | ||
+ | |||
+ | Sur le serveur ICS, effectuez les actions suivantes: | ||
+ | |||
+ | * [[: | ||
+ | * Sauvegardez le fichier de configuration original (Et vous pouvez le consulter, il contient plein d' | ||
+ | < | ||
+ | * [[: | ||
+ | |||
+ | < | ||
+ | # Configuration file for dnsmasq. | ||
+ | # | ||
+ | # pour éviter de fournir du trafic DHCP/DNS inutile du coté internet | ||
+ | ## | ||
+ | bogus-priv | ||
+ | # pour permettre a dnsmasq de suivre vos changement d'IP: | ||
+ | # commentez cette ligne si vous avez une IP qui change | ||
+ | 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, | ||
+ | </ | ||
+ | |||
+ | ==== 2. iptables ==== | ||
+ | |||
+ | * Il faut maintenant créer le fichier de démarrage d' | ||
+ | Voici son contenu: | ||
+ | < | ||
+ | #!/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 | ||
+ | # | ||
+ | |||
+ | start() { | ||
+ | # init du la périphérique internet (ici derrière un modem ADSL ethernet, DHCP client) | ||
+ | |||
+ | /sbin/ifup eth1 | ||
+ | |||
+ | # Dans cette partie, on met en place le firewall | ||
+ | #vidage des chaînes | ||
+ | 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 < | ||
+ | # 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 eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.121: | ||
+ | ###iptables -A FORWARD -p tcp -i eth1 --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! eth1 -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 eth1 | ||
+ | } | ||
+ | |||
+ | case " | ||
+ | | ||
+ | start | ||
+ | ;; | ||
+ | |||
+ | stop) | ||
+ | stop | ||
+ | ;; | ||
+ | restart) | ||
+ | stop && start | ||
+ | ;; | ||
+ | *) | ||
+ | echo "Usage $0 {start|stop|restart}" | ||
+ | exit 1 | ||
+ | esac | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | * Une fois le script créé, il faut le rendre exécutable: | ||
+ | < | ||
+ | |||
+ | * Puis, on va intégrer ce script dans les séquences de démarrage et d' | ||
+ | < | ||
+ | **Attention** : n' | ||
+ | |||
+ | Pour plus d' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 3. ajustements ==== | ||
+ | |||
+ | Il reste quelques ajustements à effectuer sur notre serveur ICS: | ||
+ | |||
+ | ===Interfaces=== | ||
+ | |||
+ | Il faut [[: | ||
+ | En effet, on a pu voir que le script iptables s' | ||
+ | Dans le principe, il faut retirer la mention //eth1// de la ligne qui commence par //auto//. | ||
+ | |||
+ | Vous noterez au passage que le fichier contient aussi le paramétrage en IP fixe pour eth0 (rappel : eth0 est en IP fixe, c'est obligatoire (voir contraintes au début du tutoriel)). | ||
+ | |||
+ | < | ||
+ | # The loopback network interface | ||
+ | auto lo eth0 | ||
+ | iface lo inet loopback | ||
+ | |||
+ | # This is a list of hotpluggable network interfaces. | ||
+ | # They will be activated automatically by the hotplug subsystem. | ||
+ | mapping hotplug | ||
+ | script grep | ||
+ | map eth0 | ||
+ | |||
+ | # The primary network interface | ||
+ | iface eth0 inet static | ||
+ | address 192.168.10.1 | ||
+ | netmask 255.255.255.0 | ||
+ | # Interface vers internet : eth1 | ||
+ | # cette interface est demarree par le script iptables | ||
+ | # donc elle est absente de la ligne " | ||
+ | iface eth1 inet dhcp | ||
+ | </ | ||
+ | |||
+ | ===Hôtes=== | ||
+ | |||
+ | Il faut aussi [[: | ||
+ | |||
+ | < | ||
+ | 127.0.0.1 | ||
+ | 192.168.10.1 | ||
+ | </ | ||
+ | Explication : après une installation d' | ||
+ | Sur toutes les machines de notre réseau, c'est désiré : ça permet à chaque machine de se reconnaître elle-même. | ||
+ | L' | ||
+ | Si on ne modifiait pas /etc/hosts, un **ping serveurICS** à partir de gandalf répondrait que **Réponse de 127.0.0.1 : octets=32 temps< | ||
+ | |||
+ | ===dhcclient=== | ||
+ | |||
+ | Cette manipulation est à faire sous réserve que votre serveur ICS est configuré en DHCP client auprès de votre fournisseur d' | ||
+ | C'est grâce au DHCP client que le fichier / | ||
+ | Le problème, c'est que comme / | ||
+ | Voici ce qu'il faut faire : | ||
+ | * [[: | ||
+ | * recherchez et décommentez la ligne //prepend domain-name-servers 127.0.0.1;// | ||
+ | * sauvegardez la modification. | ||
+ | |||
+ | En clair, cette modification indique ceci au serveur ICS : "Pour rechercher un nom, adresse-toi d' | ||
+ | |||
+ | |||
+ | ==== 4. les autres machines ==== | ||
+ | |||
+ | Pour que tout fonctionne, il faut faire en sorte que les autres machines de notre réseau s' | ||
+ | |||
+ | Si vous aviez configuré les cartes eth0 en dur, il faut les remettre en DHCP | ||
+ | |||
+ | Il faut modifier (un peu) le fichier / | ||
+ | |||
+ | Cette modification est nécessaire pour que vos machines inscrivent leurs nom dans le serveur DNS relais (installé sur le serveur ICS). | ||
+ | * [[: | ||
+ | * recherchez la ligne contenant //send host-name// | ||
+ | * complétez-la et décommentez-la : //send host-name " | ||
+ | |||
+ | ==== 5. Comment ça marche ? ==== | ||
+ | |||
+ | Et voilà, rebootez votre serveur ICS, puis rebootez 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 fournit 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 nomme lui-même en route par défaut car c'est lui qui effectue le partage de la connexion Internet. | ||
+ | |||
+ | À ce stade, on peut aussi installer une machine Windows dans le réseau local : en laissant le paramétrage TCP/IP et les DNS sur " | ||
+ | |||
+ | Quand vous faites **ping gandalf**, ce n'est pas forcément 192.168.10.103 qui va répondre (par exemple), mais vous serez sûr que c'est bien gandalf. | ||
+ | |||
+ | ==== 6. En cas de problème ==== | ||
+ | |||
+ | Voici les pièges dans lesquels je suis tombé : | ||
+ | |||
+ | * Ma plage DHCP n' | ||
+ | * Le réseau local référencé dans la commande POSTROUTING du script iptables | ||
+ | * J'ai confondu eth0 et eth1 dans iptables, du coup, mon serveur n' | ||
+ | |||
+ | |||
+ | Si vous avez des questions ou des commentaires, | ||
+ | http:// | ||
+ | |||
+ | |||
+ | ==== 7. Version simple pour se connecter à une machine d'un réseau ==== | ||
+ | |||
+ | |||
+ | Configurer le réseau en ip Statique sur les deux machines | ||
+ | |||
+ | Graphiquement : | ||
+ | ^ ? ^ Jaunty Jackalope 9.04 ^ | ||
+ | | **Système -> Administration -> Réseau** | ||
+ | | Sélectionner la carte concernée puis **Propriétés** \\ remplir comme suit : | Dans l' | ||
+ | | IP statique : 192.168.1.X\\ Masque : 255.255.255.0\\ Passerelle :\\ passerelle du modem pour avoir internet\\ (avec alice : 192.168.1.1) (avec freebox : 192.168.0.254) (avec livebox: 192.168.1.1) | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Installer les serveurs SSH : | ||
+ | **Système -> Administration -> gestionnaire de paquets** | ||
+ | |||
+ | Chercher SSH et installer 2 paquets SSH ainsi que openssh-server | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Créer un utilisateur en plus sur le serveur (il peut y avoir 2 ou plus de serveurs) : | ||
+ | **Système -> Administration -> utilisateurs et groupes** | ||
+ | |||
+ | \\ | ||
+ | |||
+ | On se connecte : | ||
+ | **Raccourcis -> se connecter à un serveur** | ||
+ | |||
+ | sélectionner SSH et entrer l' | ||
+ | |||
+ | Et voilà ! | ||
+ | |||
+ | [14-12-08] Documentation mise à jour [[: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // Contributeurs : [[: |