• Aucun résultat trouvé

Contrôle d’accès

Dans le document Guide de référence pour Debian Osamu Aoki (Page 141-145)

9.2.1 Contrôle des connexions avec PAM

PAM (Pluggable Authentication Modules, Modules d’Authentification Greffables) permet de contrôler les connexions des utilisateurs.

/etc/pam.d/* # fichiers de contrôle de PAM

/etc/pam.d/login # fichier de contrôle de PAM pour la connexion /etc/security/* # paramètres des modules de PAM

/etc/securetty # contrôle les connexions de root sur la console /etc/login.defs # contrôle le comportement de login

Changez le contenu du fichier/etc/pam.d/logincomme suit, si vous voulez des terminaux non sécurisés mais ne demandant pas de mot de passe. Faites le à vos propres risques.

#auth required pam_unix.so nullok auth required pam_permit.so

Des astuces similaires peuvent être appliquées pourxdm,gdm, . . ., pour avoir une console X sans mot de passe.

Au contraire, installezcracklib2et réglez/etc/pam.d/passwdcomme suit, si vous voulez forcez une bonne politique de mots de passe.

password required pam_cracklib.so retry=3 minlen=6 difok=3 Pour l’activation d’un compte, un mot de passe temporaire peut aussi être utile. Pour cela utilisez la commandepasswdavec l’option-e. Voirpasswd(1).

Le nombre maximum de processus peut être réglé aveculimit -u 1000dans un shell Bash ou avec la configuration de /etc/security/limits.conf. D’autres paramètres comme core peuvent être réglés d’une façon similaire. La valeur initiale de PATH peut être réglée dans le fichier/etc/login.defsavant le script de démarrage du shell.

La documentation de PAM est dans le paquetlibpam-doc. LeGuide de l’Administrateur d’un Système Linux-PAMcouvre la configuration de PAM, les modules disponibles, etc. La documen-tation inclut aussi leGuide du Développeur d’Applications Linux-PAMet leGuide du Développeurs de Modules Linux-PAM.

9.2.2 PourquoiGNU sune supporte pas le groupewheel

C’est la célèbre phrase de Richard M. Stallman à la fin de l’ancienne pageinfo su. Ne pas s’inquiéter : lesuactuel de Debian utilise PAM, donc on peut restreindre l’accès desuà n’im-porte quel groupe en utilisantpam_wheel.sodans/etc/pam.d/su. Ce qui suit réglera le groupeadmdu système Debian comme équivalent du groupe BSDwheelet autoriserasusans mot de passe pour les membres du groupe.

# anti-RMS configuration in /etc/pam.d/su auth required pam_wheel.so group=adm

# Wheel members to be able to su without a password auth sufficient pam_wheel.so trust group=adm

9.2.3 Objet des groupes par défaut Quelques groupes intéressants :

– Le grouperoot est le groupewheel par défaut poursusipam_wheel.soest utilisé sans l’argumentgroup=.

– Le groupeadmpeut lire les fichiers du journal.

– Le groupecdrompeut être utilisé localement pour donner accès au lecteur de CDROM à un ensemble d’utilisateurs.

– Le groupefloppypeut être utilisé localement pour donner accès au lecteur de disquettes à un ensemble d’utilisateurs.

– Le groupeaudiopeut être utilisé localement pour donner accès à un périphérique audio à un ensemble d’utilisateurs.

– Le groupesrcpossède le code source, y compris les fichiers de/usr/src. Il peut être utilisé localement pour donner la possibilité de gérer le code source du système à un utilisateur.

– Le groupe staff est utile pour donner la possibilité de faire des choses dans /usr /local et créer des répertoires dans /home à plus d’administrateurs système (sup-port/junior).

Pour une liste complète, voir la section « FAQ » dans Securing Debian Manual (http://www.

debian.org/doc/manuals/securing-debian-howto/), qui se trouve aussi dans le pa-quetharden-doc dans Woody. De plus, le nouveau paquetbase-passwd(>3.4.6) contient une liste officielle :/usr/share/doc/base-passwd/users-and-groups.html.

9.2.4 Travailler de façon sûre –sudo

J’utilisesudoprincipalement comme protection contre ma stupidité. Utilisersudoest toujours mieux que d’utiliser le système avec le compte root.

Installez sudo et activez-le en configurant /etc/sudoers(http://www.debian.org/

doc/manuals/debian-reference/examples/). Réglez aussi les possibilités de sudo pour les groupes dans/usr/share/doc/sudo/OPTIONS.

Cette configuration fournit aux membres du groupe « staff » un accès à toutes les commandes lancées en tant que root avecsudoet donne aux membres du groupe « src » un accès à certaines commandes lancées en tant que root avecsudo.

L’avantage desudoest qu’il requiert seulement les mots de passe utilisateurs pour se connec-ter et que l’activité est surveillée. C’est un moyen simple de donner des pouvoirs à un admi-nistrateur débutant. Par exemple :

$ sudo chown -R myself:mygrp .

Bien sûr, si vous connaissez le mot de passe de root (comme beaucoup d’utilisateurs indivi-duels), n’importe quelle commande peut être lancée en tant que root depuis un compte utili-sateur :

$ su -c "shutdown -h now"

Password:

(Je sais que je devrais limiter les privilèges du compte administrateur avecsudo. Mais comme c’est mon serveur personnel, je ne me suis pas encore embêté avec ça.)

Un autre programme permet à des utilisateurs ordinaires de lancer des commandes avec les privilèges de root, voir le paquetsuper.

9.2.5 Contrôle d’accès aux services

Lesuper-serveurinternet,inetd, est exécuté lors du démarrage par/etc/rc2.d/S20inetd (pour le niveau d’exécution 2) qui est un lien vers/etc/init.d/inetd.inetdpermet de n’exécuter qu’un démon qui en invoque plusieurs autres, réduisant ainsi la charge du système.

Lorsqu’une requête pour un service arrive, le protocole et le service sont identifiés en regardant dans la base de données stockée dans/etc/protocolset/etc/services. Pour un service internet normal,inetdutilise/etc/inetd.conf. Pour un service basé sur Sun-RPC,inetd utilise/etc/rpc.conf.

Pour la sécurité du système, assurez-vous de désactiver les services non utilisés dans /etc /inetd.conf. Les services Sun-RPC doivent être actifs pour NFS et d’autres programmes basés sur RPC.

Parfois, inetd n’exécute pas le serveur demandé directement, mais exécute le programme d’enveloppe de démon TCP/IPtcpdavec le serveur demandé comme argument dans/etc /inetd.conf. Dans ce cas, tcpd lance le serveur approprié après avoir enregistré dans le journal la requête et avoir fait quelques autres vérifications en utilisant les fichiers /etc /hosts.denyet/etc/hosts.allow.

Si vous avez un problème avec l’accès à distance sur un système Debian récent, commentez la ligne “ALL : PARANOID” dans/etc/hosts.denysi elle existe.

Pour plus de détails, voir inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8),hosts_access(5), ethosts_options(5).

Pour plus d’information sur Sun-RPC, voirrpcinfo(8),portmap(8), et/usr/share/doc /portmap/portmapper.txt.gz.

9.2.6 Centraliser l’identification – LDAP

UtilisezLightweight Directory Access Protocol(LDAP). Références : – OpenLDAP (http://www.openldap.org/)

– OpenLDAP Admin Guide dans le paquetopenldap-guide

– LDP : LDAP Linux HOWTO (http://www.tldp.org/HOWTO/LDAP-HOWTO/index.

html)

– LDP : LDAP Implementation HOWTO (http://www.tldp.org/HOWTO/

LDAP-Implementation-HOWTO/index.html)

– OpenLDAP, extensive use reports (http://portal.aphroland.org/~aphro/

ldap-docs/ldap.html)

– Open LDAP with Courier IMAP and Postfix (http://alinux.washcoll.edu/docs/

plc/postfix-courier-howto.html)

Dans le document Guide de référence pour Debian Osamu Aoki (Page 141-145)