Table des matières
Debian 11 - Perfect Server
Debian 11 n'est plus la dernière version disponible. Cependant l'article est probablement compatible en grande partie avec une version proche de celle de l'article.
L'installation de Debian se fait sur base du stricte minimum, sans aucun package sélectionné lors de l'installation. On installera manuellement uniquement ce qui est nécessaire.
Outils de base
Cette liste d'outil est utile de base pour le serveur et son administration basique
apt install dbus htop nano ntp ssh
| Package | Déscription |
|---|---|
| dbus | Utilisé pour la communication entre application |
| dnsutils | Ajoute les commandes dig et nslookup |
| htop | Gestionnaire de tâche, plus user friendly que top |
| nano | Éditeur de texte, plus user friendly que vi |
| ntp | Synchronisation de la date et l'heure du serveur |
| ssh | Serveur et client SSH pour l'accès à distance |
Note: dnsutils n'est plus nécessaire, il existe d'autres commandes déjà installé. (netstat → ss | ifconfig → ip)
Configuration de base
Package pour machine virtuelle
apt install open-vm-tools
Un redémarrage est nécessaire
Changer le hostname (Facultatif)
Fichier a éditer :
/etc/hostname /etc/hosts
Un redémarrage est nécessaire
Configuration réseau
1. Adressage de la carte réseau
La configuration réseau se trouve dans
/etc/network/interfaces
DHCP
allow-hotplug enp0s3 iface enp0s3 inet dhcp
Static
allow-hotplug enp0s3 iface enp0s3 inet static address 192.168.88.200/24 gateway 192.168.88.1
Note: L'instruction netmask est déprécié, le champ est renseigné dans l'instruction address sous forme ip/netmask
Après le changement : ifdown enp0s3 puis ifup enp0s3
2. Serveur DNS
La configuration DNS se trouve dans /etc/resolv.conf
Note: Si la carte réseau a été en DHCP avant, le fichier contient le dernier serveur DNS qu'il a obtenu via DHCP.
nameserver <dns1> nameserver <dns2> domain <domain.local> search <domain1 domain2 domain3 ...>
Configuration du serveur SSH
Avant d'activer les paramètres d'authentification par clé publique, il est important d'avoir ajouté sa propre clé dans “authorized_keys”
## Réseau # Changement du port d'écoute recommandé Port 22 # Désactivation du TCP Forwarding (permettant de créer un tunnel sur le serveur) # ⚠️ Un tunnel est toujours possible au départ d'un shell AllowTcpForwarding no ## Authentication # Refuser le login root PermitRootLogin no # Autoriser uniquement les logins suivants AllowUsers gary # Désactivation du login par mot de passe et par challenge/réponse et par mot de passe vide et par le module PAM # ⚠️ Nécessite une clé pour s'identifier ! # <!-- PasswordAuthentication no ChallengeResponseAuthentication no PermitEmptyPasswords no UsePAM no # Activation du login par clé publique uniquement PubkeyAuthentication yes AuthenticationMEthods publickey # --> ## Sécurité # Logging LogLevel VERBOSE # Logging SFTP Subsystem sftp /usr/lib/openssh/sftp-server -f AUTHPRIV -l INFO ## Options # Ne pas afficher le /etc/motd PrintMotd no # Ne pas autoriser X11 (Interface graphique au départ de SSH) X11Forwarding no ## Default config AcceptEnv LANG LC_*
Note pour se générer une clé SSH: EdDSA Ed255
# Création des dossiers : mkdir ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
Ensuite mettre la clé dans authorized_keys (une ligne par clé)
Bash auto completion
Ce package permet d'avoir une completion automatique avec <tab> :
apt install bash-completion
Après l'installation, il faut éditer le fichier /etc/bash.bashrc pour décommenter les lignes après le commentaire # enable bash completion in interactive shells
Configuration supplémentaire
Mise à jour automatique
Ceci pour permettre de garder la distribution à jour sans avoir à les lancer manuellement.
apt install unattended-upgrades apt-listchanges
Pour activer les mises à jour automatique:
dpkg-reconfigure -plow unattended-upgrades
Cette commande créer le fichier /etc/apt/apt.conf.d/20auto-upgrades
La configuration se fait dans /etc/apt/apt.conf.d/50unattended-upgrades, vous pourrez par exemple ajouter votre mail afin d'avoir un rapport :
//Unattended-Upgrade::Mail "";
Extra
MOTD
Le MOTD (Message of the day) est un (ou plusieurs) fichiers exécuté lors de la connexion utilisateur.
Ceux-ci doivent être placés dans /etc/update-motd.d/
/etc/update-motd.d/20-motd
#!/bin/bash R="\e[1;31m" Z="\e[0m" echo -e " $R Hostname:$Z $HOSTNAME $R Uptime:$Z `uptime -p` (`uptime -s`) $R Kernel:$Z `uname -sr` $R Distro:$Z `cat /etc/*release | grep \"PRETTY_NAME\" | cut -d \"=\" -f 2-` $R Apps: <Application serveur>$Z "
Ne pas oublier de rendre le fichier exécutable
chmod +x /etc/update-motd.d/20-motd
