====== 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