Présentation
Le système CentOS 7 est très différent de ses prédécesseurs plus anciens. Avec n'importe quel serveur, l'objectif principal doit toujours être la sécurité. De nombreux utilisateurs sont victimes d'infiltrations malveillantes sur leurs serveurs en raison du manque de barrières de sécurité établies depuis le début. Commençons sur le bon chemin en posant nos fondations avec sécurité. Ce tutoriel vous aidera dans votre configuration initiale sur CentOS 7 afin que vous puissiez sécuriser avec succès votre serveur tout en vous donnant la tranquillité d'esprit de savoir que votre serveur est protégé.
De quoi avez-vous besoin ?
Vous avez besoin d'un serveur CentOS 7 configuré avec une adresse IP statique. Si vous n'avez pas encore de serveur, envisagez un serveur de qualité supérieure d'Atlantic.net et soyez opérationnel en moins de 30 secondes.
Préparation du serveur
Pour commencer, connectez-vous à votre serveur CentOS 7 via SSH ou la console VNC située ici. Les serveurs Atlantic.Net Cloud sont configurés comme des installations minimales pour éviter que des packages inutiles ne soient installés et ne soient jamais utilisés. Si certains packages logiciels que vous avez l'habitude d'utiliser ne sont pas installés par défaut, n'hésitez pas à les installer si nécessaire.
Assurons-nous que votre serveur est entièrement à jour.
yum update
Nous pouvons continuer le processus et sécuriser votre serveur avec le serveur à jour.
Mettre à jour le mot de passe racine CentOS 7
Tapez la commande suivante pour activer votre demande et suivez les instructions à l'écran pour mettre à jour/confirmer votre mot de passe root :
passwd
Créer un nouvel utilisateur avec les privilèges sudo
Après avoir mis à jour votre mot de passe avec succès, il est recommandé de créer un nouvel utilisateur avec les autorisations sudo/root. Étant donné que l'utilisateur administrateur typique pour de nombreux systèmes d'exploitation Linux comme CentOS 7 est "root", nous allons créer un nouvel utilisateur administrateur qui sera utilisé pour les tâches d'administration quotidiennes. La création d'un nouvel utilisateur avec des autorisations root augmentera la sécurité d'accès à votre serveur. Les utilisateurs indésirables ciblent l'utilisateur root car ils savent qu'il s'agit de l'utilisateur administrateur par défaut. Néanmoins, lorsque vous créez un nouvel utilisateur avec des autorisations sudo/root, puis que vous désactivez l'utilisateur root par défaut, il ne saura jamais avec quel utilisateur se connecter.
Tapez la commande suivante pour créer votre nouvel utilisateur en remplaçant "user1" par votre nom d'utilisateur et confirmez.
adduser user1
Créez un mot de passe pour cet utilisateur en saisissant la commande suivante pour activer votre demande et en suivant les instructions à l'écran pour mettre à jour/confirmer votre mot de passe "user1" :
passwd user1
Une fois que vous avez créé un nouvel utilisateur et le mot de passe, il est temps d'ajouter l'utilisateur au groupe sudo wheel. Dans CentOS 7, une fois que vous les ajoutez au groupe sudo wheel, des autorisations sudo/root leur sont automatiquement attribuées. Exécutez la commande suivante pour ajouter l'utilisateur au groupe sudo wheel.
gpasswd -a user1 wheel
Enfin, lorsque vous avez créé l'utilisateur avec les autorisations sudo/root, vous pouvez quitter votre session et vous reconnecter avec votre "user1" pour vérifier les modifications apportées. Alternativement, vous pouvez exécuter la commande suivante et basculer les utilisateurs de root vers "user1", qui vous demandera le mot de cet utilisateur.
su - user1
Configurer l'accès SSH
Le port 22 est le port par défaut pour les connexions à distance via SSH dans les systèmes Linux. En changeant le port ssh, vous augmenterez la sécurité de votre serveur en empêchant les attaques par force brute et les utilisateurs indésirables d'atteindre votre serveur en utilisant le port par défaut. Pour ce tutoriel, j'utiliserai le port 5022 comme exemple.
Ouvrez votre fichier de configuration SSH, recherchez la ligne Port, supprimez le # et remplacez le numéro 22 par votre port personnalisé. Enregistrez et quittez.
sudo vi /etc/ssh/sshd_config
#Port 22 Port 5022
Pour que votre système mette à jour les paramètres du fichier de configuration SSH, nous devons redémarrer sshd.
sudo systemctl restart sshd.service
SSH a maintenant été configuré pour utiliser le port 5022, et si vous tentez de vous connecter à l'aide du port 22, votre gin échouera. Cependant, ne quittez pas votre session car nous devons d'abord configurer le port personnalisé sur la partie de configuration des pare-feu, que nous configurerons dans les étapes à venir.
Limiter l'accès racine
Étant donné que nous avons approuvé un nouvel utilisateur avec des autorisations root et créé un port ssh personnalisé, gardez l'utilisateur root réel disponible et vulnérable via SSH sur votre serveur. Restreignons l'accès de l'utilisateur root au serveur local et accordons l'autorisation au nouvel utilisateur uniquement via SSH.
Ouvrez le fichier de configuration SSH, trouvez la ligne PermitRootLogin, supprimez le # et changez-le de oui à non.
sudo vi /etc/ssh/sshd_config
#PermitRootLogin yes PermitRootLogin no
Pour que votre système mette à jour les nouveaux paramètres dans le fichier de configuration SSH, nous devons redémarrer le service sshd.
sudo systemctl restart sshd.service
Remarque :L'utilisateur root sera désormais désactivé pour effectuer ces modifications. Vous devez donc vous connecter à votre serveur avec le "chapeau" d'utilisateur que vous avez créé. Cependant, ne quittez pas votre session; nous devons configurer le port personnalisé sur le pare-feu dans les prochaines étapes.
Créer une clé SSH privée
Clés SSH privées/publiques sont d'excellentes fonctionnalités supplémentaires qui augmentent la sécurité dans la méthode d'un serveur. Cependant, la mise en place demande un peu plus d'efforts. La question est :votre serveur vaut-il la sécurité supplémentaire ? Si vous souhaitez implémenter les fonctionnalités de sécurité suivantes, vous pouvez passer aux étapes suivantes. Continuons et générons la clé SSH.
ssh-keygen
Si vous souhaitez modifier l'emplacement où la clé SSH sera enregistrée, vous pouvez le spécifier ici. Cependant, l'emplacement par défaut où il est stocké devrait être OK. Appuyez sur Entrée lorsque vous êtes invité à répondre à la question suivante, puis saisissez une phrase de passe, sauf si vous n'en voulez pas.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Il s'agit de la page par défaut lors de l'installation de clés SSH sur un serveur CentOS 7
La configuration de la clé SSH est cruciale. Nous devons copier l'intégralité de la chaîne de clé dans un document Word/Bloc-notes. La clé peut être visualisée à l'emplacement suivant avec la commande cat.
cat ~/.ssh/id_rsa.pub
Copiez la clé SSH, en commençant par ssh-rsa et en terminant par [email protected], dans un document Word/Notepad pour l'ajouter ultérieurement au fichier de configuration.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNcnc3pMOytM7xgwZHUX0Wi/O78hDvLUmQVtKn8Qk1ijBY82jVftKXKRhf8toNkgm9jaZmfapLa7ynzUG4jbFjyy8H+iEs1R8P7eu+e8/fmGwjorbMFuWdoi7h2CldoqKTdMEb/dMNxjNMzBbovl3XtZviQGm4/TMVO1hHxy85JR8zAtNFu7liaP7IonexNrOGhY8CjqRcBsceQLkl1MlX7cWaWAMqd6jQnAvggTLerI9P286AP8Sk4uColj7GKOljj8X6J/2pcjp9v2IvJOqwC/zLwUKZ6qTEV6SrfdbjopoCVvpXkVhmcbHX5Xv1gwynO+vTkpPFwVTjSnAai71L [email protected]
Une fois la clé SSH stockée en toute sécurité, le répertoire des clés SSH nécessite des autorisations limitées, que seul le propriétaire peut lire, écrire et exécuter le fichier.
chmod 700 .ssh
Dans le répertoire SSH, un fichier contenant la clé SSH doit être ajouté, simplement à l'aide de votre éditeur (dans ce cas VI) à l'emplacement suivant :
vi .ssh/authorized_keys
Collez la clé SSH, puis enregistrez et quittez en utilisant le format VI.
Enfin, nous devons limiter les autorisations du fichier authorized_keys que nous venons de créer afin que seul le propriétaire puisse lire et écrire.
chmod 600 .ssh/authorized_keys
Nous pouvons maintenant vérifier que la clé fonctionne en fermant la session et en tapant [email protected] ou vos serveurs hébergés dans votre console SSH. De plus, vous pouvez cliquer "ici" pour" voir notre article Comment générer et utiliser des clés SSH pour plus d'informations.
Règles de base du pare-feu
sudo systemctl start firewalld
Ensuite, nous ajouterons une règle pour autoriser le port SSH personnalisé 5022 créé précédemment à accéder publiquement au serveur. Dans le même temps, nous supprimerons la règle par défaut précédente autorisant l'accès SSH sur TCP/22.
sudo firewall-cmd --permanent --add-port=5022/tcp
sudo firewall-cmd --permanent --remove-service=ssh
Si vous disposez d'un serveur Web, vous pouvez autoriser les règles suivantes à accéder à vos sites via Internet.
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
Vous pouvez l'utiliser pour des règles similaires liées à tous les systèmes que vous souhaitez rendre accessibles au public. Ce serveur de test est configuré pour héberger un site Web et des services de messagerie. En plus des règles SSH et HTTP(S) mises à jour, des règles supplémentaires pour POP3, IMAP et SMTP sécurisés ont été ajoutées.
sudo firewall-cmd --permanent --add-service=pop3s sudo firewall-cmd --permanent --add-service=imaps sudo firewall-cmd --permanent --add-service=smtp
Pour que Firewalld accepte ces paramètres, vous devez redémarrer le pare-feu.
sudo firewall-cmd --reload
Vos paramètres auront été enregistrés et vous êtes prêt à continuer.
Pour vérifier tous les services/ports disponibles, exécutez ce qui suit :
sudo firewall-cmd --permanent --list-all
Ceci est la page par défaut après avoir configuré les règles Firewalld sur un serveur CentOS 7
Synchronisation horaire NTP
Le NTP (Network Time Protocol) est utilisé pour synchroniser l'heure et la date des ordinateurs sur le réseau afin de rester précis et à jour. Commençons par installer le NTP (s'il n'a pas été installé) et configurons le service pour qu'il se synchronise avec leurs serveurs.
sudo yum install ntp
Une fois le service NTP installé, nous devons nous assurer que le service est activé.
sudo systemctl start ntpd
Maintenant que le service a démarré, permettons au serveur NTP de mettre à jour les serveurs à partir du serveur NTP en permanence.
sudo systemctl enable ntpd
Ajouter un fichier d'échange
Un fichier Swap est simplement une petite quantité d'espace créée sur un disque dur de serveur pour simuler Ram. Si le serveur manque de mémoire, il examinera le disque dur et allégera la charge en faisant croire au système qu'il a plus de mémoire. Nous allons configurer le fichier d'échange sur le disque dur pour augmenter un peu plus les performances du serveur.
Commencez par vérifier vos ressources pour vous assurer que nous pouvons ajouter le fichier. Lorsque vous exécutez la commande suivante, vous verrez le pourcentage d'espace actuellement utilisé sur votre disque dur.
df -h
Lors de la création d'un fichier d'échange, vous souhaitez généralement ajouter la moitié de votre RAM existante jusqu'à 4 Go (si vous disposez de 1 Go de RAM réelle, vous ajoutez un fichier de 512 Mo). Dans cette partie, j'ajouterai un fichier d'échange de 512 Mo au lecteur. La façon dont cela est calculé est de 1024 x 512 Mo =524288 taille de bloc.
sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288
Maintenant que nous avons ajouté un fichier d'échange, une zone doit être créée pour continuer.
sudo mkswap /swapfile
Une fois le fichier d'échange créé et la zone de fichier d'échange ajoutée, nous pouvons ajouter des autorisations au fichier afin que seul le propriétaire puisse lire et écrire.
sudo chown root:root /swapfile sudo chmod 0600 /swapfile
Maintenant que le fichier d'échange dispose des autorisations appropriées, nous pouvons continuer et l'activer.
sudo swapon /swapfile
Vous pouvez vérifier votre fichier Swap nouvellement ajouté avec ce qui suit.
sudo swapon -s
Pour rendre le fichier Swap toujours actif même après un redémarrage, nous devons le configurer en conséquence.
sudo vi /etc/fstab
Collez la commande suivante au bas du fichier, enregistrez votre travail et quittez.
/swapfile swap swap defaults 0 0
Enfin, vérifiez si votre fichier d'échange est activé en tapant la commande suivante :
free -m
Il s'agit de la page par défaut après la création d'un fichier d'échange sur un serveur CentOS 7
Et ensuite ?
Avec cela, vous avez maintenant un serveur avec une base de sécurité solide, vous donnant la tranquillité d'esprit en sachant que votre serveur est protégé. Vous pouvez maintenant procéder à la construction de votre plateforme selon vos besoins. Merci de nous avoir suivi et n'hésitez pas à revenir vers nous pour d'autres mises à jour.
En savoir plus sur nos services d'hébergement VPS et le prix de l'hébergement VPS.