Configuration initiale du serveur avec Ubuntu 20.04/18.04 et 16.04
- 1701
- 267
- Emilie Colin
Ce tutoriel vous guidera sur les premières étapes de base que vous devez configurer sur un nouveau installé Ubuntu serveur afin d'augmenter la sécurité et la fiabilité de votre serveur.
Les configurations expliquées dans ce sujet sont presque les mêmes pour tous les systèmes de serveurs Ubuntu, concernant la plate-forme OS sous-jacente, que ce soit Ubuntu est installé sur un serveur à métal nu, dans une machine virtuelle privée ou une machine virtuelle tournée dans un cloud public VPS.
Exigences
- Ubuntu 20.04 Installation du serveur
- Ubuntu 18.04 Installation du serveur
- Ubuntu 16.04 Installation du serveur
Mettre à jour et mettre à niveau le système Ubuntu
La première étape dont vous devez prendre soin en cas de nouvelle installation de Ubuntu serveur ou un nouveau déployé Vps ubuntu est pour s'assurer que le système et tous les composants du système, tels que le noyau, le gestionnaire de packages APT et tous les autres packages installés sont à jour avec les dernières versions et correctifs de sécurité publiés.
Pour mettre à jour le serveur Ubuntu, pour vous connecter à la console du serveur avec un compte avec des privilèges racine ou directement en racine et exécuter les commandes ci-dessous afin d'effectuer le processus de mise à jour et de mise à niveau.
$ sudo apt mise à jourMettre à jour le serveur Ubuntu
Après avoir exécuté la commande de mise à jour, vous verrez le nombre de packages disponibles pour le processus de mise à niveau et la commande utilisée pour répertorier les mises à niveau des packages.
$ sudo apt List - OpgradablePackages Ubuntu à mise à niveau de la liste
Après avoir consulté la liste des packages disponibles pour la mise à niveau, émettez la commande ci-dessous pour démarrer le processus de mise à niveau du système.
$ sudo apt mise à niveauMettre à niveau les packages de serveur Ubuntu
Afin de supprimer tous les packages Deb téléchargés localement et tous les autres caches APT-Get, exécutez la commande ci-dessous.
$ sudo apt autoremove $ sudo apt cleanPackages et cache AutoreMove APT
Créer un nouveau compte dans Ubuntu
Par défaut, en tant que mesure de sécurité, le compte racine est complètement désactivé dans Ubuntu. Afin de créer un nouveau compte sur le système, connectez-vous au système avec l'utilisateur du compte avec les privilèges racine et créez un nouveau compte avec la commande ci-dessous.
Ce nouveau compte sera accordé avec les privilèges des pouvoirs racinaires via la commande sudo et sera utilisé pour effectuer des tâches administratives dans le système. Assurez-vous de configurer un mot de passe solide pour protéger ce compte. Suivre la adducteur invite pour configurer les détails de l'utilisateur et le mot de passe.
$ sudo addUser ubuntu_userCréer un utilisateur dans Ubuntu
Si ce compte sera attribué à un autre administrateur système, vous pouvez forcer l'utilisateur à modifier son mot de passe lors de la première connexion en émettant la commande suivante.
$ sudo chage -d0 ubuntu_user
Pour l'instant, le nouvel utilisateur ajouté ne peut pas effectuer des tâches administratives via l'utilitaire sudo. Pour accorder ce nouveau compte utilisateur avec des privilèges administratifs, vous devez ajouter l'utilisateur à «Sudo»Groupe système en émettant la commande ci-dessous.
$ sudo usermod -a -g sudo ubuntu_user
Par défaut, tous les utilisateurs appartenant au «Sudo»Le groupe est autorisé à exécuter des commandes avec des privilèges racine via l'utilitaire sudo. La commande sudo doit être utilisée avant d'écrire la commande nécessaire pour l'exécution, comme indiqué dans l'exemple ci-dessous.
$ sudo apt install package_name
Testez si le nouvel utilisateur a les privilèges racine accordés, en vous connectant au système et en exécutant le mise à jour apte commande préfixée avec sudo.
$ su - ubuntu_user $ sudo apt updateVérifiez le nouvel utilisateur
Configurer le nom d'hôte système dans Ubuntu
Habituellement, le nom d'hôte de la machine est configuré pendant le processus d'installation du système ou lorsque le VPS est créé dans le cloud. Cependant, vous devez modifier le nom de votre machine afin de mieux refléter la destination de votre serveur ou de mieux décrire son objectif final.
Dans une grande entreprise, les machines sont nommées d'après des schémas de dénomination complexes afin d'identifier facilement la machine dans les racks de Datacenter. Par exemple, si votre machine Ubuntu exploitera un serveur de messagerie, le nom de la machine doit refléter ce fait et vous pouvez configurer le nom d'hôte de la machine comme MX01.mydomain.lan, Par exemple.
Pour afficher des détails sur votre machine, le nom d'hôte exécute la commande suivante.
$ hostnamectl
Afin de modifier le nom de votre machine, émettez commande hostNamectl avec le nouveau nom que vous configurerez pour votre machine, comme illustré dans l'extrait ci-dessous.
$ sudo hostnamectl set-hostname tecmint
Vérifiez le nouveau nom de votre système avec l'une des commandes ci-dessous.
$ hostname $ hostname -s $ cat / etc / hostnameDéfinir le nom d'hôte dans le serveur Ubuntu
Configurer SSH avec l'authentification de la clé publique dans Ubuntu
Pour augmenter le degré de sécurité du système d'un serveur Ubuntu, vous devez configurer l'authentification de clé publique SSH pour un compte local. Afin de générer une paire de clés SSH, la clé publique et privée, avec une longueur de clé, comme 2048 bits, exécuter la commande suivante sur votre console de serveur.
Assurez-vous que vous êtes connecté au système avec l'utilisateur que vous configurez la touche SSH.
$ su - ubuntu_user $ ssh-keygen -t rsa -b 2048Configuration des touches SSH dans Ubuntu
Pendant que la clé est générée, vous serez invité à ajouter phrase secrète Afin de sécuriser la clé. Vous pouvez entrer une phrase secrète solide ou choisir de laisser la phrase secrète vide si vous souhaitez automatiser les tâches via le serveur SSH.
Une fois la clé SSH générée, vous pouvez copier la clé publique sur un serveur distant en exécutant la commande ci-dessous. Pour installer la clé publique sur le serveur SSH distant, vous aurez besoin d'un compte utilisateur distant avec les autorisations et les informations d'identification appropriées pour vous connecter au serveur distant.
$ ssh-copy-id [Protégé par e-mail] _ServerCopier la clé SSH sur le serveur distant
Vous devriez être en mesure de vous connecter automatiquement via SSH au serveur distant en utilisant la méthode d'authentification de la clé publique. Vous n'aurez pas besoin d'ajouter le mot de passe de l'utilisateur distant lors de l'utilisation de l'authentification de la clé publique SSH.
Une fois que vous vous êtes connecté au serveur distant, vous pouvez commencer à exécuter des commandes, telles que Commandement W Pour répertorier SSH à distance connecté aux utilisateurs, comme indiqué dans la capture d'écran ci-dessous.
Tapez la sortie de la console pour fermer la session SSH distante.
$ ssh [e-mail protégé] _Server $ w $ exitVérifiez la connexion sans mot de passe SSH
Pour voir le contenu de votre clé SSH publique afin d'installer manuellement la clé sur un serveur SSH distant, émettez la commande suivante.
$ cat ~ /.ssh / id_rsa.pubAfficher la clé SSH
Secure SSH Server dans Ubuntu
Afin de sécuriser le démon SSH, vous devez modifier le numéro de port SSH par défaut à partir de 22 à un port aléatoire, plus élevé que 1024, et interdire l'accès SSH distant au compte racine via le mot de passe ou la clé, en ouvrant le fichier de configuration principale du serveur SSH et apportez les modifications suivantes.
$ sudo vi / etc / ssh / sshd_config
Tout d'abord, recherchez la ligne commentée # Port22 et ajouter une nouvelle ligne en dessous (remplacer le numéro de port d'écoute en conséquence):
Port 2345
Ne fermez pas le fichier, faites défiler vers le bas et recherchez la ligne #Permitrootlogin oui, Décommente la ligne en supprimant le # signe (hashtag) depuis le début de la ligne et modifiez la ligne pour ressembler à l'extrait ci-dessous.
Permutrootlogine noService SSH sécurisé
Ensuite, redémarrez le serveur SSH pour appliquer les nouveaux paramètres et tester la configuration en essayant de vous connecter à partir d'une machine distante à ce serveur avec le compte racine via le nouveau numéro de port. L'accès au compte racine via SSH doit être restreint.
$ sudo systemctl redémarrer sshd
Exécutez également netstat ou Commande SS et filtrez la sortie via la commande grep afin d'afficher le nouveau numéro de port d'écoute pour le serveur SSH.
$ sudo ss -tlpn | grep ssh $ sudo netstat -tlpn | grep sshVérifiez le port SSH Article associé: 7 Conseils de sécurité SSH utiles pour durcir le serveur OpenSSH
Il existe des situations où vous voudrez peut-être déconnecter automatiquement toutes les connexions SSH distantes établies dans votre serveur après une période d'inactivité.
Afin d'activer cette fonctionnalité, exécutez la commande ci-dessous, qui ajoute le Tmout Variable de bash sur votre compte .bashrc Fichier caché et force chaque connexion SSH faite avec le nom de l'utilisateur pour être déconnecté ou abandonné après 5 minutes d'inactivité.
$ echo 'tmout = 300' >> .bashrc
Exécutez la commande de queue pour vérifier si la variable a été correctement ajoutée à la fin de .bashrc déposer. Toutes les connexions SSH suivantes seront automatiquement fermées après 5 minutes d'inactivité à partir de maintenant.
$ queue .bashrc
Dans la capture d'écran ci-dessous, la session SSH distante de Drupal Machine au serveur Ubuntu via le compte Ubuntu_User a été chronométrée et auto-logout après 5 minutes.
Débrancher automatiquement les sessions SSHConfigurer le pare-feu Ubuntu UFW
Chaque serveur a besoin d'un pare-feu bien configuré afin de sécuriser le système au niveau du réseau. Ubuntu Server utilise Ufw Application pour gérer les règles iptables sur le serveur.
Vérifiez l'état de la demande de pare-feu UFW à Ubuntu en émettant les commandes ci-dessous.
$ sudo systemctl status ufw $ sudo ufw statusVérifiez l'état du pare-feu UFW
Habituellement, le démon du pare-feu UFW est opérationnel dans le serveur Ubuntu, mais les règles ne sont pas appliquées par défaut. Avant d'activer la politique du pare-feu UFW dans votre système, vous devez d'abord ajouter une nouvelle règle pour permettre au trafic SSH de passer par pare-feu via le port SSH modifié. La règle peut être ajoutée en exécutant la commande ci-dessous.
$ sudo ufw autoriser 2345 / TCP
Après avoir autorisé le trafic SSH, vous pouvez activer et vérifier la demande de pare-feu UFW avec les commandes suivantes.
$ sudo ufw activer le statut de $ sudo ufwOuvrez le port SSH et vérifiez
Pour ajouter de nouvelles règles de pare-feu pour d'autres services réseau installés par la suite sur votre serveur, tels que le serveur HTTP, un serveur de messagerie ou d'autres services réseau, utilisez les exemples de commandes de pare-feu ci-dessous comme guide.
$ sudo ufw autoriser http #allow http trafic $ sudo ufw autoriser le proto tcp de n'importe quel port 25 443 # autoriser le trafic HTTPS et SMTP
Pour répertorier toutes les règles de pare-feu exécutez la commande ci-dessous.
$ sudo ufw status verboseVérifiez les règles du pare-feu UFW Article associé: Comment configurer un pare-feu UFW sur le serveur Ubuntu
Définir l'heure du serveur Ubuntu
Pour contrôler ou interroger l'horloge du serveur Ubuntu et d'autres paramètres de temps connexes, exécutez la commande timeDatectl sans argument.
Afin de modifier les paramètres du fuseau horaire de votre serveur, exécutez d'abord Commande timeDatectl avec un argument List-TimeZones pour répertorier tous les fuseaux horaires disponibles et, ensuite, définissez le fuseau horaire de votre système comme indiqué dans l'extrait ci-dessous.
$ sudo timedatectl $ sudo timedatectl liste-timezones $ sudo timedatectl set-timezone europe / ViennaDéfinir le fuseau horaire Ubuntu
Le nouveau systemd-tmesyncd Systemd Daemon Client peut être utilisé dans Ubuntu afin de fournir un moment précis pour votre serveur sur le réseau et de synchroniser le temps avec un serveur de pairs supérieur.
Pour appliquer cette nouvelle fonctionnalité de Systemd, modifiez systemd-tmesyncd Fichier de configuration de démon et ajouter les serveurs NTP géographiquement les plus proches à la ligne d'instruction NTP, comme indiqué dans l'extrait de fichier ci-dessous:
$ sudo nano / etc / systemd / timesyncd.confli
Ajouter la configuration suivante à TimesyNCD.confli déposer:
[Temps] ntp = 0.piscine.NTP.org 1.piscine.NTP.org fallbackntp = ntp.ubuntu.comConfiguration du temps NTP
Pour ajouter vos serveurs NTP géographiquement les plus proches, consultez la liste des serveurs de projets de pool NTP à l'adresse suivante: http: // www.piscine.NTP.org / en /
Ensuite, redémarrez le démon TimesYNC SystemD pour refléter les modifications et vérifier l'état du démon en exécutant les commandes ci-dessous. Après le redémarrage, le démon commencera à synchroniser le temps avec le nouveau pair du serveur NTP.
$ sudo systemctl redémarrer systemd-tmesyncd.service $ sudo systemctl status systemd-tmesyncd.serviceService de début TimesYNCD
Désactiver et supprimer les services inutiles à Ubuntu
Afin d'obtenir une liste de tous les services réseau TCP et UDP à la sortie par défaut dans votre serveur Ubuntu, exécutez le SS ou commande netstat.
$ sudo netstat -tulpn ou $ sudo ss -tulpnListez tous les services en cours d'exécution
Regarder avec Ubuntu 16.dix libération, le résolveur DNS par défaut est désormais contrôlé par résolu service, comme révélé par la sortie de netstat ou Commandes SS.
Vous devez également vérifier le résolu État du service en exécutant la commande suivante.
$ sudo systemctl status systemd-résolu.serviceVérifier l'état résolu SystemD
Le résolu Le service se lie à toutes les interfaces réseau activées et écoute les ports 53 et 5355 TCP et UDP.
En cours résolu La mise en cache du démon DNS sur un serveur de production peut être dangereuse en raison du nombre d'attaques DDOS effectuées par des pirates malveillants contre les serveurs DNS non sécurisés.
Afin d'arrêter et de désactiver ce service, exécutez les commandes suivantes.
$ sudo systemctl stop systemd-résolu $ sudo systemctl désactiver systemd-résoluDésactiver le service résolu SystemD
Vérifiez si le service a été arrêté et désactivé en émettant SS ou commande netstat. Les ports d'écoute résolus Systemd, 53 et 5355 TCP et UDP, ne doivent pas être répertoriés dans la sortie de commande NetStat ou SS, comme illustré dans ce qui est ci-dessous.
Vous devez également redémarrer la machine afin de désactiver complètement tous les services de démon résolus Systemd et de restaurer la valeur par défaut / etc / résolv.confli déposer.
$ sudo ss -tulpn $ sudo netstat -tulpn $ sudo systemctl redémarrageVérifiez tous les services de course
Bien que vous ayez désactivé certains services de réseautage indésirables à exécuter dans votre serveur, il existe également d'autres services installés et exécutés dans votre système, comme LXC processus et snapd service. Ces services peuvent être facilement détectés via PS, TOP ou ptree commandes.
$ sudo ps aux $ sudo top $ sudo ptreeListe des services d'exécution au format d'arbre
Dans le cas où vous n'allez pas utiliser la virtualisation du conteneur LXC dans votre serveur ou commencer à installer un logiciel emballé via Snap Package Manager, vous devez complètement désactiver et supprimer ces services, en émettant les commandes ci-dessous.
$ sudo apt AutoreMove --purge lxc-common lxcfs $ sudo apt autoremove - purge snapd
C'est tout! Désormais, le serveur Ubuntu est désormais préparé pour installer des logiciels supplémentaires nécessaires aux services ou applications réseau personnalisés, tels que l'installation et la configuration d'un serveur Web, un serveur de base de données, un service de partage de fichiers ou d'autres applications spécifiques.
- « Comment installer LightTPD avec PHP, MARIADB et PHPMYADMIN à Ubuntu
- Comment cloner un serveur CentOS avec RSYNC »