Centos - Fedora et IPv6
On a plus d'adresses IPv4, ce n'est plus un secret, le protocole IPv6 est validé depuis la fin de l'année 1998, bon ba faut y aller maintenant !
Plusieurs hébergeurs fournissent dès maintenant un double adressage IP (Dual Stack IPv4/IPv6), la mise en place est suffisament simple et sans risque pour être réalisée sur un serveur déjà en place afin de desservir les services HTTP, DNS, SMTP etc etc
On va voir comment faire pour mettre en place IPv6 sur un serveur Gnu/Linux Centos hébergé par OVH (Kimsufi), cela sera en gros du même ordre pour le faire à la maison (chez Free par exemple) sur Fedora.
Configuration du système Gnu/Linux
Tout d'abord on va vérifier que notre Kernel est compatible avec IPv6
test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
Chez OVH, on peut très simplement changer de Kernel avec le Netboot disponible sur votre Manager, pour moi c'est OK :
#uname -r
3.2.13-grsec-xxxx-grs-ipv6-64
Configuration du réseau
On va activer la prise en charge de l'adresse IPv6 en éditant le fichier suivant:
/etc/sysconfig/network
en ajoutant :
NETWORKING_IPV6=yes
IPV6_AUTOCONF=no
On pourra ensuite récupérer l'adresse IPv6 que notre fournisseur nous a attribué, pour mon cas tout se fait via le Manager:
Pour configurer notre interface réseau en éditant le fichier suivant :
/etc/sysconfig/network-scripts/ifcfg-eth0
En ajoutant:
IPV6INIT=yes IPV6ADDR="2001:41d0:1:ba44::1337/64" IPV6_DEFAULTGW="2001:41d0:1:baff:ff:ff:ff:ff%eth0" IPV6_DEFAULTDEV="eth0"
Et vérifie que tout fonctionne :
service network restart # ping6 -c 1 www.google.com PING www.google.com(we-in-x93.1e100.net) 56 data bytes 64 bytes from we-in-x93.1e100.net: icmp_seq=0 ttl=55 time=9.55 ms --- www.google.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 9.553/9.553/9.553/0.000 ms, pipe 2
# route -n -A inet6 |grep "::/0" ::/0 2001:41d0:1:baff:ff:ff:ff:ff UG 1 0 0 eth0
Configuration du firewall
Nous voilà maintenant disponible en IPv6, on va sécuriser un peu tout ça et ne rendre disponible que les services que nous allons utiliser, c'est à dire http, smtp, dns en configurant notre firewall.
On va éditer le fichier :
/etc/sysconfig/ip6tables
En ajoutant:
*filter :INPUT ACCEPT 0:0 :FORWARD ACCEPT 0:0 :OUTPUT ACCEPT 0:0 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p ipv6-icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited -A FORWARD -j REJECT --reject-with icmp6-adm-prohibited COMMIT
On redémarre le firewall
service ip6tables restart
On s'assure qu'il démarre au boot de la machine
chkconfig ip6tables on
Configuration de Postfix
Il faut que Postfix puisse écouter sur l'interface IPv6, il nous faut éditer le fichier /etc/postfix/main.cf en ajoutant :
inet_protocols = all
Puis on redémarre le service
service postfix restart
Et on vérifie que cela fonctionne
# netstat -lnptu |grep "master\\W*$" tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 5818/master tcp 0 0 :::25 :::* LISTEN 5818/master
Configuration de Apache
il faut éditer la configuration de notre httpd pour qu'il puisse écouter sur l'adresse IPv4 et l'IPv6.
Nous allons éditer le fichier /etc/httpd/conf/httpd.conf et nous assurer que la ligne soit bien inscrite :
Listen 80
Puis on redémarre le service
service httpd restart
On peut maintenant tester avec notre navigateur en tentant de joindre dans la barre d'adresse :
http://[2001:41d0:1:ba44::1]
Configuration de Bind
Notre serveur DNS doit aussi pouvoir répondre en IPv6, il faut éditer le fichier /etc/named.conf et ajouter dans les options:
listen-on-v6 { any; };
Puis redémarrer le service
service named restart
Et on vérifie que cela fonctionne
# netstat -lnptu |grep "named\\W*$" tcp 0 0 91.121.139.68:53 0.0.0.0:* LISTEN 7692/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 7692/named tcp 0 0 :::53 :::* LISTEN 7692/named udp 0 0 91.121.139.68:53 0.0.0.0:* 7692/named udp 0 0 127.0.0.1:53 0.0.0.0:* 7692/named udp 0 0 :::53 :::* 7692/named
Configuration de notre nom de domaine
Il ne reste donc plus qu'a configurer notre nom de domaine en ajoutant dans notre fichier de zone :
blog IN AAAA 2001:41d0:1:ba44::1
On vérifie que cela fonctionne
$ host -aaaa blog.titax.fr |egrep ^blog blog.titax.fr. 86400 IN A 91.121.139.68 blog.titax.fr. 86400 IN AAAA 2001:41d0:1:ba44::1
Bienvenue dans l'Internet du Futur !
Si jamais j'ai oublié une chose ou si j'ai fais une erreur, n'hésitez pas à me laisser un commentaire
A+