Installation VPS CentOS

vps-centos

Le principe du VPS (Virtual Private Server) est de partitionner un serveur en plusieurs serveurs virtuels indépendants qui ont chacun les caractéristiques d'un serveur dédié, en utilisant des techniques de virtualisation.

Chaque serveur peut fonctionner avec un système d'exploitation différent et redémarrer indépendamment.

Nous allons voir comment configurer un Virtual Private Server. L'hébergeur sélectionné pour cet article est OVH.

La première chose à faire consiste à configurer le clavier en français. J'ignore pourquoi, mais lorsque OVH vous livre le VPS, il est configuré avec un clavier US (faire attention à cette subtilité pour vous connecter en KVM la première fois).

Pour commencer on charge le clavier français :

loadkeys fr

Puis on configure le clavier en français de manière permanente :

localectl set-keymap fr

Il convient ensuite de s'assurer que les paramètres de localisation sont bien présents dans le fichier /etc/environment.
Le fichier doit contenir les 2 lignes suivantes :

LANG=fr_FR.utf-8
LC_ALL=fr_FR.utf-8

Si vous voulez changer le nom de machine de votre VPS, voici la commande à lancer :

hostnamectl set-hostname <nom-de_machine>

On va ensuite faire la mise à jour de la distribution :

yum update

On va ensuite s'occuper de la configuration SELinux. Par défaut OVH livre ses VPS CentOS avec SELinux désactivé, nous allons donc remédier à çà. On ouvre donc le fichier /etc/sysconfig/selinux et on remplace SELINUX=disabled par SELINUX=enforcing. Le fichier résultant ressemblera donc à çà :

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Afin de valider ce changement, le serveur devra être relancé.

Après le redémérrage on pourra vérifier que SELinux est actif avec la commande :

getenforce

La réponse devra être : Enforcing.

Jusqu'à présent, on a effectué toutes les opérations avec l'utilisateur root. Il est temps de passer à la création d'un utilisateur, ce qui nous permettra de sécuriser ensuite les accès SSH.

adduser <nom-utilisateur>

Une fois l'utilisateur créé, il faut lui attribuer un mot de passe :

passwd <nom-utilisateur>

Si vous souhaitez que cet utilisateur puisse exécuter des commandes via sudo, vous pouvez exécuter la commande suivante pour l'ajouter au groupe wheel :

gpasswd -a <nom-utilisateur> wheel

La prochaine étape va consister à sécuriser l'accès ssh.

Pour cela on va commencer par changer quelques paramètres dans le fichier /etc/ssh/sshd_config :

On commence par changer le port par défaut. Je vous laisse le soin de remplacer <port> par le port de vore choix qu'il ne faudra pas oublier d'ouvrir au niveau du firewall.

Port <port>

Ensuite on va sélectionner le protocole utilisé par sshd :

Protocole 2

Ensuite, nous allons nous assurer qu'il faille utiliser un utilisateur pour se connecter. Attention ici, PermitRootLogin yes est en commentaire, on pourrait donc supposer qu'il est désactivé. C'est nullement le cas. Il faut explicitement indiquer PermitRootLogin no pour que le paramètre soit pris en compte.

PermitRootLogin no

C'est suffisant dans un premier temps. Nous allons faire en sorte que ces paramètres soient pris en compte en rechargeant la configuration du daemon ssh puis en modifiant la configuration du pare-feu. Il ne faut pas tout faire en même temps au risque de se voir refusé l'accès SSH. Si c'est le cas, n'oubliez pas que vous pouvez toujours vous connecter sur votre machine par le KVM disponible dans l'espace client.

On commence par ouvrir le nouveau port dans le firewall :

sudo firewall-cmd --permanent --zone=public --add-port=<port>/tcp

On referme le port ssh standard :

sudo firewall-cmd --permanent --zone=public --remove-service=ssh

Puis on recharge la configuration du firewall avec un :

sudo firewall-cmd --reload

On informe SELinux du changement de port :

sudo semanage port -a -t ssh_port_t -p tcp <port>

On peut maintenant recharger la configuration du serveur SSH :

sudo systemctl reload sshd.service

Nous allons compléter les paramètres de notre serveur ssh avec un niveau de sécurité supplémentaire.
Premièrement, nous allons autoriser seulement notre utilisateur à se connecter :

AllowUsers <utilisateur>

Ensuite, nous allons réduire le nombre de tentatives de connexion possibles :

MaxAuthTries 3

On recharge à nouveau la configuration du serveur SSH :

sudo systemctl reload sshd.service

Et notre serveur SSH se trouve maintenant à l'abris des attaques les plus grossières.

Aucun commentaire

No module Published on Offcanvas position