Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:serveurs [2013/11/29 10:26] – Ajout connetivité IPv6 gtom | technique:serveurs [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Routeur IP Miassou ===== | ||
- | |||
- | Le routeur est une machine sous debian wheezy. Pour comprendre l' | ||
- | |||
- | La configuration du routage IPv6 est traitée dans la seconde partie du document. | ||
- | |||
- | < | ||
- | L' | ||
- | [[https:// | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | ==== Généralités et objectifs de la configuration ==== | ||
- | |||
- | D'un côté, le réseau Ilico (AP sur adresses privées et abonnés sur adresses publiques). | ||
- | * Une adresse IPv4 publique est attribuée par le radius de FDN au modem (80.67.177.30/ | ||
- | * un bloc d' | ||
- | |||
- | On veut : | ||
- | * Que les abonnés soient routés vers internet | ||
- | * Que les AP sur le réseau privé ne soient pas routés vers internet | ||
- | * Qu'il n'y ait pas de routage entre le réseau abonné et le réseau backbone | ||
- | |||
- | Au niveau interfaces réseau, on aura à la fin de cette partie : | ||
- | * eth0: 10.42.1.0/ | ||
- | * eth0:abo : réseau des IPs publiques des abonnés routés sur cette connexion ADSL (80.67.180.0/ | ||
- | * ppp0: 80.67.177.30/ | ||
- | * eth1:modem 192.168.1.2/ | ||
- | |||
- | Il faut brancher le câble ethernet sur le port 1 du modem. | ||
- | |||
- | |||
- | ==== Configuration PPP/ADSL ==== | ||
- | Configurer le modem : | ||
- | * Pour qu'il ne serve pas de DHCP, | ||
- | * Qu'il aie une adresse LAN statique 192.168.1.1 | ||
- | * Qu'il fonctionne en mode bridge | ||
- | * Le brancher sur eth1 du routeur | ||
- | |||
- | < | ||
- | pppoeconf | ||
- | </ | ||
- | |||
- | Puis se laisser guider (les choix par défaut conviennent très bien)! Les identifiants de connexion sont ceux envoyés par FDN par mail (XXX@fdn.nerim). | ||
- | |||
- | Mémo des commandes ppp : | ||
- | * Activer la connexion : //pon dsl-provider// | ||
- | * Désactiver: | ||
- | * Regarder le journal PPP //plog// | ||
- | |||
- | À l' | ||
- | < | ||
- | root@miassou: | ||
- | PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. | ||
- | |||
- | --- 8.8.8.8 ping statistics --- | ||
- | 1 packets transmitted, | ||
- | rtt min/ | ||
- | </ | ||
- | |||
- | Reste à permettre aux abonnés d' | ||
- | |||
- | ==== Configuration réseau complète ==== | ||
- | |||
- | Fichier **/ | ||
- | < | ||
- | # This file describes the network interfaces available on your system | ||
- | # and how to activate them. For more information, | ||
- | |||
- | # The loopback network interface | ||
- | auto lo | ||
- | iface lo inet loopback | ||
- | |||
- | # The primary network interface | ||
- | # | ||
- | #iface eth1 inet dhcp | ||
- | |||
- | # Réseau privé des points d' | ||
- | auto eth0 | ||
- | iface eth0 inet static | ||
- | address 10.42.1.1 | ||
- | netmask 255.255.0.0 | ||
- | |||
- | ## eth0:abo Réseau abonnés | ||
- | auto eth0:abo | ||
- | iface eth0:abo inet static | ||
- | address 80.67.180.1 | ||
- | netmask 255.255.255.0 | ||
- | |||
- | ## eth1:modem admin modem | ||
- | # | ||
- | # Le modem (son interface web/telnet) | ||
- | # est accessible sur 192.168.1.1 | ||
- | auto eth1:modem | ||
- | iface eth1:modem inet static | ||
- | address 192.168.1.2 | ||
- | pointopoint 192.168.1.1 | ||
- | netmask 255.255.255.255 | ||
- | |||
- | |||
- | |||
- | ## ppp0 interface WAN (ADSL FDN) | ||
- | # | ||
- | # Concerne le modem. L' | ||
- | # - connecte le modem au réseau FDN | ||
- | # - crée une interface ppp0 | ||
- | # | ||
- | auto dsl-provider | ||
- | iface dsl-provider inet ppp | ||
- | pre-up / | ||
- | provider dsl-provider | ||
- | |||
- | # lancement du pare-feu & du vpn au démarage | ||
- | #openvpn work_vpn | ||
- | pre-up iptables-restore < / | ||
- | |||
- | |||
- | </ | ||
- | |||
- | ==== Routage ==== | ||
- | Le routage consiste du point de vue de la machine à recevoir un paquet IP qui ne lui est pas adressé et à le relayer vers son destinataire final. Pour savoir par où envoyer un paquet qu'il reçoit, le routeur consulte ses tables de routage. | ||
- | |||
- | Typiquement, | ||
- | < | ||
- | 62.4.16.ZZ/ | ||
- | 80.67.180.0/ | ||
- | 192.168.1.0/ | ||
- | 10.42.0.0/ | ||
- | default | ||
- | </ | ||
- | |||
- | Par défaut, le routage est désactivé sous Linux. Pour l' | ||
- | |||
- | nano / | ||
- | |||
- | Décommenter la ligne // | ||
- | |||
- | Cela prendra effet au prochain reboot. Pour l' | ||
- | < | ||
- | sysctl -p | ||
- | </ | ||
- | |||
- | Cela active le **routage de et vers tous les réseaux**. Le pare-feu permet de contrôler plus finement le routage. | ||
- | |||
- | La commande '' | ||
- | |||
- | < | ||
- | root@miassou: | ||
- | default dev ppp0 scope link | ||
- | 10.42.0.0/ | ||
- | 10.254.254.252 dev tun0 proto kernel | ||
- | 62.4.16.41 dev ppp0 proto kernel | ||
- | 80.67.180.0/ | ||
- | 192.168.1.1 dev eth1 proto kernel | ||
- | </ | ||
- | |||
- | ==== Pare-feu ==== | ||
- | Le pare-feu répond à deux questions : | ||
- | * Quels sont les paquets que l'on accepte de router (en fonction de leur source/ | ||
- | * Quels sont les connexion entrantes destinées au routeur lui-même que l'on accepte ? | ||
- | |||
- | On utilise le pare-feu **netfilter** qui est intégré au noyau linux et qui se configure à l'aide des outils **iptables**. | ||
- | |||
- | === Routage === | ||
- | |||
- | On ne veut pas que le réseau backbone (10.42.0.0/ | ||
- | |||
- | Ces directives correspondent à la chaine **FORWARD** du pare-feu netfilter/ | ||
- | |||
- | === Services sur le routeur === | ||
- | On ne veut pas non plus ouvrir le routeur à tous vents. Seuls certains services devront-être accessibles : | ||
- | * SSH depuis partout | ||
- | * ICMP (pings, rapports d' | ||
- | * DNS depuis l' | ||
- | * IGMP (annonces multicast) depuis l' | ||
- | |||
- | Ces directives correspondent à la chaine **INPUT** du pare-feu netfilter/ | ||
- | |||
- | === Configuration iptables === | ||
- | Pour simplifier la configuration d' | ||
- | |||
- | //Contenu du fichier / | ||
- | < | ||
- | default 0.0.0.0 | ||
- | loopback 127.0.0.0 | ||
- | link-local 169.254.0.0 | ||
- | |||
- | #blocs FDN | ||
- | abo.ilico.fr 80.67.180.0 abo.wifi.ilico.fr | ||
- | backbone.ilico.fr 10.42.0.0 | ||
- | |||
- | </ | ||
- | |||
- | La configuration IPTables est la suivante | ||
- | |||
- | / | ||
- | < | ||
- | # / | ||
- | # iptables-restore(8) remet implicitement à zéro toutes les règles | ||
- | |||
- | # Les instructions qui suivent concernent la table « filter », | ||
- | *filter | ||
- | |||
- | ######################### | ||
- | # Politiques par défaut # | ||
- | ######################### | ||
- | |||
- | # Le traffic entrant est bloqué par défaut | ||
- | -P INPUT DROP | ||
- | |||
- | # Le traffic destiné à être routé est refusé par défaut | ||
- | -P FORWARD DROP | ||
- | |||
- | # Le traffic sortant est accepté par défaut | ||
- | -P OUTPUT ACCEPT | ||
- | |||
- | |||
- | |||
- | |||
- | ###################### | ||
- | # Règles de filtrage # | ||
- | ###################### | ||
- | |||
- | # Pas de filtrage sur l' | ||
- | -A INPUT -i lo -j ACCEPT | ||
- | |||
- | # Accepter de forward les paquets relatifs à une connexion existante | ||
- | -A FORWARD -m state --state RELATED, | ||
- | |||
- | # Accepter de forward tout le traffic des abonnés (entrant/ | ||
- | -A FORWARD -i eth0 --source 80.67.180.0/ | ||
- | -A FORWARD --destination 80.67.180.0/ | ||
- | |||
- | # Accepter de forward tout ce qui vient du vpn (pour la maintenance) | ||
- | -A FORWARD -i tun0 -j ACCEPT | ||
- | |||
- | |||
- | |||
- | #SNMP | ||
- | -A INPUT -p udp --dport snmp -j ACCEPT | ||
- | |||
- | # VPN | ||
- | -A INPUT -p udp --dport openvpn -j ACCEPT | ||
- | |||
- | # ICMP (ping & diagnostic) | ||
- | -A INPUT -p icmp -j ACCEPT | ||
- | |||
- | # IGMP (pour le multicast) | ||
- | -A INPUT -p igmp -j ACCEPT | ||
- | |||
- | # Accepter les packets entrants relatifs à des connexions établies | ||
- | -A INPUT -m state --state RELATED, | ||
- | |||
- | # SSH autorisé partout | ||
- | -A INPUT -p tcp --dport ssh -j ACCEPT | ||
- | |||
- | # HTTP pour le serveur web apache (stats munin) | ||
- | # -A INPUT -p tcp --dport http -j ACCEPT | ||
- | |||
- | # Accepter DNS depuis les IPs abonnés | ||
- | -A INPUT -i eth0 -p tcp --dport domain --source 80.67.180.0/ | ||
- | -A INPUT -i eth0 -p udp --dport domain --source 80.67.180.0/ | ||
- | |||
- | # Accepter les requêtes/ | ||
- | -A INPUT -i eth0 -p udp --dport 67:68 --sport 67:68 -j ACCEPT | ||
- | |||
- | # Accepter les requêtes NTP | ||
- | -A INPUT -i eth0 -p udp --dport 123 --source 80.67.180.0/ | ||
- | |||
- | # Accepter les requêtes syslog | ||
- | -A INPUT -i eth0 -p udp --dport 514 --source 80.67.180.0/ | ||
- | |||
- | COMMIT | ||
- | |||
- | |||
- | #################### | ||
- | # Problème de MTU… # | ||
- | #################### | ||
- | |||
- | # Les instructions qui suivent concernent la table « mangle », c'est | ||
- | # à dire l' | ||
- | *mangle | ||
- | |||
- | # Règle les différences de MTU entre ppp0 et ethX | ||
- | -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS -o ppp0 --clamp-mss-to-pmtu | ||
- | |||
- | COMMIT | ||
- | </ | ||
- | |||
- | Il est préférable de tester les règles avant de les appliquer : | ||
- | < | ||
- | iptables-apply < | ||
- | </ | ||
- | Puis tester d' | ||
- | |||
- | Cela permet de tester un fichier de règles pendant 30s. Si le nouveau fichier de règles contient une erreur vous coupant le cordon SSH, l' | ||
- | |||
- | À chaque démarrage, la configuration iptables sera appliquée par la ligne que nous avions placée dans / | ||
- | |||
- | <note important> | ||
- | |||
- | ==== DHCP et DNS avec DNSMasq ==== | ||
- | DNSMasq joue un double rôle : | ||
- | * **Serveur DHCP** : il attribue les //adresses publiques// aux équipements des abonnés et envoie les informations de configuration (route par défaut… etc). | ||
- | * **Serveur DNS** : il reçoit les [[http:// | ||
- | |||
- | Installer DNSMasq | ||
- | < | ||
- | apt-get intsall dnsmasq | ||
- | </ | ||
- | |||
- | Créer un fichier de conf / | ||
- | (On considère que le routeur distribue les IPv4 publiques du bloc 80.67.180.0/ | ||
- | < | ||
- | # Fichier de configuration du serveur DHCP + DNS Wifi Ilico-Chanteix | ||
- | # | ||
- | ##-> DHCP : Attribue les adresses publiques des abonnes a leurs | ||
- | # | ||
- | # et publiques, en fonction de l' | ||
- | # | ||
- | # | ||
- | |||
- | # Ne pas attribuer d' | ||
- | # /!\ A desacitver (commenter) au momment du festival | ||
- | # si on veut distribuer de l'IP publique | ||
- | |||
- | # | ||
- | |||
- | # On écoute que sur l' | ||
- | listen-address=80.67.180.1 | ||
- | interface=eth0 | ||
- | |||
- | # La plage d'IP allouee par ce routeur | ||
- | dhcp-range=80.67.180.2, | ||
- | log-dhcp | ||
- | dhcp-leasefile=/ | ||
- | |||
- | |||
- | # Les correspondances @mac <-> @IP publique sont definies dans | ||
- | # le fichier /etc/ethers | ||
- | read-ethers | ||
- | |||
- | # | ||
- | ##-> DNS : Fait office de serveur DNS (relaie vers les DNS FDN) | ||
- | # Garde les reponses en cache pour accelerer les suivantes. | ||
- | |||
- | |||
- | # Ne transfere pas les requetes DNS incompletes | ||
- | # | ||
- | |||
- | # Ne transfere pas les requetes reverse-DNS sur des adresses privees. | ||
- | #bogus-priv | ||
- | |||
- | # les abonnes sont localement accessibles par | ||
- | # < | ||
- | domain-suffix=abo.wifi.ilico.fr | ||
- | |||
- | # Taille du cache DNS | ||
- | cache-size=256 | ||
- | port=53 | ||
- | </ | ||
- | |||
- | C'est le fichier ethers qui contient les associations @MAC <-> @IP. On peut le remplir initialement avec une ligne prête pour chaque IP publique que le routeur est censé distribuer. Par exemple, si le routeur distribue 80.67.180.0/ | ||
- | |||
- | < | ||
- | # Pour ajouter un abonne, renseigner le commentaire et l' | ||
- | # décommenter la ligne contenant l' | ||
- | # Utilisé par dnsmasq (/ | ||
- | |||
- | # Pour voir les baux DHCP en cours : cat / | ||
- | # dnsmaq est logué dans / | ||
- | |||
- | # | ||
- | |||
- | # MARQUE MODEL de l' | ||
- | # 00: | ||
- | |||
- | # XXXXX YYYYYY (serveur Debian) - Jhon Doe | ||
- | 00: | ||
- | |||
- | # TP LINK TL-WR741ND (routeur wifi) - Richard Matthew Stallman | ||
- | 00: | ||
- | |||
- | # TP LINK TL-WR741ND (routeur wifi) - Anakin Skywalker | ||
- | a0: | ||
- | |||
- | # [...] | ||
- | |||
- | # LINKSYS WRT54GL (routeur wifi) - Douglas Adams | ||
- | 10: | ||
- | |||
- | # ect. | ||
- | |||
- | </ | ||
- | |||
- | … Puis redémarrer | ||
- | < | ||
- | / | ||
- | </ | ||
- | |||
- | |||
- | Il suffira de renseigner et décommenter une ligne pour ajouter les abonnés lors de la configuration du matériel pour un nouvel abonné. | ||
- | |||
- | |||
- | ==== Routage inter-routeur ==== | ||
- | Il serait dommage de faire passer les paquets échangés entre les abonnés du reseau wifi par internet. On met donc en place un routage entre les antennes des abonnés. | ||
- | En théorie, il faudrait mettre en place des IP publiques pour le routage, mais malheureusement nous n'en avons pas assez. Nous utiliserons donc le réseau en 10.42 pour le routage. | ||
- | |||
- | < | ||
- | ip route add 80.67.180.0/ | ||
- | </ | ||
- | |||
- | === Ajout des routes au démarrage de l' | ||
- | |||
- | Ajout dans la conf de / | ||
- | < | ||
- | # Ajout des routes au démarrage de l' | ||
- | post-up ip route add 80.67.180.0/ | ||
- | # La route sera définie dès que l' | ||
- | |||
- | </ | ||
- | |||
- | ==== Connectiivité IPv6 ==== | ||
- | |||
- | < | ||
- | [[https:// | ||
- | |||
- | |||
- | === Ressources et modèle d' | ||
- | Sur chaque ligne ADSL est routé par FDN un bloc IPv6 en /48. On veut redistribuer à chaque abonné un /56. | ||
- | |||
- | En pratique, l' | ||
- | |||
- | <note tip>**A voir: **Nos amis de [[http:// | ||
- | |||
- | |||
- | Exemple avec 1 routeur sur lequel sont reliées 2 box abonnés. | ||
- | < | ||
- | |||
- | | ||
- | .-( )-. | ||
- | ( FDN -> internet ) | ||
- | ' | ||
- | '-.( ).-' | ||
- | | | ||
- | |route 2001: | ||
- | | | ||
- | | ||
- | | ||
- | / \ | ||
- | / | ||
- | BACKBONE WIFI 5GHz / | ||
- | (transparent L2) / | ||
- | / \ | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / \ | ||
- | | ||
- | BOX ABONNES | ||
- | | ||
- | / | ||
- | / \ | ||
- | / | ||
- | ____v v____ | ||
- | | ||
- | | ||
- | /::::/ | ||
- | | ||
- | | ||
- | | ||
- | |||
- | </ | ||
- | |||
- | |||
- | === Calcul des IPv6 === | ||
- | |||
- | |||
- | Une adresse IPv6 est découpée, pour Ilico, de la manière suivante : | ||
- | < | ||
- | Le préfixe ammené sur chaque routeur par Gitoyen/ | ||
- | |-------------------------------------------------------|-------------------------|---------------------------------------------| | ||
- | 48 bits 8 bits 72 bits | ||
- | |-------------------------------------------------------------------------------------------------------------------------------| | ||
- | Adresse IPv6 128 bits | ||
- | </ | ||
- | |||
- | |||
- | On calcule le numéro du bloc IPv6 de chaque abonné en fonction de son IPv4. | ||
- | |||
- | Le bloc IPv6 est calculé depuis l' | ||
- | <note warning> | ||
- | </ | ||
- | |||
- | == Exemple == | ||
- | |||
- | * Un routeur Rhizome gère les ressources suivantes | ||
- | *// 2001: | ||
- | * // | ||
- | * Un abonné Ilico reçoit l' | ||
- | |||
- | Le bloc délégué à l' | ||
- | |||
- | |||
- | === Configuration des routes et adresses === | ||
- | |||
- | L' | ||
- | |||
- | * Le bloc attribué à la box | ||
- | * La route par défaut vers internet | ||
- | * Les serveurs DNS | ||
- | |||
- | En IPv6, l' | ||
- | |||
- | | ^ Attribution d' | ||
- | ^ Autoconfiguration IPv6 | ✔ ((calculé depuis l' | ||
- | ^ DHCPv6 | ✔ ((aléatoire, | ||
- | |||
- | |||
- | |||
- | Si on veut faire de la délégation de préfixe, il nous faut soit utiliser une configuration statique soit **utiliser l' | ||
- | |||
- | |||
- | === Assignation d'une adresse à l' | ||
- | |||
- | On assigne une adresse simplement à l' | ||
- | |||
- | <note tip> | ||
- | |||
- | Par exemple, pour le bloc // | ||
- | |||
- | <file conf / | ||
- | # Reseau abonnes IPv6 | ||
- | iface eth0 inet6 static | ||
- | address 2001: | ||
- | netmask 48 | ||
- | # Configuration du pare-feu | ||
- | pre-up ip6tables-restore < / | ||
- | post-up IPv6_routes --enable # On crée les routes après que l' | ||
- | |||
- | </ | ||
- | |||
- | On redémarre l' | ||
- | <code bash> | ||
- | ifdown eth0 ; ifup eth0 | ||
- | </ | ||
- | |||
- | === Réception du préfixe via PPP === | ||
- | Il faut négocier le préfixe IPv6 avec [[http:// | ||
- | |||
- | Rajouter la ligne suivante en fin de fichier : | ||
- | <file conf / | ||
- | … | ||
- | # Support IPv6 (IPv6CP) | ||
- | ipv6 , | ||
- | … | ||
- | </ | ||
- | |||
- | Puis redémarrer la connexion PPP : | ||
- | < | ||
- | poff dsl-provider ; pon dsl-provider | ||
- | </ | ||
- | |||
- | === Activation du routage === | ||
- | |||
- | En IPv6, une machine a soit un rôle d'// | ||
- | Avant tout, le routeur doit-être configuré, comme en IPv4 pour router les paquets IPv6 : | ||
- | |||
- | <file conf / | ||
- | net.ipv6.conf.all.forwarding=1 | ||
- | </ | ||
- | |||
- | Puis pour recharger la conf sysctl | ||
- | |||
- | <code bash> | ||
- | sysctl -p | ||
- | </ | ||
- | |||
- | === Serveur DHCPv6 : dhcp6d === | ||
- | |||
- | Le serveur DHCPv6 s' | ||
- | * **D' | ||
- | * **D' | ||
- | |||
- | <note tip> | ||
- | |||
- | Par exemple, pour le bloc // | ||
- | |||
- | |||
- | == Installation | ||
- | On utilise le serveur WIDE-DHCPv6 du projet [[http:// | ||
- | |||
- | <code bash> | ||
- | |||
- | == Configuration == | ||
- | Le fichier de configuration est à créer : | ||
- | |||
- | <file bash / | ||
- | # DNS, on refile l'IP des DNS de FDN | ||
- | option domain-name-servers 2001: | ||
- | |||
- | # Les attributions de blocs/ | ||
- | # Ce fichier est généré automatiquement par un script " | ||
- | include "/ | ||
- | |||
- | </ | ||
- | |||
- | Le fichier inclus /// | ||
- | |||
- | <file / | ||
- | host 80.67.180.3 { | ||
- | duid 00: | ||
- | prefix 2001: | ||
- | address 2001: | ||
- | |||
- | }; | ||
- | </ | ||
- | |||
- | <note tip>Le [[http:// | ||
- | |||
- | Une convention (utilisée pour nous) est de la dériver de l' | ||
- | |||
- | On peut aussi bien entendu choisir des DUID arbitraires. | ||
- | </ | ||
- | |||
- | <code bash> | ||
- | # Mise à jour de la configuration de DHCPv6 : | ||
- | genDHCPv6conf | ||
- | service wide-dhcpv6-server restart | ||
- | </ | ||
- | |||
- | === Démon d' | ||
- | |||
- | Le démon //radvd// installé sur le routeur a pour but de **distribuer la route par défaut**. Et c'est tout ! | ||
- | === Installation === | ||
- | <code bash> | ||
- | apt-get install radvd | ||
- | </ | ||
- | |||
- | == Configuration == | ||
- | |||
- | Le fichier de configuration est simple : | ||
- | |||
- | <file conf / | ||
- | interface eth0 | ||
- | { | ||
- | # On envoie des RA (Router-Announce) en multicast | ||
- | | ||
- | # Les RA sont envoyées avec une période comprise entre 3 et 5 secondes. | ||
- | | ||
- | | ||
- | }; | ||
- | </ | ||
- | |||
- | Dans notre fonctionnement, | ||
- | |||
- | On redémarre le service : | ||
- | <code bash> | ||
- | service radvd restart | ||
- | </ | ||
- | |||
- | === Firewall === | ||
- | Les règles de firewall sont les mêmes que pourla configuration IPv4. | ||
- | |||
- | <file bash / | ||
- | # / | ||
- | # Script qui démarre les règles de filtrage IPv6 | ||
- | # Formation Debian GNU/Linux par Alexis de Lattre | ||
- | # http:// | ||
- | |||
- | # iptables-restore(8) remet implicitement à zéro toutes les règles | ||
- | # Les instructions qui suivent concernent la table « filter », | ||
- | # c' | ||
- | *filter | ||
- | |||
- | ######################### | ||
- | # Politiques par défaut # | ||
- | ######################### | ||
- | # Les politiques par défaut déterminent le devenir d'un paquet auquel | ||
- | # aucune règle spécifique ne s' | ||
- | |||
- | # Les connexions entrantes sont bloquées par défaut | ||
- | -P INPUT DROP | ||
- | # Les connexions destinées à être routées sont refusées par défaut | ||
- | -P FORWARD DROP | ||
- | # Les connexions sortantes sont acceptées par défaut | ||
- | -P OUTPUT ACCEPT | ||
- | |||
- | ###################### | ||
- | # Règles de filtrage # | ||
- | ###################### | ||
- | # Nous précisons ici des règles spécifiques pour les paquets vérifiant | ||
- | # certaines conditions. | ||
- | |||
- | # Pas de filtrage sur l' | ||
- | -A INPUT -i lo -j ACCEPT | ||
- | |||
- | ## Règles relatives au routage ## | ||
- | -A FORWARD -m state --state RELATED, | ||
- | -A FORWARD -i eth0 --source 2001: | ||
- | -A FORWARD --destination 2001: | ||
- | |||
- | ## Règles relatives aux services ## | ||
- | |||
- | # Accepter le protocole ICMPv6 (notamment le ping) | ||
- | -A INPUT -p icmpv6 -j ACCEPT | ||
- | |||
- | # Accepter les packets entrants relatifs à des connexions déjà | ||
- | # établies : cela va plus vite que de devoir réexaminer toutes | ||
- | # les règles pour chaque paquet. | ||
- | -A INPUT -m state --state RELATED, | ||
- | |||
- | # Accepter SSH de partout | ||
- | -A INPUT -p tcp --dport ssh -j ACCEPT | ||
- | -A INPUT -p tcp --dport http -j ACCEPT | ||
- | |||
- | # Interface aircontrol en HTTPS | ||
- | -A INPUT -p tcp --dport 9443 -j ACCEPT | ||
- | -A INPUT -p tcp --dport 9080 -j ACCEPT | ||
- | |||
- | # Webservices Ilico | ||
- | -A INPUT -p tcp --dport 8080 -j ACCEPT | ||
- | |||
- | # Accepter DNS depuis les IPs abonnés Ilico | ||
- | -A INPUT -i eth0 -p tcp --dport domain --source 2001: | ||
- | -A INPUT -i eth0 -p udp --dport domain --source 2001: | ||
- | |||
- | # Accepter les requêtes/ | ||
- | -A INPUT -i eth0 -p udp --dport dhcpv6-server --sport dhcpv6-client -j ACCEPT | ||
- | |||
- | COMMIT | ||
- | </ | ||
- | |||
- | Comme pour IPv4, on charge ces règles au démarrage de l' | ||
- | : | ||
- | |||
- | <file conf / | ||
- | … | ||
- | # Reseau abonnes IPv6 | ||
- | iface eth0:abo6 inet6 static | ||
- | address 2001: | ||
- | netmask 48 | ||
- | # Configuration du pare-feu pour l'IPv6 | ||
- | pre-up ip6tables-restore < / | ||
- | | ||
- | … | ||
- | </ | ||
- | |||
- | Et pour les activer immédiatement (sans redémarrer) : | ||
- | |||
- | < | ||
- | sudo iptables-apply / | ||
- | </ | ||
- | |||
- | === Routage des préfixes abonnés === | ||
- | |||
- | On a la route par défaut de la box vers le reste d' | ||
- | |||
- | Il faut donc générer un fichier de règles de routages à appliquer. | ||
- | |||
- | Le script est " | ||
- | |||
- | Le script active les routes. On peut verifier la prise en compte des routes par la comande : | ||
- | |||
- | < | ||
- | |||
- | < | ||
- | root@miassou: | ||
- | Table de routage IPv6 du noyau | ||
- | Destination | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | fe80::/ | ||
- | fe80::/ | ||
- | fe80::/ | ||
- | fe80::/ | ||
- | fe80::/ | ||
- | ::/0 :: | ||
- | ::/0 :: | ||
- | :: | ||
- | 2001: | ||
- | fe80::/ | ||
- | fe80::/ | ||
- | fe80::/ | ||
- | fe80:: | ||
- | fe80:: | ||
- | fe80:: | ||
- | ff00::/ | ||
- | ff00::/ | ||
- | ff00::/ | ||
- | ::/0 :: | ||
- | |||
- | </ | ||
- | |||
- | Ne pas oublier de le rendre exécutable | ||
- | |||
- | De même, il faut indiquer que la route par défaut est ppp0 : | ||
- | |||
- | <code bash> | ||
- | echo '# | ||
- | echo 'ip -6 route add default dev ppp0' >> / | ||
- | echo 'exit 0' >> / | ||
- | chmod +x / | ||
- | </ | ||
- | |||
- | Redémarrer la connexion pour que la route soit activée ou tapez "ip -6 route add default dev ppp0". | ||
- | |||
- | |||
- | === Nameserver === | ||
- | À ce niveau de la configuration, | ||
- | |||
- | On ajoute donc à / | ||
- | <file conf / | ||
- | ... | ||
- | # IPv6 | ||
- | nameserver 2001: | ||
- | </ | ||
- | |||
- | === Vérification === | ||
- | Pour faire des tests, on peut vérifier que la table de routage IPv6 est bonne : | ||
- | <code bash>ip -6 route</ | ||
- | < | ||
- | root@miassou: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | 2001: | ||
- | fe80::/64 dev eth1 proto kernel | ||
- | fe80::/64 dev eth0 proto kernel | ||
- | fe80::/64 dev ppp0 proto kernel | ||
- | fe80::/10 dev ppp0 metric 1 | ||
- | fe80::/10 dev ppp0 proto kernel | ||
- | default dev ppp0 metric 1024 | ||
- | </ | ||
- | |||
- | Ping d'une IP: | ||
- | <code bash> | ||
- | ping6 2001: | ||
- | </ | ||
- | |||
- | Ping & résolution DNS: | ||
- | <code bash> | ||
- | ping6 google.com | ||
- | </ | ||
- | |||
- | Se faire féliciter par Google : | ||
- | http:// | ||