procédure d'installation d'un poste linux
sommaire
l'installation de base est insuffisante (sécurité, outils)
on décrit ici les compléments recommandes (Redhat et non Redhat)
les logiciels se trouvent :
- sur le/les cdrom d'installation
- sur le répertoire des "mises a jour"
- dans les powertools
- divers
les differents packages mentionnés sont tous sous license "libre" (GPL ou equivalent)
- mettre le cd dans le lecteur et booter dessus (si necessaire modifier le bios pour l'ordre de boot des supports
sinon, utiliser la disquette de boot)
- actuellement : on utilise la redhat 6.2 (normale)
- choisir de preference l'installation "custom" qui permet de choisir les
packages a installer
Pour boucher des trous potentiels de sécurité, il faut nettoyer en fonction des besoins :
- les packages installés (rpm -e)
- les services lances au demarrage (apm pcmcia nfs ...) par la commande chkconfig
- les services geres par inetd (vi /etc/inetd.conf)
rem : pour etre sur d'un bon demarrage, il est preferable que rc.local soit lance en dernier (S99local)
ce qui est en conflit avec S99webmin et S99linuxconf
je conseille donc de modifier le numero de ces 2 derniers (ex 97 et 98 dans init.d, chkconfig off, chkconfig on)
Je conserve sur hilarion tous les patch sortis pour la release que j'utilise. Donc (pour une 6.2) :
mkdir /mnt/update
mount -t nfs hilarion:/data/ftp/pub/ /mnt/update
rpm -Fvh /mnt/update/rh6.2/updates/i386/rpm-3.0.5-9.6x.i386.rpm
rpm -Fvh /mnt/update/rh6.2/updates/noarch/*.rpm
rpm -Fvh /mnt/update/rh6.2/updates/i386/*.rpm
verifier que les fichiers de config n'ont pas ete modifies (find ou locate):
- locate -r "rpmsav"
- locate -r "rpmorig"
but :
- mettre le dernier noyau disponible
- prendre la version optimisee pour son processeur
- prendre eventuellement en compte les noyaux multi-processeurs (smp)
- prendre eventuellement en compte un noyau compile avec support de file systeme
journalise (reiser) (addons)
installation
- pour determiner le processeur : 386 586 686 ... : uname -a
- installation : rpm -ivh /mnt/update/rh6.2/updates/kernel/...
- modifier le fichier /etc/lilo.conf (ajout d'un nouveau noyau)
- prendre en compte les modifs : lilo -v
- et rebooter pour voir si ca marche
- ajouter dans /etc/syslog.conf la ligne "*.* /dev/tty9"
pour suivre les log sans avoir a se connecter
et faire un killall -1 syslogd pour prendre en compte
- ajouter dans /etc/rc.d/rc.local :
le passage en pave numerique pour chaque session : inserer les lignes
suivantes :
# pour activer le pave numerique en mode console
INITTY=/dev/tty[1-8]
for tty in $INITTY; do
setleds -D +num < $tty
done
- ajouter numlock pour avoir le pave numerique sous X
- pour avoir un pave numerique correct sous X et sous vi: changer /etc/X11/xmodmap
- toujours dans /etc/rc.d/rc.local, ajouter la commande hdparm qui va bien pour booster
les acces disques IDE :
/sbin/hdparm -q -c1 -A1 -m16 -d1 -k1 /dev/hda
( il est preferable de tester a l'avance la commande sans k1, avec un
hdparm -Tt /dev/hda, avant et apres modif pour voir les gains)
- monter en lecture seule les partitions qui ne bougent pas souvent :
- /boot : ajouter en fin du fichier /etc/rc.d/rc.local la ligne : mount -oremount,ro /boot
- /usr : ajouter l'option ro dans /etc/fstab
- /opt si elle existe : a mettre dans /etc/fstab
attention : probleme pour les update automatiques
- si l'on veut n'avoir qu'un disque de travail temporaire :
rmdir /var/tmp; ln -s /tmp /var/tmp
- francisation : pour afficher les accents avec less, ajouter dans /etc/profile la ligne :
export LESSCHARSET=latin1
- mise a l'heure du PC (forte dérive):
commencer par une mise a l'heure sur cadillac par :
- xntpd : pour les serveurs
- rdate pour les postes clients
- ne pas oublier de forcer l'heure RTC (hwclock)
j'ai fait un script : maj_date.sh pour ça (à mettre sous /etc/cron.weekly par exemple)
- pour eviter des acces incessant au dns, il faut configurer un cache local sur la machine. il y a 2 solutions pour cela
- ajouter un dns local, qui ne contient rien, et qui forwarde ses demandes vers le dns principal.
- installer le package caching-nameserver
- modifier /etc/named.conf : mettre en forward les dns du domaine (fichier type named.conf sur addons)
- changer dans /etc/resolv.conf la ligne nameserver en nameserver 127.0.0.1
- activer le service named (chkconfig named on
- verifier le comportement avec nslookup
- ajouter le service nscd :
- installer le package nscd
- configurer le fichier /etc/nscd.conf
- activer le service : chkconfig nscd on
- verifier avec nslookup
- documentation :
- ajout logiciel pinfo (acces man/info) (powertools en 6.2, cd 2 en 7.1)
- ajout des HOWTO (addons)
- ajout du logiciel purp (addons) pour gerer les rpm en mode console
- pour diminuer la taille des log systemes, modifier le fichier /etc/logrotate.conf pour ajouter les options compress et delaycompress
- pour un clavier francais au boot (interessant avec les password) :
- ajouter dans /boot le fichier fr-latin0.klt
- ajouter dans /etc/lilo.conf la ligne keytable = /boot/fr-latin0.klt
- lancer la commande lilo -v
- pour que les locales numeriques soient correctes (a2ps ...) mettre dans /etc/profile la ligne export LC_NUMERIC="POSIX"
- pour avoir des info sur le systeme : ajouter le package si (et sa dependance ncurses4)
principe de base
- serveur : admin centralisee
- poste client : on part sur une administration centralisee par defaut
(l'utilisateur n'a pas acces au compte root)
le mot de passe root sera commun a toutes les machines
pour permettre de lancer certaine commandes priviliegies : sudo
logiciels
- utilisation des .shost pour les acces root (ssh)
- on ajoute dans le .forward de root, un renvoi des mails vers
l'administrateur: \root,eric.gerbier@free.fr
- installation du logiciel webmin (addons) pour l'administration distante. configuration :
- ajouter l'audit : webmin/configuration/audit
- changer la langue de l'interface : webmin/configuration/langue
- ajouter le package rpm perl-Net-SSLeay
- configurer l'utilisation en ssl : webmin/configuration/chiffrage ssl
- ajout du module sysstats (addons/non_rpm) : pour avoir un historique de l'activite systeme (a configurer)
(il faut ajouter le package rrdtools)
- installation du logiciel linuxconf pour l'administration locale/distante avec une interface semi-graphique/graphique
- orat : log des changement dans les packages
installer la version modifiee par mes soins
- pour ne pas saturer /var par des vieux mail, utiliser le logiciel clean_mail (addons), avec le script clean-mail.sh (a mettre sous /etc/cron.monthly)
disponibilite
pour augmenter le taux de disponibilite des machines :
- implementer si possible la solution a 2 disques systemes
- utiliser des file systemes journalises de type ext3
- activer les magic keys
serveurs : surveillance (supervision avec concentration sur page web )
- installation de logcheck (addons) pour la surveillance des log systeme
- (serveur) installation et configuration de diskcheck (powertools) pour la surveillance des espaces disques
pourquoi
dans la section securité on trouve les raisons pour se tenir
le plus a jour possible
comment
je procède comme suit :
- abonnement à la liste de diffusion redhat pour etre informe de chaque patch (contenu, impact)
- chargement journalier des nouveaux patch depuis un mirroir francais de redhat
- vérification des signatures gpg/pgp
- test sur une machine
- mise a disposition sur mon ftp anonyme pour les autres machines que je gère
logiciel
via le logiciel autorpm (powertools ou addons), il faut installer de plus les packages dialog (cd) et perl-libnet (powertools)
- serveur : mise a jour manuelle
- poste client : mise a jour automatique sur verification pgp/gpg
pour eviter x acces sur l'exterieur du site, le plus simple est d'utiliser
un mirroir local des updates (hilarion) avec mise sur ftp anonyme
il faut de plus
- mettre à jour les fichiers de config
- si l'on veut verifier la signature des packages : verifier que l'on a bien installe gnupg (rpm -q gnupg)
- ajouter la signature de redhat (gpg --import /usr/share/doc/rpm-4.0.4/RPM-GPG-KEY)
- il y a une subtilite pour l'emploi de gnupg
- verifier le bon fonctionnement par autorpm --print
- deconnexion des sessions sans activite : ajouter dans /etc/profile :
export TMOUT=3600
- si possible supprimer les acces rlogin/telnet ... et les remplacer par openssh
(mot de passe cryptes sur le reseau)
- suivi des modifications apportees a la machine (desiree/non desirees : cheval de troie) :
- aide/tripwire : non spécifique rpm, preferer le premier car plus rapide et gpl (addons). lancement :
- serveurs : cron journalier
- poste de travail : apres installation pour pouvoir retrouve ce qui est modifie
pour cela
- mettre a jour le fichier de config sur /etc
- initialiser la base : aide --init
- utiliser le script aide.sh pour les mises a jour (cron)
- logwatch (addons): resume des services lances (acces)
- (serveur) mise en service des tcp-wrapper pour filtrer les acces aux services sur des
criteres d'adresse IP/nom de machine/nom de domaine
- pour eviter des acces a root sans mot de passe au boot, utiliser les champs restricted/password dans lilo
- si l'on veut betonner : utiliser les scripts de bastille-linux
- pour les machines en DMZ, on peut ajouter le logiciel portsentry (powertools) pour eviter les intrusions
- restreindre les droits des partitions /home et /tmp
sauvegarde de /etc sur /root/sav pour pourvoir remonter une config "cassee"
(par cron)
ajout d'un IDE :
- source navigator (redhat) est bien
- kdevelop (kde)
choix a éffectuer :
- openOffice : la version libre de StarOffice, tres stable
- applix (license !)
il peut etre tres interessant de stocker quelque part les informations suivantes :
- la table des partitions : sfdisk -d
- la liste des packages installes : rpm -qa |sort
- la table des file systemes : /etc/fstab
- la liste des demons lances : chkconfig --list | sort
- la liste des modifs effectuees sur ce poste
upgrade d'un poste
apres un upgrade, les fichiers de config peuvent avoir ete modifies ou non
il faut donc :
- regenerer la base slocate : at -f /etc/cron.daily/slocate.cron now
- rechercher les fichiers modifies ou sauvegardes et retoucher les configs :
- locate -r "rpmsave$"
- locate -r "rpmnew$"
- locate -r "rpmorig$"
version 1.5 du 21/02/2003
Eric Gerbier
documentation sous licence GNU Free Documentation License