Installation de Debian avec Sarge Debian-installer beta 4
TODO:
- accès aux recherches sur les paquets existants (liste, bugs, ...)
- scandisk avec correction automatique en cas d'erreur
- demarrage moins verbeux
- gagner de la RAM: enlever les gettys inutiles (runlevel 5)
Introduction
Debian est une distribution GNU/Linux non commerciale, rassemblant des logiciels libres créés par des bénévoles ou des entreprises. Le site officiel se trouve à http://www.debian.org/.
Autres adresses de choix:
- page d'accueil de l'installeur en développement: http://www.debian.org/devel/debian-installer/
- manuel d'installation: http://d-i.alioth.debian.org/manual/
- entreprise française spécialiste de debian: http://www.easter-eggs.com/
- site web français sur Debian: http://www.debian-fr.org/
Conventions
Les commandes décrites sont préfixées par "#" ou "$". Un préfixe "#" indique que la commande nécessite souvent des privilèges administrateur. Sinon, le préfixe est "$".
Pour exécuter une commande avec les privilèges administrateur, le faire dans un environnement administrateur en appelant d'abord la commande "su", ou en préfixant la commande par "sudo" (non installé par défaut).
Les commandes ayant une sortie très bavarde peuvent être lues à l'aide de la commande "more" (comme sous Windows) ou "less" (permet de remonter et faire des recherches), de cette manière:
$ commande | less
Pour obtenir de l'information sur une commande, il est possible de:
- consulter son man:
$ man <commande>
- regarder ses pages d'informations (navigation plus dense que le man):
$ info <commande>
- consulter la liste des options disponibles:
$ <commande> --help
ou$ <commande> -h
- consulter la documentation originale, dans le répertoire /usr/share/doc/*
1. Installation
1.1. Démarrage
Démarrer sur le CD. Si ce n'est pas possible, copier les images de boot sur disquette:
/install/floppy/boot.img (image de boot)
/install/floppy/root.img (fichiers système)
Il est également possible de procéder par réseau, ou clé USB.
Ceci est possible:
- sous Windows à l'aide de l'utilitaire rawrite2 situé sur le CD:
/tools/rawrite2.zip
une fois décompressé, lancer l'utilitaire et lui indiquer le chemin des images des disquettes. - sous GNU/Linux:
# dd if=chemin_de_l_image of=/dev/fd0
A l'invite de boot, appuyer sur Entrée.
Dans le cas de boot sur disquette, insérer la disquette root au moment demandé.
1.2. Lancement de l'installeur
- Choisir la langue l'installation. Ce n'est pas definitif, mais ce choix influence le système initial, et la liste des claviers proposés.
- Après des tests d'auto-détection, la configuration réseau par DHCP est tentée (si elle échoue un paramétrage manuel est possible).
- Entrer le nom de la machine.
- Effacer tout le disque, ou manipuler les partitions et l'espace libre en les sélectionnant et les parcourant. Dans le cas d'une configuration manuelle, il est recommandé de dédier une partition à la mémoire swap (sa taille optimale est un éternel débat, je dirais qu'il faut souvent entre la taille de la RAM et son double).
En général on peut placer tous les fichiers dans une partition unique. - La copie des fichiers s'opère alors.
- Installer Grub dans le secteur de boot (MBR).
- Enlever le CD et continuer (redémarrage).
1.3. Premier démarrage du système
- Invite de configuration.
- Il est d'usage de caler l'horloge système (BIOS) sur GMT.
- Le fuseau horaire est "Europe/Paris" (other->Europe->Paris).
- Choisir un mot de passe pour l'administrateur "root" (attention il n'y a pas d'écho).
- Rentrer les renseignements pour le premier utilisateur (seul le "username" est obligatoire)
- Pour apt (installation des logiciels), différentes configurations sont possibles:
- par ftp, dans le cas d'une connexion directe à internet: France, ftp.fr.debian.org par exemple, ou le plus proche de chez vous si vous le connaissez.
- par http, dans le cas d'une connexion par proxy: France, ftp2.fr.debian.org (bien respecter la syntaxe http://[user[:password]@]host[:port] par exemple "http://proxy.domaine.com:3128")
- par cdrom, dans le cas d'une installation sans accès à internet
- Sélection des paquets à installer: "aptitude" devrait être assez facile d'accès, sinon choisir "tasksel", mais cela risque d'installer beaucoup plus de logiciels que strictement nécessaire; au pire utiliser apt-get manuellement plus tard.
- Choisir "dialog" (mode texte avec menus), "medium".
- La locale choisie à l'installation est automatiquement choisie, on peut choisir également celles-ci pour plus de confort:
- en_US iso-8859-1
- en_US iso-8859-15
- en_US UTF-8
- fr_FR iso-8859-1
- fr_FR@euro iso-8859-15
- fr_FR UTF-8
- fr_FR@euro UTF-8
- La locale par défaut détermine le langage par défaut du système, au choix.
- Choisir le clavier à partir de la liste d'architecture, par exemple: azerty, français, avec euro
- Pour exim (je ne suis pas expert de cette configuration, en italique ce qui peut être automatisé dans les nouvelles versions):
- ne pas séparer le fichier de configuration (au choix)
- mail par smarthost, pas de mail local
- system mail name: mettre le nom complet de la machine
- listen on: 127.0.0.1
- other destinations: laisser vide
- hide local mail name: yes
- nom visible: <domaine.com>
- smarthost (outgoing mail) <smarthost.domaine.com>
- keep DoD minimal: no
- Choisir le nom de l'utilisateur recevant les mails à l'extérieur (exemple: c.brisy a priori).
- Ne pas participer au "Debian Popularity Contest".
- L'installation est terminée.
2. Gestion des logiciels
2.1. Pilotes de périphériques et configuration
Tous les pilotes de périphériques susceptibles d'être supportés (sauf les propriétaires) sont fournis à l'installation. Leur chargement se fait automatiquement lors du démarrage du système, ou dès branchement d'un nouveau périphérique (USB, PCMCIA, etc).
Pour ce qui est de la configuration de ces périphériques, et du système en général, il faut souvent modifier les fichiers de configuration. Des interfaces graphiques existent pour le faire (linuxconf, webmin, gnome-system-tools, etc) mais je n'en ai pas essayé depuis longtemps, je ne saurais encore dire quelle est la meilleure.
2.2. Applications
De même, toutes les applications installables a priori (sauf les propriétaires) sont fournies dans la distribution.
Mise à jour de la liste des applications disponibles:
# apt-get update
Mise à jour des logiciels installés suivant cette liste:
# apt-get upgrade
Installation d'une application:
# apt-get install <application> ...
Désinstallation:
# apt-get remove <application> ...
Effacer les paquets téléchargés:
# apt-get clean
Forcer la reconfiguration d'une application:
# dpkg-reconfigure <application>
Recherche dans les descriptions courtes des applications disponibles:
$ apt-cache search <terme> ...
Consultation des informations sur un paquet:
$ apt-cache show <paquet>
Lister les logiciels installés:
$ dpkg --get-selections
Sites web permettant d'accéder à des paquets non-officiels:
2.3. Services
La liste des services disponibles est dans /etc/init.d
Ce sont des fichiers exécutables, supportant souvent au moins les arguments suivants:
- start: lancer le service s'il ne tourne pas déjà
- stop: stopper le service s'il tourne
- reload: relire la configuration du service sans le redémarrer si possible
- force-reload: relire la configuration du service et le redémarrer si c'est nécessaire
- restart: forcer le redémarrage du service
- status: obtenir des informations sur l'état du service
Exemples:
- relancer la couche réseau du système
# /etc/init.d/networking restart
- arrêter PostgreSQL:
# /etc/init.d/postgresql stop
- relancer Squid:
# /etc/init.d/squid restart
Les services système lancés au démarrage sont dans /etc/rcS.d, les suivants sont dans /etc/rc2.d . Il s'agit en fait de liens vers l'exécutable de /etc/init.d, affublés d'un numéro d'ordre de lancement.
- désactivation d'un service au démarrage:
# mv /etc/rc2.d/S??service /etc/rc2.d/s??service
- réactivation d'un service au démarrage:
# mv /etc/rc2.d/s??service /etc/rc2.d/S??service
- lancement d'un service au démarrage:
# ln -s ../init.d/service /etc/rc2.d/S??service
Voir aussi la commande "update-rc.d".
3. Intégration d'une machine au parc
3.1. Connexion réseau
Configurer la carte réseau pour du DHCP: /etc/network/interfaces, man interfaces
Typiquement:
| auto lo eth0 | iface lo inet loopback | iface eth0 inet dhcp
Il est possible de pousser la configuration DHCP pour s'enregistrer dans le DNS. Ceci se règle dans /etc/dhclient.conf:
| send host-name "<machine.domaine.com>";
3.2. Utilisateurs
Ajouter les utilisateurs adéquats, inclus dans le groupe root:
# groupadd -g 1000 <utilisateur> # useradd -u 1000 -g 1000 -G root -s /bin/bash -m <utilisateur>
Voir aussi les commandes "groupmod", "usermod", "groupdel", "userdel". Debian propose aussi un script "adduser" facilitant l'insertion et la gestion des utilisateurs.
3.3. Logiciels à installer
- manpages-fr?
- nano (éditeur texte facile)
- ssh (login distant) /etc/ssh/sshd_config
- autoriser le protocole version 2 uniquement
- installer ssh-keygen en SUID root
- utiliser le serveur sshd
- désactiver le login root (PermitRootLogin no)
- copier les clés des utilisateurs autorisés
- sudo
- autoriser le groupe root, ajouter la ligne suivante à la fin:
| %root ALL=(ALL) ALL
via la commande:# EDITOR=nano visudo
- désactiver les mots de passe locaux:
# usermod -L <username>
- autoriser le groupe root, ajouter la ligne suivante à la fin:
4. Sécurisation d'une machine
4.1. Accès physique
- interdire le boot BIOS depuis disquette, CD-ROM et disques non autorisés
- mettre un mot de passe BIOS
- mettre un mot de passe sur le disque dur (pas toujours supporté)
- mettre un mot de passe dans le chargeur de boot
- restreindre les utilisateurs pouvant s'authentifier sur les consoles locales (tty1 à tty12)
- bloquer la séquence de touches CTRL+ALT+SUPPR:
# touch /etc/shutdown.allow
- fermer tous les services et ports inutiles (liste des ports actifs: "netstat -teaun")
- restreindre SSH (fichier de configuration: "/etc/sh/sshd_config")
4.2. Accès distant
4.3. Mise à jour des logiciels
# apt-get update && apt-get upgrade
- lecture des listes de securité (Bugtraq, Full Disclosure, ...)
4.4. Système de fichiers
- vérifier les permissions, notamment:
- /root
- /home/*
- vérifier les programmes en SUID