Administration - Système et Réseau,
Philippe.Dax@enst.fr,
© ENST - 1996-2003
Plan
Rôle de l'administrateur
La profession
ne pas confondre avec l'Administration
profession de généraliste peu connue
mais très recherchée
Ses fonctions
maintenir le bon fonctionnement de son parc
résoudre tout type d'incidents
gérer les utilisateurs (création, expiration, limitations)
organiser et maintenir les systèmes de fichiers
surveiller la sécurité du système
configurer au mieux les machines
installer et mettre à jour les nouveaux logiciels
enrichir l'environnement de base fourni par le constructeur
administrer le réseau local et l'accès au réseau public
planifier l'évolution de son parc
choisir de nouveaux équipements
participer à des développements
guider et conseiller les utilisateurs
fonction de pilote
Niveaux d'administration
Une seule machine
serveur: forte responsabilisation sur la disponibilité des services
poste individuel: peut être délégué aujourd'hui à son propriétaire
Un parc de machines homogènes
distribution des ressources
mise en commun des ressources
Un parc de machines hétérogènes
s'efforcer de rendre l'ensemble intéropérable dans la transparence
la complexité croît avec le taux d'hétérogénéité
Un site entier (machines + réseau)
rechercher un point d'équilibre puis le maintenir stable en permanence
par l'ampleur de la tâche, on peut devenir un gourou :-)
Un site entier dans le temps (moyen et long terme)
cohabitation des anciennes et nouvelles versions pour assurer une pérennité
on peut accéder au grade de wizard :-)
Connaissances de l'administrateur
Connaître Unix
ses concepts et son architecture (noyau, processus, file-system)
ses utilitaires et ses outils
ses langages
ses forces et ses faiblesses
Connaître l'environnement
les équipements matériels
les produits logiciels
les besoins des utilisateurs
s'entendre avec les autres administrateurs système
Suivre l'évolution
être en état permanent de veille technologique
Les commandes d'administration
Langages d'administration
shell (Bourne)
expressions régulières
awk
perl
Outils d'administration de base
sed
grep
find
Outils d'administration spéfifiques
admintool (Sun), smit (Aix), sysadm (SysV)
tivoli (général)
Manuels: section 8
man
Répertoires d'administration
/etc
répertoire au coeur de l'administration
tables système (mapping, configs)
/dev
périphériques (mknod)
/usr
utilitaires et bibliothèques du constructeur ou du distributeur
/usr/local
utilitaires et bibliothèques du domaine public
/opt
progiciels optionels sous licences
/var, /var/adm, /var/spool, /var/tmp
données variables à longue durée de vie
/tmp
fichiers temporaires à très courte durée de vie
/etc
Démarrage du système
/etc/rc.boot
/etc/rc.single (montage de / et /usr)
/etc/rc (lu par le processus init, passage en "multi-user"
/etc/rc.local (lancé par /etc/rc)
/etc/rc.inittab (changement de modes en SystemV)
/etc/init.d, /etc/rc0.d/, /etc/rc1.d/, /etc/rc2.d/, /etc/rc3.d/ (SysV)
Utilisateurs
/etc/passwd, /etc/shadow
/etc/group
Système de fichiers
/etc/fstab (BSD), /etc/vfstab (SysV)
/etc/exports (BSD), /etc/dfs/dfstab (SysV)
Réseau
/etc/hosts, /etc/services, /etc/networks, /etc/netmask
/etc/netgroup (NIS)
/etc/inetd.conf
Super utilisateur
login root (uid=0)
tous les droits sur tous les objets sur une machine locale
aucun droits sur les machines distantes (NFS)
droit de contrôle sur les processus
droit d'accès à tous les fichiers (rwx)
inconvénient: pas d'identité de la personne
possibilité d'interdire ce login (/etc/ttytab)
seul à pouvoir travailler en mode "single-user"
responsable de la cohérence des informations au boot
Commande su
passage en super-utilisateur
cette action (réussite ou échec) est enregistrée
Découpage des partitions disque
Partitions, slices
formatage, labélisation
8 partitions (a à h, partition c = tout le disque)
sur certains systèmes il est impossible de partitionner
sur certains systèmes partitionnement à chaud (AIX)
Système de fichier (file-system)
4 zones (boot-block, super-block, i-list, data)
construction d'un file-system (mkfs, newfs)
newfs -o space -m 1 -i 8192 -c 32 /dev/rsd0h
montage d'un file-system (mount)
mkdir /home/hostname
mount /home/hostname /dev/sd0h
le montage d'un fs peut occulter l'ancienne arborescence
démontage d'un file-system (umount)
umount /home/hostname
Fichiers
/etc/format.dat (caractéristiques physiques)
Commandes
format, newfs, mkfs, dkinfo, df -t ufs, df -i, fsck
Gestion de l'espace disque
Espace système
évaluer la taille des file-systems et leur évolution
croissance des journaux (problème des boucles d'erreurs)
/var/log/, /var/adm/, /var/spool/
confiner certains répertoires dans des file-systems
/, /tmp, /var, /var/log/, /var/spool/mail/, /var/spool/news/
Espace swap
évaluer la taille du swap selon les applications requises
généralement: espace swap = double espace mémoire RAM
placer /tmp dans le swap (si possible), droits 1777
Espace utilisateur
prévoir et contrôler les débordements (df, du)
df : état courant d'un file-system (taux d'occupation)
df -t ufs (disques locaux), df -i (inodes), df -k (SysV)
du -s (sommation)
procéder à des migrations d'arborescences utilisateur
Gestion des imprimantes
Alternatives
serveur de spool
direct
Fichiers
répertoire de spool: /var/spool/lpd/
configuration (BSD): /etc/printcap
configuration (System V): /usr/adm/lp/
journal d'erreurs: /var/adm/lpd-errs
socket Unix: /dev/printer
autorisations d'accès: /etc/hosts.lpd
Commandes
BSD: lpd (daemon), lpr, lpq, lprm, lpc, pac (comptabilité)
SysV: lpd (daemon), lp, lpsched, lpshut, lpstat, cancel, lpadmin
Gestion des périphériques
Fichiers
répertoire /dev
/dev/MAKEDEV
terminaux: /etc/ttytab, /etc/gettytab, /usr/lib/terminfo/*
imprimantes: /etc/printcap
modem: /etc/remote, /etc/modemcap
Commandes
mknod type major minor device (type = c ou b)
mknod c 7 21 /dev/tty21
réseau: ifconfig
ifconfig le0
ifconfig le0 monhote netmask 0xfffffe0 broadcast 137.194.161.255
man (section 4)
man 4 le
Crontab
Principe
déclenchement d'actions à des dates pré-programmées
Fichiers
répertoire /var/spool/cron/crontabs/
minutes heures jours mois jour/semaine commande
"*" = toutes les occurrences, "," = liste, "-" = intervalle
0,15,30,45 * * * * /usr/local/adm/check-nis 1>/dev/null 2>&1
00 01 * * * nice -10 find /inf -name core -exec rm -f {} \;
10 03 * * 1-6 nice -10 /usr/local/adm/sauvegarde-daily
30 05 * * 0 /usr/local/adm/savelog-weekly
30 06 1 * * /usr/local/adm/savelog-monthly
00 00 1 1 * /usr/local/bin/happy-new-year
pipe nommé /var/spool/cron/FIFO
Commandes
cron: analyse des fichiers crontabs et exécute les actions
crontab -l loginname (lister), crontab -e loginname (éditer)
at et batch
echo "commande args" | at 08.00 (date ultérieure)
batch <<! (immédiatement)
commande args
!
Journaux d'administration (logs)
Principe
notifier les actions dans un fichier en rallongement (>>)
les journaux peuvent être gérés par le daemon syslogd
orientation des journaux: console, mail, fichier, machine
types de journaux (kern, daemon, mail, news,...)
niveaux de sévérité d'erreurs (critic, debug, notice, info,...)
Fichiers
répertoires: /var/log/, /var/adm/
configuration: /etc/syslog.conf
Commandes
daemon syslogd
Fonctions C
openlog()
syslog(message)
closelog()
Gestion des sauvegardes
File-system (totales ou incrémentales)
dump, restore, ufsdump, ufsrestore, rdump, rrestore
umount /file-system
dump 0uf /dev/rst0 /file-system
Arborescences
tar
tar cvbf 200 /dev/rst0 ./directory
tar xpvf /dev/rst0
tar cvBf - directory | (cd /new; tar xpBf -)
bar (noms de fichiers très longs - syntaxe identique à tar)
cpio (orienté filtre et expressions régulières)
find ./directory -print -depth | cpio -oBc /dev/rst0
pax (tar/cpio)
Installations
Fichiers
lire les README, INSTALL, ChangeLog, TODO, Copyright
maîtriser les Makefile, Imakefile, configure.{in,ac}
cible install:
souvent adapter les Makefile et parfois les configure.in
Commandes
configure (création des Makefile adaptés à l'environnement local)
install:
install -m 755 -s -o root -g staff commande /usr/local/bin
diffusion d'installation: rdist, rsync
Services réseaux TCP/IP
Principe
correspondance nom symbolique <-> numéro TCP/IP
Fichiers
/etc/hosts (mapping no. IP/nom de hôte au boot seulement)
127.0.0.1 localhost
137.194.160.21 horla
/etc/services (mapping nom de service/no. de service)
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
/etc/rpc (mapping nom de procédure/no. de procédure)
/etc/networks (mapping nom de réseau/no de réseau)
/etc/protocols (mapping nom de protocole/no. de protocole)
/etc/ethers (mapping nom de machine/no. Ethernet)
/etc/inetd.conf
Commandes
ping, spray, netstat, route, traceroute
Inetd
Principe
sous-traiter l'écoute des demandes de services réseaux
soulager l'occupation de l'espace swap
prétraiter l'établissement de la communication
le service sollicité voit l'entrée stdin et la sortie stdout
Fichiers
/etc/inetd.conf
service type proto flags owner path args
telnet stream tcp nowait root /usr/etc/in.telnetd in.telnetd
talk dgram udp wait root /usr/etc/in.talkd in.talkd
Commandes
daemon inetd
kill -HUP inetd pour prise en compte de /etc/inetd.conf
NFS
Principe
montage de file-systems distants
indépendance des architectures (milieu hétérogène)
transparence de l'aborescence
serveurs sans états
Fichiers
/etc/fstab, /etc/vfstab
/dev/sd0h /home/hostname 4.2 rw,soft,intr 1 4
ulysse:/usr/local /usr/local nfs rw,soft,intr 0 0
/etc/exports, /etc/dfs/dfstab
/etc/mtab
Commandes
mount, umount, exportfs, showmount
daemons: rpc.mountd, nfsd, biod, keyserv, portmap
Automounter
daemons: automount, amd
fichiers: /etc/auto.master, /etc/auto.direct
NIS
Principe: administration centralisée
avantage: faciliter l'administration
inconvénient: charge du réseau, problèmes de sécurité
Fichiers
tables de référence dans /etc
passwd, group, netgroup, hosts, rpc, services, networks,...
déterminer un domaine: domainname
maps NIS dans /var/yp/nom_du_domaine
/var/yp/Makefile
Commandes
serveur maître (daemons: ypserv, ypxfrd)
refaire les maps: ypmake map ...
serveur esclave (daemons: ypserv, rpc.ypupdated)
client (daemon: ypbind)
changement de mots de passe (daemon: rpc.yppasswdd)
lister une map: ypcat -k mapname
connaître son serveur: ypwhich
DNS
Principe: service de nommage
associer un nom à un numéro IP (échelle mondiale)
fonctions: gethostbyname(), gethostbyaddr()
structure hiérarchisée de domaines (enst.fr)
autorité déléguée sur le serveur primaire (SOA)
Fichiers
/etc/named.conf sur un serveur (primaire ou secondaire)
/etc/resolv.conf (resolver)
domain enst.fr
nameserver 137.194.2.81
nameserver 137.194.2.16
bases de données: domain.zone, domain.rev
horla.enst.fr. IN A 137.194.160.21
IN MX 10 inf.enst.fr.
IN MX 50 enst.enst.fr.
21.160.194.137 IN RR horla.enst.fr.
Commandes
nslookup
dig
host
Sendmail, Postfix
Principe: agent MTA
acheminement par le mécanisme du "store and forward"
aiguillage du mail selon son adresse dans les champs To: Cc: Bcc:
délivrance du mail selon son adresse dans le champ From:
réécriture de l'adresse sous forme canonique
détermination du triplet (mailer, relai, user)
Fichiers
/etc/sendmail.cf
/var/spool/mail/
/var/spool/mqueue/
/etc/aliases
~/.forward
Commandes
/usr/lib/sendmail -bd -q1h (lancement du daemon smtp)
/usr/lib/sendmail -q (reprocessing des queues)
/usr/lib/sendmail -bt (tests des règles)
mailq (lister les queues)
mail -v user
telnet host smtp
News
Gestionnaires de news
Bnews
Cnews
Inn
Fichiers
répertoire d'administration: /usr/local/news
répertoire de dépot des articles: /var/spool/news
catalogue des news actives: /usr/local/news/active
historique des news (format dbm): /usr/local/news/history*
abonnement du site: /usr/local/news/newsfeeds
autorisations d'accès: /usr/local/news/hosts.nntp
Commandes
inews
expire
ctlinnd (client admin pout Inn)
Administration réseau
SNMP (Simple Network Management Protocol)
Base d'objets: MIB (Management Information Base)
Structure SMI (arbre numéroté, noeuds et feuilles)
attribut = valeur
types: string, integer, counter
accessibilité: read-only, community
commandes SNMP: get, getnext, put, trap
Implémentation de la MIB: objets du noyau (/dev/kmem)
daemon: snmpd
commandes utilisateur: snmpi (Isode), snmpget (MIT)
Références