====== Debian 13 - Perfect Server ====== ===== Installation ===== 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 de base apt install htop systemd-timesyncd ssh bash-completion ca-certificates wget ^Package^Déscription^ ^htop|Gestionnaire de tâche, plus user friendly que top| ^systemd-timesyncd|Service NTP pour la synchronisation de l'horloge| ^ssh|Serveur et client SSH pour l'accès à distance| ^bash-completion|Permet de compléter facilement les commandes avec la touche *TAB*| ^ca-certificates|Magasin de certificat SSL| ^wget|Outil pour télécharger des fichiers| ==== Configuration de systemd-timesyncd ==== La configuration se passe dans ''etc/systemd/timesyncd.conf'' [Time] NTP=pool.ntp.org **Note**: Le pool de ntp.org propose automatiquement une IP proche de chez vous. Si vous avez un serveur NTP local, utilisez celui-là On active le service et on le démarre en même temps : systemctl enable --now systemd-timesyncd ===== Configuration de base ===== ==== Package pour machine virtuelle (guest) ==== # Dans le cas d'une VM apt install open-vm-tools # Dans le cas d'un QEMU/KVM apt install qemu-guest-agent Un redémarrage est nécessaire **Note**: Il est possible que ce package soit nativement installé ==== Package pour machine physique (host) ==== Dans le cas d'une machine physique, il est nécessaire d'installer le microcode correspondant au processeur (amd64 ou intel) apt install intel-microcode apt install amd64-microcode ==== Changer le hostname (Facultatif) ==== hostnamectl hostname Fichier a éditer : /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. Le nom de l'interface peut changer, dans mon cas elle se nomme "ens33" **DHCP** allow-hotplug ens33 iface ens33 inet dhcp **Static** allow-hotplug enp0s3 iface ens33 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 : ''systemctl restart networking'' === 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 Après avoir édité le fichier, vous pouvez bloquer son édition par sécurité avec ''chattr +i /etc/resolv.conf'' ==== 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" [[article:linux:comment_generer_une_cle_ssh|]] Le fichier de configuration de base se trouve dans ''/etc/ssh/sshd_config'' mais commence par sourcer les fichiers se trouvant dans le dossier ''/etc/ssh/sshd_config.d/*.conf'' (Vide par défaut). Nous allons profiter de ce dossier pour écraser les valeurs par défaut ## 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 # Ne pas autoriser X11 (Interface graphique au départ de SSH) X11Forwarding no ## Authentication # Refuser le login root PermitRootLogin no # Autoriser uniquement les logins nécessaire AllowUsers gary ## Sécurité # Logging LogLevel VERBOSE # Logging SFTP Subsystem sftp /usr/lib/openssh/sftp-server -f AUTHPRIV -l INFO Si vous souhaitez activer l'authentification par clé uniquement : # Désactivation du login par mot de passe, par challenge/réponse, par mot de passe vide, par le module PAM # ⚠️ Nécessite une clé pour s'identifier ! # N'oubliez pas de redémarrer le service ssh : ''systemctl restart sshd'' ===== Configuration supplémentaire ===== ==== Mise à jour automatique ==== Afin de garder la distribution à jour de manière automatique apt install unattended-upgrades apt-listchanges Pour activer les mises à jour automatique: dpkg-reconfigure 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 ""; ===== Firewall ===== Afin que le serveur ne soit pas inutilement exposé, un firewall basique va permettre de diminuer la surface d'attaque apt install ufw # Exemple d'autorisation du SSH ufw allow 22/tcp # Si on veut limiter sur une IP(/plage) ufw allow proto tcp from 192.168.0.0/24 to any port 22 # Activation du firewall ufw enable Pour contrôller le status du firewall: ufw status verbose ===== Changelog ===== Changement par rapport à l'article précédent ([[article:linux:debian_12_-_perfect_server|]]): * Moins de package de base à installer. Ils le sont déjà (dbus, nano, ...) * Configuration du serveur NTP * Usage de hostnamectl pour changer le hostname de la machine * Configuration SSH sur base de fichier source sans écraser la configuration d'origine (+ modulaire) * Ajout de l'installation du microcode pour une machine physique