Centos - Fedora et IPv6

ipv6.jpg

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: manager-ipv6.png

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 ! IP6.png

Si jamais j'ai oublié une chose ou si j'ai fais une erreur, n'hésitez pas à me laisser un commentaire :-)
A+

Vus : 1591
Publié par TitaX : 24