Configuration de base d'un serveur Debian 13
Dans cet article, nous allons partir d'une installation fraîche de Debian 13 Trixie sur un serveur. Peu importe si c'est une machine locale, un serveur dédié ou un routeur. La configuration post-installation de chaque serveur Linux comprend toute une série de manipulations comme la mise en place des droits d'administration, la personnalisation du shell, le choix d'un éditeur de texte, la configuration des dépôts de paquets, l'installation d'une série d'outils, etc.
Configuration automatique ou manuelle ?
Dans mon quotidien, j'utilise l'outil Ansible pour configurer mes machines. C'est un outil de configuration plutôt bien ficelé, mais dont la prise en main est loin d'être triviale. Si je vous détaille ici la configuration manuelle de toutes les briques logicielles, c'est avant tout dans une optique pédagogique.
Travailler avec sudo
Dans la configuration par défaut, la commande sudo n'est pas installée :
L'utilisateur initial créé par l'installateur ne peut pas utiliser cette
commande tant qu'il ne fait pas partie du groupe système sudo :
En temps normal, la commande sudo conserve le mot de passe dans le cache pour
une durée de 15 minutes. Si vous souhaitez prolonger cet intervalle pour toute
la durée de la session, vous pouvez modifier la configuration de la commande à
cet effet :
Utiliser su ou sudo ?
Dans le monde d'Unix et de Linux, il existe en gros deux écoles pour s'acquitter des tâches administratives :
-
Travailler directement en tant que
rootlorsque cela est nécessaire. -
Se connecter en tant qu'utilisateur simple et utiliser
sudolorsqu'une tâche le requiert.
Certaines distributions favorisent explicitement l'approche avec sudo en
désactivant le compte root dans la configuration par défaut.
Quelle est donc la « meilleure » approche ici ? Je me garderai de trancher la question et je me contenterai d'attirer votre attention sur les principales différences entre les deux manières de faire :
-
Travailler directement en tant que
rootest certainement plus confortable. -
Utiliser
sudon'a jamais empêché personne de se tirer dans le pied.
Le principal argument en faveur de sudo est sans doute la journalisation
des opérations dans /var/log/auth.log.1 Tout ce que vous faites est
enregistré dans ce fichier si vous travaillez en tant qu'utilisateur
simple. Ce n'est pas le cas pour root. Essayez pour voir.
Installer et configurer Vim
Vi, ce n'est pas simplement un éditeur de texte, c'est tout d'abord le
programme d'édition de texte standard présent sur tous les systèmes unixoïdes.
Vi existe en plusieurs versions ou incarnations, les plus répandues étant
l'ancêtre vi et la version améliorée vim (ou Vi improved) :
Voici le fichier ~/.vimrc que j'utilise sur tous mes systèmes :
" ~/.vimrc
syntax on
colorscheme retrobox
set textwidth=79
set scrolloff=15
set autoindent
set tabstop=2
set shiftwidth=2
set expandtab
set modeline modelines=2
if has('mouse')
set mouse=r
endif
Copier/coller dans Vim
Si vous n'arrivez pas à copier/coller du texte dans un terminal graphique
faute de menu contextuel, invoquez :set mouse= en mode commande et
réessayez.
Certaines commandes ou applications comme git ou crontab se servent des
variables EDITOR et VISUAL pour lancer un éditeur de texte en mode
interactif. Même si vous n'avez pas encore eu l'occasion de les utiliser, c'est
toujours une bonne idée de renseigner ces deux variables :
Et si jamais ça vous arrive d'utiliser le compte root :
Un peu de coloriage
L'invite de commande peut être personnalisée grâce à la variable
d'environnement PS1. Pour ma part, j'aime bien ajouter des couleurs. C'est
non seulement joli à voir, ça présente également un aspect fonctionnel dans la
mesure où l'invite des utilisateurs communs mortels se distingue clairement de
celle de root :
Voici l'invite de commande personnalisée pour l'utilisateur :
# PS1
GREEN='\[\033[0;32m\]'
WHITE='\[\033[1;37m\]'
NC='\[\033[0;m\]'
PS1="$GREEN[$WHITE\u$NC@$WHITE\h$NC:$WHITE\W$GREEN] \$ $NC"
C'est quoi toutes ces variables ?
Les suites de caractères du genre \[\033[1;37m\] sont ce que l'on appelle
communément des caractères de contrôle. Si je les ai placés dans une
série de variables GREEN, WHITE et NC, c'est uniquement pour
améliorer la lisibilité de l'ensemble. Autrement, vous vous seriez retrouvé
avec une définition de variable PS1 qui ressemble à ce qui s'affiche à
l'écran lorsque votre chat fait la sieste sur le clavier :
L'invite de root utilise un jeu de couleurs différent :
# PS1
RED='\[\033[0;33m\]'
WHITE='\[\033[1;37m\]'
NC='\[\033[0m\]'
PS1="$RED[$WHITE\u$NC@$WHITE\h$NC:$WHITE\W$RED] #$NC "
Quelques alias pratiques
Maintenant que nous avons défini des invites personnalisées pour root et
l'utilisateur initial du système, nous pouvons aller plus loin dans la
personnalisation du shell et définir une série d'alias pratiques au
quotidien :
# Alias
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -al'
alias ..='cd ..'
alias ...='cd ../..'
On peut faire pareil pour root en ajoutant la même stance dans
/root/.bashrc.
En français ou en anglais ?
Dans la configuration par défaut, mon système utilise la langue française :
Lorsque j'utilise le compte root, je préfère utiliser la langue anglaise, qui
constitue en quelque sorte la lingua franca de l'administration système sous
Linux :
Je vérifie si je dispose bien de cette locale :
Générer les locales manquantes
Si jamais une locale est manquante, il suffit d'invoquer dpkg-reconfigure
locales pour la générer.
Configurer APT
Dans l'état actuel des choses, la configuration du gestionnaire de paquets APT
est inscrite dans le fichier /etc/apt/sources.list avec la syntaxe classique
utilisée par Debian depuis la nuit des temps.
Depuis Debian 13 Trixie, APT utilise désormais le format deb822 pour gérer
les sources, en remplacement de l'ancien /etc/apt/sources.list.
Invoquez la commande apt modernize-sources pour basculer vers ce nouveau
format :
$ sudo apt modernize-sources
The following files need modernizing:
- /etc/apt/sources.list
Modernizing will replace .list files with the new .sources format,
add Signed-By values where they can be determined automatically,
and save the old files into .list.bak files.
This command supports the 'signed-by' and 'trusted' options. If you
have specified other options inside [] brackets, please transfer them
manually to the output files; see sources.list(5) for a mapping.
For a simulation, respond N in the following prompt.
Rewrite 1 sources? [Y/n]
Modernizing /etc/apt/sources.list...
- Writing /etc/apt/sources.list.d/debian.sources
Jetez un œil dans le fichier résultant
/etc/apt/sources.list.d/debian.sources :
# Modernized from /etc/apt/sources.list
Types: deb
URIs: http://debian.proxad.net/debian/
Suites: trixie
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Modernized from /etc/apt/sources.list
Types: deb
URIs: http://security.debian.org/debian-security/
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Modernized from /etc/apt/sources.list
Types: deb
URIs: http://debian.proxad.net/debian/
Suites: trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
-
C'est plus lisible et mieux structuré.
-
Le format définit explicitement les clés de confiance avec la directive
Signed-By. -
C'est plus facile pour gérer plusieurs sources.
Je vais modifier ce fichier en l'éditant comme ceci :
# /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://debian.proxad.net/debian
http://ftp.de.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: http://security.debian.org/debian-security
http://ftp.de.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
-
J'ai rassemblé les deux sources
trixieettrixie-updatesen une seule stance. -
J'ai ajouté un deuxième miroir de téléchargement pour chaque source.
-
J'ai supprimé les commentaires inutiles.
Il ne me reste plus qu'à faire un brin de ménage :
Installer une panoplie d'outils
Pour l'instant, notre système est assez minimaliste et ne permet pas forcément de travailler confortablement. On va donc installer quelques outils supplémentaires :
$ sudo apt update
$ sudo apt install 7zip 7zip-rar curl git links2 lynx nmap net-tools \
pinfo rsyslog tree unrar unzip
Et maintenant ?
La suite au prochain numéro, où nous allons nous intéresser un peu plus en détail à la configuration réseau de notre machine.
-
Si le fichier
/var/log/auth.logn'existe pas sur votre système, installez le paquetrsysloget redémarrez la machine. ↩
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.


