Les protocoles de couche de transport TCP, SCTP et UDP font partie du package Oracle Solaris standard. Généralement, ces protocoles fonctionnent correctement sans que l'utilisateur ait à intervenir. Toutefois, dans certaines conditions, vous serez peut-être amené à consigner ou modifier des services exécutés via les protocoles de couche transport. Vous devez ensuite modifier les profils de ces services à l'aide de l'utilitaire SMF (Service Management Facility). Pour plus d'informations sur cet utilitaire, reportez-vous au Chapitre 18, Managing Services (Overview) du System Administration Guide: Basic Administration.
Le démon inetd est chargé de lancer les services Internet standard lors de l'initialisation d'un système. Ces services incluent les applications utilisant les protocoles de couche transport TCP, SCTP ou UDP. Vous pouvez modifier les services Internet existants ou ajouter de nouveaux services à l'aide des commandes SMF. Pour plus d'informations sur inetd, reportez-vous à la section Démon de services Internet inetd.
Opérations impliquant les protocoles de couche transport :
Journalisation de toutes les connexions TCP entrantes
Ajout de services faisant appel à un protocole de couche transport, utilisant SCTP comme exemple
Configuration des wrappers TCP dans le cadre du contrôle d'accès
Pour plus d'informations sur le démon inetd, reportez-vous à la page de manuel inetd(1M).
Sur le système local, connectez-vous en tant qu'administrateur réseau ou superutilisateur.
Les rôles contiennent des autorisations et des commandes privilégiées. Pour de plus amples informations sur les rôles, reportez-vous à la section Configuring RBAC (Task Map) du System Administration Guide: Security Services.
Activez le suivi TCP pour tous les services gérés par inetd.
# inetadm -M tcp_trace=TRUE |
Le protocole de transport SCTP fournit des services aux protocoles de couche d'application de façon similaire à TCP. Toutefois, SCTP permet la communication entre deux systèmes multiréseaux ou deux systèmes dont l'un est multiréseau. La connexion SCTP s'appelle une association. Dans une association, une application divise les données à transmettre en plusieurs flux de messages. Une connexion SCTP peut atteindre les extrémités à l'aide de plusieurs adresses IP, ce qui s'avère particulièrement important dans le cadre d'applications de téléphonie. Les capacités multiréseau de SCTP améliorent la sécurité des sites ayant recours à IP Filter ou IPsec. La page de manuel sctp(7P) répertorie les points à prendre en considération au niveau de la sécurité.
Par défaut, le protocole SCTP fait partie de Oracle Solaris et ne nécessite aucune configuration supplémentaire. Toutefois, vous devrez peut-être configurer explicitement certains services de couche d'application pour utiliser SCTP. echo et discard sont des exemples d'applications. La procédure suivante illustre l'ajout d'un service d'écho qui utilise un socket de type SCTP bi-univoque.
La procédure suivante permet également d'ajouter des services pour les protocoles de couche transport TCP et UDP.
La tâche suivante illustre l'ajout dans le référentiel SMF d'un service inet SCTP géré par le démon inetd. La tâche décrit ensuite la procédure d'ajout du service à l'aide des commandes SMF (Service Management Facility).
Pour plus d'informations sur les commandes SMF, reportez-vous à la section SMF Command-Line Administrative Utilities du System Administration Guide: Basic Administration .
Pour plus d'informations sur la syntaxe, consultez les pages de manuel sur les commandes SMF citées dans la procédure.
Pour plus d'informations sur SMF, reportez-vous à la page de manuel smf(5).
Avant d'effectuer la procédure suivante, créez un fichier manifeste pour le service. En exemple, la procédure fait référence à un fichier manifeste du service echo intitulé echo.sctp.xml .
Connectez-vous au système local avec un compte utilisateur disposant de privilèges d'écriture sur les fichiers système.
Modifiez le fichier /etc/services et ajoutez la définition du nouveau service.
Définissez le service à l'aide de la syntaxe suivante.
service-name |port/protocol | aliases |
Ajoutez le nouveau service.
Accédez au répertoire de stockage du manifeste de service et tapez ce qui suit :
# cd dir-name # svccfg import service-manifest-name |
La page de manuel svccfg(1M) contient la syntaxe complète de svccfg.
Admettons que vous voulez ajouter un service echo SCTP à l'aide du manifeste echo.sctp.xml résidant dans le répertoire service.dir. Vous devez taper ce qui suit :
# cd service.dir # svccfg import echo.sctp.xml |
Assurez-vous que le manifeste de service a été ajouté :
# svcs FMRI |
Pour l'argument FMRI, utilisez le FMRI (Fault Managed Resource Identifier, identificateur de ressources gérées erronées) du manifeste de service. Par exemple, pour le service SCTP echo, vous devez utiliser la commande suivante :
# svcs svc:/network/echo:sctp_stream |
La sortie doit ressembler à ceci :
STATE STIME FMRI disabled 16:17:00 svc:/network/echo:sctp_stream |
Pour plus d'informations sur la commande svcs, reportez-vous à la page de manuel svcs(1).
D'après la sortie, le nouveau manifeste de service est désactivé.
Dressez la liste des propriétés du service afin d'identifier les modifications à apporter.
# inetadm -l FMRI |
Pour plus d'informations sur la commande inetadm, reportez-vous à la page de manuel inetadm(1M).
Par exemple, pour le service SCTP echo, vous devez saisir les informations suivantes :
# inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" . . default tcp_trace=FALSE default tcp_wrappers=FALSE |
Activez le nouveau service :
# inetadm -e FMRI |
Assurez-vous que le service est activé.
Par exemple, pour le nouveau service echo, vous devez taper :
# inetadm | grep sctp_stream . . enabled online svc:/network/echo:sctp_stream |
L'exemple suivant indique les commandes à utiliser et les entrées de fichier requises pour que le service d'écho utilise le protocole de couche transport SCTP.
$ cat /etc/services . . echo 7/tcp echo 7/udp echo 7/sctp # cd service.dir # svccfg import echo.sctp.xml # svcs network/echo* STATE STIME FMRI disabled 15:46:44 svc:/network/echo:dgram disabled 15:46:44 svc:/network/echo:stream disabled 16:17:00 svc:/network/echo:sctp_stream # inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" user="root" default bind_addr="" default bind_fail_max=-1 default bind_fail_interval=-1 default max_con_rate=-1 default max_copies=-1 default con_rate_offline=-1 default failrate_cnt=40 default failrate_interval=60 default inherit_env=TRUE default tcp_trace=FALSE default tcp_wrappers=FALSE # inetadm -e svc:/network/echo:sctp_stream # inetadm | grep echo disabled disabled svc:/network/echo:stream disabled disabled svc:/network/echo:dgram enabled online svc:/network/echo:sctp_stream |
Le programme tcpd met en œuvre les wrappers TCP. Les wrappers TCP représentent une mesure de sécurité supplémentaire pour les démons de services, notamment pour ftpd . En effet, ils s'interposent entre le démon et les requêtes de service entrantes. Les wrappers TCP consignent les réussites et les échecs des tentatives de connexion. En outre, ils offrent un contrôle d'accès en autorisant ou en refusant la connexion en fonction de l'origine de la requête. Enfin, ils permettent de protéger les démons, notamment SSH, Telnet et FTP. L'application sendmail peut également avoir recours aux wrappers TCP (voir la section Support for TCP Wrappers From Version 8.12 of sendmail du System Administration Guide: Network Services .)
Sur le système local, connectez-vous en tant qu'administrateur principal ou superutilisateur.
Le rôle d'administrateur principal inclut le profil d'administrateur principal. Pour plus d'informations sur la création d'un rôle et son assignation à un utilisateur, reportez-vous au Chapitre 2, Working With the Solaris Management Console (Tasks) du System Administration Guide: Basic Administration.
Activez les wrappers TCP.
# inetadm -M tcp_wrappers=TRUE |
Configurez la stratégie de contrôle d'accès des wrappers TCP, telle que décrite à la page de manuel hosts_access(3).
Cette page de manuel se trouve sous le répertoire /usr/sfw/man du CD-ROM SFW livré avec le CD-ROM Oracle Solaris.