Difference between revisions of "Solaris"

From Livre IPv6

 
(Configuration de règles de sécurité)
Line 74: Line 74:
 
On peut contrôler les connexions en utilisant la librairie «tcpwrappers». De nombreuses commandes réseau (<tt>sendmail</tt>, <tt>sshd</tt>, les commandes lancées par <tt>inetd</tt>, ...) utilisent cette librairie pour vérifier si un accès distant est autorisé par un fichier de configuration (voir «<tt>man -s 4 hosts_access</tt>»). Voici un exemple de fichier <tt>/etc/hosts.allow</tt> qui limite les connections entrantes ssh à deux réseaux :
 
On peut contrôler les connexions en utilisant la librairie «tcpwrappers». De nombreuses commandes réseau (<tt>sendmail</tt>, <tt>sshd</tt>, les commandes lancées par <tt>inetd</tt>, ...) utilisent cette librairie pour vérifier si un accès distant est autorisé par un fichier de configuration (voir «<tt>man -s 4 hosts_access</tt>»). Voici un exemple de fichier <tt>/etc/hosts.allow</tt> qui limite les connections entrantes ssh à deux réseaux :
  
sshd: [2001:660:5301:2::/64] : allow
+
sshd: [2001:660:5301:2::/64] : allow
sshd: 192.0.2.32/255.255.255.224 : allow
+
sshd: 192.0.2.32/255.255.255.224 : allow
sshd : ALL : deny
+
sshd : ALL : deny
  
 
Le portage à IPv6 du filtrage des paquets (<tt>«firewall» ipf</tt>) n'est pas disponible en Solaris 9 ni dans la version initiale de Solaris 10. Il devrait être fourni lors d'une mise à jour de Solaris 10.
 
Le portage à IPv6 du filtrage des paquets (<tt>«firewall» ipf</tt>) n'est pas disponible en Solaris 9 ni dans la version initiale de Solaris 10. Il devrait être fourni lors d'une mise à jour de Solaris 10.

Revision as of 08:14, 23 November 2005

IPv6 fait partie intégrante du système depuis Solaris 8. La bibliothèque libc et la plupart des applications supportent IPv6, y compris les RPC et NFS.

Lors de la configuration initiale d'une machine, les menus d'installation système proposent de configurer IPv6, il suffit de suivre les questions. Pour les personnes n'ayant pas activé IPv6 à l'installation ou qui souhaitent modifier la configuration, ce chapitre décrit comment configurer «à la main».

Le premier point est de s'assurer que le service de noms connaît IPv6. Pour cela il faut valider la ligne «ipnodes:» dans le fichier /etc/nsswitch.conf. La syntaxe est la même que pour la ligne «hosts:» en IPv4. Ainsi pour rechercher l'adresse IPv6 associée à un nom d'abord dans le fichier de correspondance local (/etc/inet/ipnodes), puis par le DNS, la ligne est :

ipnodes: files dns

Ensuite il faut activer la configuration IPv6 des interfaces. Dans le cas de l'autoconfiguration sans état, il suffit de créer un fichier de configuration vide de nom /etc/hostname6.IFX pour chaque interface de nom IFX (sauf pour l'interface lo0). Ainsi si la machine a une interface Ethernet elxl0, il faut exécuter :

> touch /etc/hostname6.elxl0

La configuration est suffisante, IPv6 sera disponible au prochain reboot.

Pour vérifier que IPv6 fonctionne correctement, on dispose des commandes ping et traceroute pour tester l'accessibilité d'une machine, et netstat et rpcinfo pour visualiser les tables de routage, et de connexions actives.

Par exemple pour tester la connectivité IPv6 :

> /usr/sbin/ping -s www6.ipv6.imag.fr
PING www6.ipv6.imag.fr: 56 data bytes 
64 bytes from 2001:660:181:1::50: icmp_seq=0. time=46. ms
64 bytes from 2001:660:181:1::50: icmp_seq=1. time=45. ms
^C
----www6.ipv6.imag.fr PING Statistics----
2 packets transmitted, 2 packets received, 0% packet loss
round-trip (ms) min/avg/max = 45/45/46

La commande suivante montre quelques services activés en IPv6: rlogin, telnet, ftp, impression, mail (smtp), partage de fichiers (lockd).

> netstat -af inet6
UDP: IPv6
Local Address              Remote Address          State    If
-------------------------- ----------------------- -------- ---
*.*                                                Unbound
*.sunrpc                                           Idle
*.time                                             Idle
*.echo                                             Idle
*.daytime                                          Idle
.....
TCP: IPv6
Local Address     Remote Address   Swind Send-Q Rwind Recv-Q State If
----------------- ---------------- ----- ------ ----- ------ ----  --
*.*               *.*              0     0      24576 0      IDLE
*.sunrpc          *.*              0     0      65536 0      LISTEN
*.*               *.*              0     0      65536 0      IDLE
*.ftp             *.*              0     0      65536 0      LISTEN
*.echo            *.*              0     0      65536 0      LISTEN
*.printer         *.*              0     0      65536 0      LISTEN
*.smtp            *.*              0     0      65536 0      LISTEN
....

Configuration manuelle

Pour définir des adresses IPv6 de manière statique sur une interface IFX (ajout d'adresses ou configuration d'un routeur), il suffit de mettre les informations nécessaires dans le fichier de configuration /etc/hostname6.IFX. La syntaxe est celle des arguments de la commande ifconfig. L'adresse lien-local est toujours générée automatiquement et ne doit pas être positionnée de cette manière. Ainsi le fichier /etc/hostname6.elxl0 suivant configure deux adresses IPv6 sur l'interface elxl0 :

addif 3ffe:3ff:92:55::1000/64 up
addif 2001:6ff:43:55:A00:20ff:fe8e:F324/64 up

En Solaris, sur une machine qui n'est pas routeur, la génération d'adresses autoconfigurées «sans état» est active par défaut. Pour les systèmes antérieurs à Solaris 10, il n'est pas possible de la désactiver simplement (il faut modifier des scripts système). En Solaris 10 c'est possible en ajoutant une directive dans le fichier /etc/inet/ndpd.conf. La ligne suivante désactive la génération automatique d'adresse sur toutes les interfaces :

ifdefault StatelessAddrConf off

Configuration d'un tunnel

Pour créer un tunnel configuré sur une machine Solaris, il faut créer un fichier de configuration /etc/hostname6.ip.tun0 (0 pour le premier tunnel) indiquant les adresses source et destination IPv4 et IPv6. Le tunnel correspond à une interface de nom ip.tun0. Pour plus de détails voir le manuel (man ifconfig). L'exemple suivant crée un tunnel IPv6 dans IPv4, l'adresse de IPv4 de l'extrémité locale est 128.1.2.3, celle de l'extrémité distante est 192.1.2.5, le tunnel est entre les adresses IPv6 locale 2001:6ff::45 et distante 2001:6ff::46 :

tsrc 128.1.2.8 tdst 192.1.2.5 up
addif 2001:6ff::45 2001:6ff::46 up

Solaris permet aussi d'utiliser le mécanisme 6to4. Il est configuré en modifiant des variables dans le fichier /etc/default/inetinit.

Configuration de règles de sécurité

On peut contrôler les connexions en utilisant la librairie «tcpwrappers». De nombreuses commandes réseau (sendmail, sshd, les commandes lancées par inetd, ...) utilisent cette librairie pour vérifier si un accès distant est autorisé par un fichier de configuration (voir «man -s 4 hosts_access»). Voici un exemple de fichier /etc/hosts.allow qui limite les connections entrantes ssh à deux réseaux :

sshd: [2001:660:5301:2::/64] : allow
sshd: 192.0.2.32/255.255.255.224 : allow
sshd : ALL : deny

Le portage à IPv6 du filtrage des paquets («firewall» ipf) n'est pas disponible en Solaris 9 ni dans la version initiale de Solaris 10. Il devrait être fourni lors d'une mise à jour de Solaris 10.

Personal tools