====== 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.
Voir: [[Debian 12 - Perfect Server]]
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
nameserver
domain
search
==== 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 !
#
## 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 '''' :
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: $Z
"
Ne pas oublier de rendre le fichier exécutable
chmod +x /etc/update-motd.d/20-motd