L'allocation de périphériques peut protéger votre site contre la perte de données, les virus informatiques et d'autres failles de sécurité. Contrairement à la stratégie de périphériques, l'allocation de périphériques est facultative. L'allocation de périphériques utilise des autorisations pour limiter l'accès aux périphériques allouables.
Les composants du mécanisme d'allocation de périphériques sont les suivants :
Le service svc:/system/device/allocate. Pour plus d'informations, reportez-vous à la page de manuel smf(5) et aux pages de manuel concernant les commandes d'allocation de périphériques.
Les commandes allocate, deallocate, dminfo et list_devices. Pour plus d'informations, reportez-vous à la section Commandes d'allocation de périphériques.
Les profils de droits Device Management (gestion des périphériques) et Device Security (sécurité des périphériques). Pour plus d'informations, reportez-vous à la section Profils de droits Device Allocation (allocation de périphériques).
Les scripts de nettoyage de périphériques pour chaque périphérique allouable.
Ces commandes et scripts utilisent les fichiers locaux suivants pour mettre en oeuvre l'allocation de périphériques :
Le fichier /etc/security/device_allocate. Pour plus d'informations, reportez-vous à la page de manuel device_allocate(4).
Le fichier /etc/security/device_maps. Pour plus d'informations, reportez-vous à la page de manuel device_maps(4).
Un fichier de verrouillage, dans le répertoire /etc/security/dev, pour chaque périphérique allouable.
Les attributs modifiés du fichier de verrouillage qui sont associés à chaque périphérique allouable.
Le service svc:/system/device/allocate contrôle l'allocation de périphériques. Ce service est désactivé par défaut.
Les profils de droits Device Management (gestion des périphériques) et Device Security (sécurité des périphériques) sont requis pour gérer et allouer des périphériques, respectivement.
Ces profils de droits comprennent les autorisations suivantes :
solaris.device.allocate : nécessaire pour allouer un périphérique
solaris.device.cdrw : nécessaire pour lire et écrire un CD-ROM
solaris.device.config : nécessaire pour configurer les attributs d'un périphérique
solaris.device.mount.alloptions.fixed : nécessaire pour spécifier des options de montage lors du montage d'un périphérique fixe
solaris.device.mount.alloptions.removable : nécessaire pour spécifier des options de montage lors du montage d'un périphérique amovible
solaris.device.mount.fixed : nécessaire pour monter un périphérique fixe
solaris.device.mount.removable : nécessaire pour monter un périphérique amovible
solaris.device.revoke : nécessaire pour révoquer ou récupérer un périphérique
Avec les options en majuscules, les commandes allocate, deallocate et list_devices sont des commandes d'administration. Dans le cas contraire, ces commandes sont des commandes d'utilisateur. Le tableau suivant répertorie les commandes d'allocation de périphériques.
Par défaut, les utilisateurs doivent avoir l'autorisation solaris.device.allocate pour réserver un périphérique allouable. Pour créer un profil de droits afin d'inclure l'autorisation solaris.device.allocate, reportez-vous à la section Autorisation des utilisateurs à allouer un périphérique.
Les administrateurs doivent disposer de l'autorisation solaris.device.revoke pour modifier l'état d'allocation d'un périphérique. Par exemple, l'option –U des commandes allocate et list_devices et l'option –F de la commande deallocate nécessitent l'autorisation solaris.device.revoke.
Pour plus d'informations, reportez-vous à la section Commandes sélectionnées nécessitant des autorisations du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
Un périphérique est placé dans un état d'erreur d'allocation en cas d'échec des commandes deallocate ou allocate . Lorsqu'un périphérique allouable est dans un état d'erreur d'allocation, le périphérique doit être libéré de force. Seul un utilisateur ou un rôle bénéficiant du profil de droits Device Management (gestion des périphériques) ou Device Security (sécurité des périphériques) peut gérer un état d'erreur d'allocation.
La commande deallocate avec l'option –F force la libération. Vous pouvez également utiliser allocate -U pour affecter le périphérique à un utilisateur. Une fois le périphérique alloué, vous pouvez analyser les messages d'erreur qui s'affichent. Après la correction des problèmes liés au périphérique, vous pouvez forcer la libération.
Les listes de périphériques sont créées lors de la configuration de l'allocation de périphériques. Le fichier /etc/security/device_maps inclut les noms de périphérique, types de périphérique, fichiers spécifiques au périphérique qui sont associés à chaque périphérique allouable.
Le fichier device_maps définit les mappages de fichiers spécifiques à un périphérique pour chaque périphérique, ce qui n'est pas intuitif dans de nombreux cas. Ce fichier permet aux programmes de découvrir les fichiers spécifiques à un périphérique à mapper aux périphériques. Vous pouvez utiliser la commande dminfo, par exemple, pour récupérer le nom et le type de périphérique, et les fichiers spécifiques au périphérique à spécifier lorsque vous paramétrez un périphérique allouable. La commande dminfo utilise le fichier device_maps pour rapporter ces informations.
Chaque périphérique est représenté par une entrée sur une seule ligne, au format suivant :
device-name:device-type:device-listExemple 4-11 Exemple d'entrée device_maps
L'exemple suivant montre une entrée dans un fichier device_maps.
audio0:\ audio:\ /dev/audio /dev/audioctl /dev/dsp /dev/dsp0 /dev/mixer0 /dev/sound/0 /dev/sound/0ctl /dev/sound/audio810\:0mixer /dev/sound/audio810\:0dsp /dev/sound/audio810\:0 /dev/sound/audio810\:0ctl
Dans le fichier device_maps, les lignes peuvent être terminées par une barre oblique inverse (\) pour poursuivre l'entrée sur la ligne suivante. Des commentaires peuvent également être inclus. Un signe dièse (#) introduit des commentaires sur le texte suivant jusqu'à la prochaine nouvelle ligne qui n'est pas immédiatement précédée d'un backslash. Les espaces en début et fin sont autorisés dans n'importe quel champ. Les champs sont définis de la manière suivante :
Spécifie le nom du périphérique. Pour obtenir une liste des noms de périphériques courants, reportez-vous à la section Affichage d'informations d'allocation sur un périphérique.
Spécifie le type de périphérique générique. Le nom générique est le nom de la classe de périphériques, comme st, fd, rmdisk ou audio. Le champ device-type regroupe logiquement les périphériques liés.
Répertorie les fichiers spécifiques à un périphérique qui sont associés au périphérique physique. device-list doit contenir tous les fichiers spécifiques qui permettent d'accéder à un périphérique en particulier. Si la liste est incomplète, un utilisateur malveillant peut toujours obtenir ou modifier des informations privées. Les entrées valides pour le champ device-list reflètent les fichiers de périphériques qui sont situés dans le répertoire /dev.
Vous pouvez modifier le fichier /etc/security/device_allocate pour rendre des périphériques allouables non allouables ou pour ajouter de nouveaux périphériques.
Une entrée dans le fichier device_allocate ne signifie pas que le périphérique peut être alloué, sauf si cette entrée le définit comme tel.
Dans le fichier device_allocate, chaque périphérique est representé par une entrée sur une seule ligne dans le format suivant :
device-name;device-type;reserved;reserved;auths;device-exec
Voici un exemple de fichier device_allocate.
st0;st;;;;/etc/security/lib/st_clean fd0;fd;;;;/etc/security/lib/fd_clean sr0;sr;;;;/etc/security/lib/sr_clean audio;audio;;;*;/etc/security/lib/audio_clean
Notez l'astérisque (*) dans le cinquième champ de l'entrée de périphérique audio.
Dans le fichier device_allocate, les lignes peuvent être terminées par une barre oblique inverse (\) pour poursuivre l'entrée sur la ligne suivante. Des commentaires peuvent également être inclus. Un signe dièse (#) introduit des commentaires sur le texte suivant jusqu'à la prochaine nouvelle ligne qui n'est pas immédiatement précédée d'un backslash. Les espaces en début et fin sont autorisés dans n'importe quel champ. Les champs sont définis de la manière suivante :
Spécifie le nom du périphérique. Pour obtenir une liste des noms de périphériques courants, reportez-vous à la section Affichage d'informations d'allocation sur un périphérique.
Spécifie le type de périphérique générique. Le nom générique est le nom de la classe de périphériques, tel que st, fd et sr. Le champ device-type regroupe logiquement les périphériques liés. Lorsque vous rendez un périphérique allouable, récupérez le nom du périphérique du champ device-type dans le fichier device_maps.
Oracle réserve les deux champs qui sont marqués reserved pour une utilisation ultérieure.
Indique si le périphérique peut être alloué. Un astérisque (*) dans ce champ indique que le périphérique n'est pas allouable. Une chaîne d'autorisation ou un champ vide indique que le périphérique est allouable. Par exemple, la chaîne solaris.device.allocate dans le champ auths indique que l'autorisation solaris.device.allocate est requise pour allouer le périphérique. Un signe arobase (@) dans ce fichier indique que le périphérique est allouable par n'importe quel utilisateur.
Fournit le nom de chemin d'un script à invoquer pour une manipulation spéciale, telle que le nettoyage et la protection contre la réutilisation des objets durant le processus d'allocation. Le script device-exec est exécuté chaque fois qu'une commande deallocate est effectuée sur le périphérique.
Par exemple, l'entrée suivante pour le périphérique sr0 indique que l'unité de CD-ROM est allouable par un utilisateur ayant l'autorisation solaris.device.allocate :
sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean
Vous pouvez accepter les périphériques par défaut et leurs caractéristiques définies. Après l'installation d'un nouveau périphérique, vous pouvez modifier les entrées. Tout périphérique devant être alloué avant l'utilisation doit être défini dans les fichiers device_allocate et device_maps pour le système de ce périphérique. Actuellement, les lecteurs de bande de cartouche, unités de disquette, unités de CD-ROM, périphériques de médias amovibles et puces audio sont considérés comme allouables. Ces types de périphériques disposent de scripts de nettoyage de périphériques.
L'allocation de périphériques satisfait en partie ce que les auditeurs de sécurité appellent les besoins en matière de réutilisation des objets. Le script device-clean remplit l'exigence de sécurité selon laquelle toutes les données utilisables doivent être purgées d'un périphérique physique avant sa réutilisation. Les données sont effacées avant que le périphérique ne devienne allouable par un autre utilisateur. Par défaut, les lecteurs de bande de cartouche, les unités de disquette, les unités de CD-ROM et les périphériques audio nécessitent des scripts de nettoyage de périphériques, qui sont fournis par Oracle Solaris. Cette section décrit les actions effectuées par les scripts de nettoyage de périphériques.
Le script de nettoyage de périphériques st_clean prend en charge trois périphériques à bande :
Bande SCSI ¼ pouces
Bande Archive ¼ pouces
Bande Open-reel ½ pouces
Le script st_clean utilise l'option –rewoffl avec la commande mt pour nettoyer le périphérique. Pour plus d'informations, reportez-vous à la page de manuel mt(1). Si le script s'exécute pendant l'initialisation du système, il interroge le périphérique pour déterminer si celui-ci est en ligne. Si le périphérique est en ligne, le script détermine si le périphérique dispose de supports. Les périphériques à bande ¼ pouces disposant de médias à l'intérieur sont placés dans l'état d'erreur d'allocation. L'état d'erreur d'allocation oblige l'administrateur à nettoyer manuellement le périphérique.
En fonctionnement normal du système, lorsque la commande deallocate est exécutée en mode interactif, l'utilisateur est invité à supprimer le média. La libération est reportée jusqu'à ce que le média soit supprimé du périphérique.
Les scripts suivants de nettoyage de périphériques sont fournis pour les unités de disquette et de CD-ROM :
fd_clean, script – Script de nettoyage de périphériques pour les disquettes.
sr_clean, script – Script de nettoyage de périphériques pour les lecteurs de CD-ROM.
Les scripts utilisent la commande eject pour supprimer les médias de l'unité. Si la commande eject échoue, le périphérique est placé dans l'état d'erreur d'allocation. Pour plus d'informations, reportez-vous à la page de manuel eject(1).
Les périphériques audio sont nettoyés à l'aide d'un script audio_clean. Le script effectue un appel système ioctl AUDIO_GETINFO pour lire le périphérique. Le script effectue ensuite un appel système ioctl AUDIO_SETINFO pour rétablir la configuration par défaut d'un périphérique.
Si vous ajoutez plusieurs périphériques allouables au système, vous devrez peut-être créer vos propres scripts de nettoyage de périphériques. La commande deallocate transmet un paramètre aux scripts de nettoyage de périphériques. Le paramètre, qui est indiqué ici, est une chaîne qui contient le nom du périphérique. Pour plus d'informations, reportez-vous à la page de manuel device_allocate(4).
clean-script -[I|i|f|S] device-name
Les scripts de nettoyage de périphériques doivent renvoyer la valeur "0" en cas d'exécution correcte et une valeur supérieure à "0" en cas d'échec. Les options –I, –f et –S déterminent le mode d'exécution du script :
Nécessaire uniquement lors de l'initialisation du système. Toutes les sorties doivent aller à la console du système. L'échec ou l'incapacité à éjecter de force le média doivent mettre le périphérique dans l'état d'erreur d'allocation.
Similaire à l'option –I, à l'exception du fait que la sortie est supprimée.
Pour le nettoyage forcé. L'option est interactive et suppose que l'utilisateur est disponible pour répondre aux invites. Un script exécuté avec cette option doit tenter de terminer le nettoyage si une partie du nettoyage échoue.
Nettoyage standard. L'option est interactive et suppose que l'utilisateur est disponible pour répondre aux invites.