IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
next up previous contents index index
suivant: Administration Réseaux monter: Administration des Systèmes Linux précédent: {Dés}installation de programmes sous   Table des matières   Index

Sous-sections

Les fichiers de Configuration


/etc/rc.d/init.d/ sous Linux

Le répertoire /etc/rc.d/init.d/ contient tous les scripts de démarrage des différents services. Pour démarrer un service on lancera typiquement la commande:
/etc/rc.d/init.d/nom_service start
Bien sûr les possibilitées de ces scripts shell d'initialisation ne s'arrêtent pas à ``start'', au minimum vous pourrez trouver start et stop, et en général vous trouverez:
start, stop, status, restart, condrestart, reload.


/etc/inetd.conf sous *BSD ou /etc/xinetd sous Linux

``inetd'' (respectivement xinted) démarre les programmes fournissant des services Internet. Au lieu de démarrer ces services au moment de l'initialisation du système, et de les laisser inactifs jusqu'à ce qu'il y ait une demande de connexion, on ne démarre que inetd et celui ci écoute sur tous les ports nécessaires aux services listés dans ses fichiers de configuration. Lorsqu'une requête arrive, inetd démarre le service correspondant. à cause de la façon dont il fonctionne, inetd (comme xinetd) est aussi appelé le super-serveur.
Les services listés dans les fichiers de configuration de inetd ou xinetd peuvent être séparés en 2 groupes. Les services du premier groupe sont dit multi-threaded et ils nécessitent que le processus père crée un nouveau processus pour chaque nouvelle demande de connexion. Chaque processus gère alors une connexion. Pour de tels services, inetd continue d'écouter pour prendre en charge de nouvelles demandes de connexions, et de lancer de nouveaux processus. D'un autre côté, le deuxième groupe est composé des services pour lesquels un seul démon prend en charge toute les nouvelles requêtes de connexion. De tels services sont appelés single-threaded et inetd ne prendra plus en charge les requêtes destinées à ce serveur tant que le serveur sera en service. Les services de cette catégorie sont habituellement de type datagramme.
Jusqu'à présent, la seule raison de l'existence d'un super-serveur était de préserver les ressources système en évitant de créer de nombreux processus dont la plupart ne seront actifs que très peu de temps. Tout en remplissant ces fonctions, inetd tire parti de l'idée du super-serveur pour ajouter des fonctionnalités telle que le contrôle d'accès et le logging. De plus, inetd ne se restreint pas aux services listés dans le fichier /etc/services. Par conséquent, tout le monde peut utiliser inetd pour démarrer des services personnalisés.

/etc/passwd

Passwd est un fichier de texte qui contient la liste des comptes sur le système, ainsi que des informations utiles sur ces comptes, comme l'identification de l'utilisateur, du groupe, le répertoire personnel, le shell, etc. Actuellement, il est de plus en plus recommandé d'utiliser des systèmes de masquage des mots de passe, comme shadow avec lequel le fichier /etc/passwd contient des ``*'' à la place des mots de passe, et où ces derniers sont stockés sous forme cryptée dans /etc/shadow qui n'est lisible que parle Super-utilisateur. Il doit y avoir, dans le fichier des mots de passe, une ligne par utilisateur, avec le format suivant :
account:passwd:UID:GID:GECOS:directory:shell
account Le nom que l'utilisateur utilisera pour se connecter, il ne devrait normalement pas contenir de majuscules
password La représentation encryptée (optionnelle) du mot de passe.
UID L'ID numérique de l'utilisateur.
GID L'ID numérique du groupe principal de l'utilisateur.
GECOS Ce champ est optionnel et n'a qu'un rôle informatif. Il contient généralement le nom complet de l'utilisateur.
directory Le répertoire de connexion de l'utilisateur (variable d' environnement $HOME).

shell Le programme à exécuter après la phase de connexion (par défaut /bin/sh) si ce fichier n'existe pas, l'utilisateur ne pourra pas se connecter avec son login.

/etc/master.passwd ou /etc/shadow

/etc/shadow contient les mots de passe cryptés des utilisateurs ou plus exactement, le résultat du cryptage d'une chaîne de longueur nulle avec le mot de passe comme clé de cryptage ainsi qu'éventuellement des informations sur l'âge des mots de passe :
  • Nom de login.
  • mot de passe crypté.
  • Nombre de jours écoulés depuis le 1er janvier 1970 jusqu'au dernier changement de mot de passe
  • Nombre de jours durant lesquels le mot de passe est encore valide
  • Nombre de jours après lesquels le mot de passe doit être changé.
  • Nombre de jours avant l'expiration du mot de passe impliquant l'avertissement de l'utilisateur
  • Nombre de jours après l'expiration provoquant la désactivation du compte
  • Numéro du jour depuis le 1er janvier 1970 à partir duquel le compte a été désactivé
  • Champs réservé
Le champs mot de passe doit être rempli. Le mot de passe crypté comprend 13 à 24 caractères pris dans l'alphabet réduit ``a-z'', ``A-Z'', ``0-9'', ``.'' et ``/''. Si le nombre minimum de jours requis est plus grand que le nombre maximum de jours de validé, ce mot de passe ne peut pas être changé par l'utilisateur. Un compte est considéré comme inactif et est désactivé si le mot de passe n'est pas changé dans l'intervalle spécifié après l'expiration du mot de passe. Un compte est également désactivé le jour indiqué quelque soit les autres informations d'expiration. Cette information est prioritaire sur tous les autres champs présents dans /etc/passwd. Ce fichier ne doit pas être accessible en lecture par les utilisateurs normaux afin de maintenir la sécurité des mots de passe, en particulier contre les attaques aux dictionnaires.
Image images/noteg.jpg
Remarque : Sur les systèmes *BSD le fichier /etc/shadow est remplacé par le fichier /etc/master.passwd

/etc/group

/etc/group est un fichier ASCII qui définit les groupes auxquels appartient chaque utilisateur. Il y a une ligne par groupe, et chaque ligne a le format :
nom_du_groupe:mot_de_passe:GID:liste_utilisateurs
Les champs sont les suivants :
nom_du_group Le nom du groupe.
mot_de_passe Le mot de passe encrypté du groupe. Si ce champ est vide (presque toujours), aucun mot de passe n'est nécessaire.
GID L'ID numérique du groupe.
liste_utilisateurs Tous les noms des membres du groupe, séparés par des virgules.


/etc/fstab

Le fichier fstab contient des informations sur les différents systèmes de fichiers. fstab est uniquement lus par les programmes, jamais écrit. C'est la responsabilité de l'administrateur de créer et de maintenir ce fichier correctement. Chaque système de fichier est décrit sur une ligne indépendante. Les champs contenus sur chaque ligne sont séparés par des espaces ou des tabulations. L'ordre des enregistrements au sein de fstab est important car fsck(8), mount(8), et umount(8) utilisent séquentiellement les enregistrements de fstab pour effectuer leurs travaux. Les lignes fstab se compose comme suit:
  1. Le premier champs (fs_spec), décrit le périphérique bloc ou le système de fichiers distant a monter.
  2. Le second champs (fs_file), indique le point de montage du système de fichier. Pour les partitions de swap ce champ doit être spécifié comme ``none'' (aucun).
  3. Le troisième champs (fs_vfstype), décrit le type de système de fichiers. Le système supporte actuellement les types suivants (et peut-être d'autres, voir /proc/filesystems):
    ext2 système de fichiers local, noms de fichiers longs, i-noeuds détaillés, et beaucoup d'autres avantages.
    ext3 système de fichiers local, noms de fichiers longs, i-noeuds détaillés, système de fichiers journalisé.
    xiafs système de fichiers local, noms de fichiers longs, i-noeuds détaillés, et d'autres avantages.
    msdos système de fichiers local pour les partitions MS-DOS.
    vfat système de fichiers local pour les partitions FAT32.
    NTFS système de fichiers local pour les partitions NTFS.
    HPFS système de fichiers local pour les partitions HPFS.
    ISO9660 système de fichiers local pour les CD-ROM.
    NFS système de fichiers distant par réseau.
    swap partition de disque utilisée pour le swapping.
  4. Si vfs_fstype est mentionné comme ``ignore'', l'enregistrement n'est pas traité. Ceci permet de visualiser aisément les partitions non utilisées.
  5. Le quatrième champs (fs_mntops), indique des options de montage associées au système de fichiers. Il s'agit d'une liste d'options séparées par des virgules. Il contient au moins le type de montage, suivi éventuellement d'options appropriées au type de système de fichiers.
    async Toutes les entrées/sorties sur le système de fichiers seront asynchrone.
    auto Peut être monté par l'argument -a.
    defaults Utilisation des options par défaut : rw, suid, dev, exec, auto, nouser, et async.
    dev Interpréter les fichiers spéciaux de périphériques présents sur le système de fichiers.
    exec Permettre l'exécution de fichiers binaires.
    noauto Ne peut être monté qu'explicitement (l'invocation de mount avec l'argument -a ne montera pas le système de fichiers).
    nodev Ne pas interpréter les fichiers spéciaux de périphériques présents sur le système de fichiers.
    noexec Ne pas permettre l'exécution de fichiers binaires sur le système de fichiers monté. Ceci peut être utile sur un serveur qui contient des fichiers binaires pour des architectures autres que la sienne.
    nosuid Ne pas tenir compte des bits Set-UID ou Set-GID.
    nouser Ne pas autoriser d'utilisateur ordinaire (non root) à monter le système de fichiers. C'est le comportement par défaut.
    remount Remonter un système de fichiers déjà monté. Ceci est utilisé pour changer les attributs de montage, principalement pour autoriser l'écriture sur un système en lecture seule.
    ro Montage du système en lecture seule.
    rw Montage du système en lecture/écriture.
    suid Prendre en compte les bits Set-UID ou Set-GID des fichiers se trouvant sur le système monté.
    sync Toutes les entrées/sorties sur le système de fichiers seront synchrones.
    user Autoriser les utilisateurs ordinaires (non root) à monter le système de fichiers. Ceci entraîne l'utilisation des options noexec, nosuid, et nodev (à moins qu'elles ne soient explicitement surchargées, comme dans une ligne d'option user,exec,dev,suid).
  6. Le cinquième champs (fs_freq), est utilisé par la commande dump(8) pour déterminer quels sont les systèmes de fichiers à sauvegarder. Si le cinquième champs est absent ou vaut zéro, dump supposera qu'il ne faut pas sauvegarder ce système.
  7. Le sixième champs (fs_passno), est utilisé par le programme fsck(8) pour déterminer l'ordre de vérification des systèmes de fichiers au moment du démarrage. Le système de fichiers racine doit avoir un champs fs_passno de valeur 1, et les autres un fs_passnode de valeur 2. Les systèmes partageant le même contrôleur seront vérifiés séquentiellement, et ceux utilisant différents contrôleurs seront vérifiés simultanément pour utiliser le parallélisme offert par le matériel. Si le sixième champs est absent ou vaut zéro, fsck ne vérifiera pas ce système de fichiers.

/etc/syslog.conf

Le service syslog sert a logger diverses informations dans des fichier. Il est très utile pour la sécurité de votre machine car de nombreuses informations sont enregistrées (les tentatives de connexion les services démarrer.), son fonctionnement est configurable au travers du fichier /etc/syslog.conf. Il contient deux champs ,le sélecteur et l'action. Le sélecteur se compose de deux champs appeler ``facility'' et ``priority''. Les valeurs de ``facility'' identifie le sous système qui a émis le message. Les types définis (dans /usr/include/syslog.h.) sont auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (pareil que auth), syslog, user, uucp et de local0 a local7. Notons que ``security'' est obsolète et que ``mark'' est réservé a un usage interne. L'argument ``priority'' sert a définir le niveau de détails de ce qui doit être logué. Les valeurs possibles sont: debug, info , notice, warning, err , crit, alert, emerg.
# Various entry
auth,authpriv.*                                      /var/log/auth.log
*.*;auth,authpriv.none                               -/var/log/syslog
user.*                                               -/var/log/user.log

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;;news.none;authpriv.none            -/var/log/messages

# The authpriv file has restricted access.
authpriv.*                                           /var/log/secure

# Mail logging
mail.=debug;mail.=info;mail.=notice                  -/var/log/mail/info
mail.=warn                                           -/var/log/mail/warnings
mail.err                                             -/var/log/mail/errors

# Kernel logging
kern.=debug;kern.=info;kern.=notice                  -/var/log/kernel/info
kern.=warn                                           -/var/log/kernel/warnings
kern.err                                             /var/log/kernel/errors

# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit                                       -/var/log/spooler

# Save boot messages also to boot.log
local7.*                                             -/var/log/boot.log

*.info;mail.none;authpriv.none  /dev/tty7
authpriv.*      /dev/tty7
*.warn;*.err    /dev/tty7
kern.*  /dev/tty7
mail.*  /dev/tty8

/etc/hosts

hosts - Correspondances statiques de noms d'hôtes. Il s'agit d'un fichier de texte simple qui associe les adresses IP avec les noms d'hôtes, une ligne par adresse IP. Pour chaque hôte, une unique ligne doit être présente, avec les informations suivantes :
Adresse_IP Nom_officiel [Alias...]
Les divers champs de la ligne sont séparés par un nombre quelconque d'espaces ou de tabulations. Le texte commençant avec un caractère "#" et s'étendant jusqu'à la fin de la ligne est considéré comme un commentaire, et est donc ignoré. Les noms d'hôtes peuvent contenir n'importe quel caractère imprimable autres que les délimiteurs de champs, les saut de ligne ou le caractère de commentaire. Les alias permettent de disposer de noms différents, d'orthographe simplifiées, de surnoms plus courts, ou de noms d'hôtes génériques (comme localhost). Le système Berkeley Internet Name Domain (BIND) implémente un serveur de noms Internet pour les systèmes Unix. Il remplace le fichier /etc/hosts ou la recherche des noms d'hôtes, et libère un hôte de la nécessité de disposer d'un fichier /etc/hosts complet et à jour. Dans les systèmes modernes, même si la table des hôtes a été remplacée par DNS, ce mécanisme est encore largement employé pour :
127.0.0.1 localhost
192.168.1.217 foo.nomomaine.org foo
205.230.163.103 www.opensource.org

/etc/resolv.conf

Le fichier /etc/resolv.conf se compose de deux informations importantes que sont: ``nameserver'' qui définit la machine sur laquelle devront être transmisent les requêtes DNS c'est à dire les machines permettant de transformer les adresses telles que www.google.fr en adresse IP. On voit ici qu'il est possible d'usurper une adresse par une autre, il sera donc indispensable d'utiliser une machine de confiance. La deuxième information importante est ``search'' qui permettra de définir le(s) domaines de recherche des adresses, ainsi lorsque l'on tapera ``ssh seb@machine'' la recherche va donc se faire de préférence avec l'extension: ``ssh seb@machine.domain'' ``domain'' étant le champ suivant la valeur ``search''.

/etc/services

``/etc/services'' est un fichier de texte ASCII fournissant une correspondance entre un nom intelligible décrivant un service Internet et l'ensemble numéro de port / protocole utilisé.
Chaque programme réseau devrait consulter ce fichier pour obtenir le numéro de port et le protocole sous-jacent au service qu'il fournit. Les fonctions de la bibliothèque C getservent(3), getservbyname(3), getservbyport(3), setservent(3), et endservent(3) permettent d'interroger ce fichier depuis un programme.
Les numéros de ports sont affectés par le IANA (Internet Assigned Numbers Authority), et leur politique actuelle consiste à assigner à la fois les protocoles TCP et UDP à chaque numéro de port. Ainsi la plupart des services auront deux entrées, même si elles n'utilisent que le protocole TCP.
Les numéros de ports en-dessous de 1024 ne peuvent être assignés à une socket que par un programme Super-User (voir bind(2), tcp(7), et udp(7).)
C'est ainsi que les clients se connectant sur ces ports de petits numéros peuvent être sûrs que le service correspondant est une implémentassions standard et non pas le bricolage d'un utilisateur.
La présence d'une ligne indiquant un service dans le fichier services ne signifie pas nécessairement que le service en question est disponible sur la machine. Notez que tous les services réseau ne sont pas obligatoirement lancés par inetd ou xinetd, et donc pas toujours dans xinetd.d ou inetd.conf. En particulier les serveurs de News (NNTP) et de courrier (SMTP) sont souvent initialisés par le système dans les scripts de démarrage.
Chaque ligne décrivant un service est de la forme service-name port/protocole [alias ...] voici un exemple simplifié des entrées dans /etc/services:
ftp-data        20/tcp				# default ftp data port
ftp             21/tcp
ssh             22/tcp
ssh             22/udp
telnet          23/tcp
mail            25/tcp          
domain          53/tcp          nameserver      # name-domain server
domain          53/udp          nameserver
bootps          67/tcp				# BOOTP server
bootps          67/udp
bootpc          68/tcp				# BOOTP client
bootpc          68/udp
www             80/tcp          http		# WorldWideWeb HTTP
www             80/udp				# HyperText Transfer Protocol
pop3            110/tcp				# POP version 3
pop3            110/udp
sftp            115/tcp
nntp            119/tcp         readnews untp   # USENET News Transfer Protocol
imap            143/tcp         imap2           # Internet Message Access Proto
imap            143/udp         imap2           # Internet Message Access Proto
irc             194/tcp                         # Internet Relay Chat
irc             194/udp
imap3           220/tcp                         # Interactive Mail Access
imap3           220/udp                         # Protocol v3

# new for imap ssl
imaps           993/tcp
pop3s           995/tcp

https           443/tcp                         # secure http (SSL)
nfsd            2049/udp        nfs		# NFS server
nfsd            2049/tcp        nfs		# NFS server

# Unofficial services
rsync           873/tcp				# rsync server
mysql           3306/tcp			# MySQL

pserver    2401/tcp

/etc/sudoers

Sudo permet à un utilisateur d'exécuter une commande en tant que super-utilisateur (ou autre), comme il l'a été spécifié dans le fichier /etc/sudoers.
Par défaut il sera demander le mot de passe de l'utilisateur, mais il reste possible de le désactiver comme on peut le voir dans l'exemple suivant:
# User privilege specification
root ALL=(ALL) ALL
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
seb ALL=(ALL) NOPASSWD: ALL

Image images/noteg.jpg
Remarque : sudo est un programme facilitant les commandes ``super-utilisateur'' néanmoins c'est un programme SUID dangereux. Qui a fait récemment l'objet d'une faille de sécurité via buffer-overflow.

next up previous contents index index
suivant: Administration Réseaux monter: Administration des Systèmes Linux précédent: {Dés}installation de programmes sous   Table des matières   Index