Gestion des services réseau sous Solaris 10
Posted by Daniel on 29 Juil 2008 at 09:00 | Tagged as: solaris
Sous Solaris 10, les services réseau gérés par inetd ne sont plus déclarés dans le fichier /etc/inetd.conf, mais s'appuient sur le framework SMF (Service Management Facility). Voyons rapidement comment observer et manipuler ces services, et comment en déclarer un nouveau.
Gestion des services existants
Observation des services
L'observation se fait avec la commande inetadm, utilisée sans arguments :# inetadm ENABLED STATE FMRI enabled online svc:/application/x11/xfs:default enabled online svc:/application/font/stfsloader:default enabled offline svc:/application/print/rfc1179:default enabled online svc:/network/rpc/gss:default enabled online svc:/network/rpc/cde-calendar-manager:default enabled online svc:/network/rpc/cde-ttdbserver:tcp […] disabled disabled svc:/network/talk:default enabled online svc:/network/stdiscover:default enabled online svc:/network/stlisten:default enabled online svc:/network/rpc-100235_1/rpc_ticotsord:default
Activation ou désactivation d'un service
Nous allons activer et désactiver le service chargen, en mode dgram (ce mode n'a en soi aucune importance, il s'agit juste d'une des deux options disponibles, l'autre étant le mode stream. Vérifions d'abord que notre service est bien arrêté :# inetadm | grep "chargen" disabled disabled svc:/network/chargen:dgram disabled disabled svc:/network/chargen:streamActivons-le avec la commande inetadm -e :
# inetadm -e svc:/network/chargen:dgram # inetadm | grep "chargen" enabled online svc:/network/chargen:dgram disabled disabled svc:/network/chargen:streamDésactivons-le maintenant avec inetadm -d :
# inetadm -d svc:/network/chargen:dgram # inetadm | grep "chargen" disabled disabled svc:/network/chargen:dgram disabled disabled svc:/network/chargen:streamEt voilà, difficile de faire plus simple!
Création de nouveau services
Le manifest
Les services SMF sont décrits par des structures appelées manifests. Ces manifests sont stockés dans un repository, /etc/svc/repository.db (qui est en fait une base Berkeley DB). En outre, pour les services livrés avec Solaris 10, une version XML de chaque manifest est mise à disposition dans /var/svc/manifest. Voici le contenu du manifest pour chargen :# more chargen.xmlcharacter generator
Etapes de la création d'un service
Pour créer un nouveau service réseau, il faut :- créer un nouveau manifest
- importer ce manifest dans le repository
Pour créer son propre manifest, le plus simple est de copier un fichier XML existant et de l'éditer manuellement. Comme c'est un peu laborieux, je ne rentrerai pas dans les détails ici, nous allons voir une méthode beaucoup plus simple dans un instant.
Import dans le repositoryPour importer le manifest nouvellement créé, on utilise la commande suivante :
# svccfg import /chemin/vers/mon/fichier/manifest.xml
La version simplifiée : inetconv
Pour faciliter la migration depuis l'ancien système, Sun propose inetconv, un outil qui crée automagiquement un manifest à partir d'une entrée auf format inetd.conf. Créons donc un fichier tftp.inet, contenant la ligne suivante :tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpbootNous n'avons pour l'instant aucun service tftp :
# inetadm | grep -i tftp #Appelons maintenant inetconv :
# inetconv -i ./tftp.inet tftp -> /var/svc/manifest/network/tftp-udp.xml Importing tftp-udp.xml ...DoneEt hop, nous voilà dotés d'un service tftp actif :
# inetadm | grep -i tftp enabled online svc:/network/tftp/udp:defaultEt, cerise sur le gâteau, l'outil nous a même laissé le manifest xml. On peut donc copier ce manifest sur d'autres machines, et l'importer directement, sans passer par la phase inetconv.