Le serveur VPS

Dans cet article je vais vous expliquer comment installer le nécessaire pour un serveur web avec apache. Ce type de serveur peut accueillir une installation WordPress. Vous aurez besoin d’une base de données, le serveur apache et quelques logiciels pour sécuriser votre serveur.

Il faut posséder de bonnes compétences en informatique pour assumer la gestion d’un serveur utilisant Linux et des logiciels qui tourneront dessus (base de données, serveur apache…). Cela prends du temps et vous êtes responsable de la sécurité de ce serveur.

Il existe deux types de serveurs :

  • Les serveurs dédiés qui sont une machine complète. Ce type d’abonnement coûte très chère et il est plutôt destiné à des entreprises qui possède un site avec un gros trafic.
  • Les VPS, ce sont des machines virtuelles (une partie des ressources d’un serveur vous est alloué et vous l’utiliser comme si c’était une machine classique). ce type d’abonnement est moins chère et permet d’avoir de meilleures performances qu’avec un hébergement mutualisé.

Cet article vous explique la création du serveur mais pas l’installation de WordPress sur un VPS, l’installation fera l’objet d’un prochain article. L’OS utilisé pour ce tutoriel est Debian, il faudra vous renseigner pour les autres OS.

Qu’est ce qu’un VPS

Un vps est un serveur virtuel. Contrairement à un hébergement web simple vous allez gérer en plus de votre site internet, votre propre serveur. Vous devrez donc faire les mises à jour des logiciels de votre serveur.

Les avantages et inconvénients

Les avantages

Avoir son propre serveur donnent plusieurs atouts :

  • Vous installez les logiciels que vous souhaitez
  • Vous avez plus de puissance disponible (plus adapté pour les gros sites)
  • Vous pouvez aussi utiliser certaines technologies indisponibles avec un hébergement mutualisé comme NodeJs par exemple
  • Vous pouvez utiliser des scripts et des fonctions personnalisés selon vos besoins.
  • Vous pouvez héberger plusieurs sites sur un même serveur.

Les inconvénients

  • Il faut avoir de bonnes compétences en informatiques pour gérer un serveur
  • Ça prends du temps de gérer un serveur, vous devez être disponible.
  • Si le serveur a un problème vous devez vous en occuper vous même
  • Il faut s’en occuper régulièrement, penser à faire les mises à jour.
  • Vous pouvez faire des erreurs et rendre indisponible votre site
  • Tout est en ligne de commande. Ce système peut être intimidant pour un débutant

Pour pouvoir gérer correctement votre serveur vous devez posséder de nombreuses compétences informatiques généralement réservées aux développeurs ou aux administrateurs de serveur. c’est une occupation particulièrement chronophage. Si vous possédez une entreprise, il vaut mieux déléguer cette activité à une personne ou un service spécialisé.

Accéder à votre serveur

Pour accéder à votre serveur via votre pc il va falloir un logiciel pour avoir un terminal et accéder au serveur en mode console. Sous Linux, l’émulateur de terminal est déjà disponible sur toutes les installation de bureau mais ce n’est pas le cas de Windows. Dans ce cas installer le logiciel putty.

Pour plus d’information allez sur ce lien https://lecrabeinfo.net/se-connecter-en-ssh-a-un-serveur-distant-windows.html.

La commande pour accéder au serveur est :

ssh root@ip.du.serveur

Ce qui donne par exemple :

ssh root@456.859.6.78

Il suffit ensuite de taper le mot de passe qui sera fourni par votre hébergeurs lors de votre commande.

Créer un utilisateur

Il est important de créer un utilisateur qui ne soit pas administrateur sur votre serveur. Ça permet d’éviter des problèmes de sécurité en ayant un utilisateur trop privilégié qui aura le contrôle total de la machine.

Pour ajouter un utilisateur à votre serveur:

adduser toto

À la suite de cette commande un nom d’utilisateur et quelques informations seront demandé ainsi qu’un mot de passe pour cet utilisateur.

Les logiciels à installer

Pour installer un logiciel on utilise la commande sudo apt-get install nom-du-logiciel

Pour WordPress ou un site internet utilisant PHP :

  • maria-db-server ou mysql-server : base de donnée SQL de vos sites obligatoire pour WordPress ou un autre CMS
  • apache2 : le serveur web qui fera tourner votre site internet
  • ufw : le pare-feu qui va protéger votre serveur de certaines intrusion
  • fail2ban : Protège les connexions à votre serveurs
  • libapache2-mod-php : permet à Apache d’interpréter du php.

Configuration du serveur

Installer et configurer Apache :

  • sudo apt install apache2 → installation sur debian et ubuntu
  • sudo dnf install apache2→ installation sur redhat, centos …
  • Lancer apache au démarrage de la machine sudo systemctl enable apache2
  • Démarrer apache : sudo systemctl start apache2
  • Démarrer apache : sudo systemctl start apache2
  • Activer le module php : a2enmod libapache2-mod-php
  • Redémarrer apache : /etc/init.d/apache2 restart

    Installer le logiciel de base de données :

    Le logiciel de base de donnée que j’utilise dans cet article est mariadb c’est la version libre du logiciel mySQL pour la création et la gestion de des bases de donnée pour vos sites.

    Configurer mariadb :

    sudo mysql_secure_installation -> débuter l’installation Répondre yes à toutes les questions. 3 niveaux de mot de passe LOW=0 MEDIUM=1 HIGH=2

    Configurer un utilisateur :

    • sudo mysql mysql >ALTER USER ‘root@localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; → créer le mot de passe root
    • CREATE USER ‘USERNAME’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ‘password’; → création d’un utilisateur avec un mot de passe

    Création de la base de données

    sudo mysql -u utilisateur -p
    CREATE DATABASE nom_de_la_base;
    

    Le contenu de la base de donnée sera crée automatiquement lors de l’installation de WordPress.

    Les répertoires d’Apache :

    • /etc/apache2/mods-available → listes les modules disponible
    • /etc/apache2/mods-enabled → listes les modules actifs dans apache
    • /etc/apache2/sites-available → les sites hébergé sur le serveur
    • /etc/apache2/sites-enabled → les sites activés par des liens symboliques

    Configurer son site internet

    VirtualHost

    Créer un virtual host permet d’ouvrir l’accès à son site internet. Le nom du fichier est ainsi monsite.com.conf, il est placé dans le répertoire : /etc/apache/sites-available.

    Vous y trouverez le fichier 000-default.conf, vous pouvez vous en inspirer pour créer votre propre fichier virtual host.

    Le fichier Virtual Host :

    <Virtual Host *:80>
    	ServerAdmin admin@localhost → admin du site
    	ServerName nomdusite.com → nom du site
    	ServerAlias www.nomdusite.com → nom du site alias
    	DocumentRoot var/www/nomdusite/index.html → index du site
    	<Directory>
    		option Index Follow SymLink → suis les liens symbolique
    		AllowOverride All → permet d’activer le .htaccess
    		Require all granted → autorise tous le monde
    	</Directory> 
    </Virtual Host>
    

    Activer/désactiver son site

    Pour activer un site : a2ensite monsite.com (il sera alors visible)

    Pour désactiver un site : a2dissite monsite.com

    Après avoir fait ces commandes on doit redémarrer apache avec la commande service apache2 reload

    Mettre le https

    Aujourd’hui il est important pour les sites internet d’être mieux sécurisé. Le https certifie qu’une communication entre un navigateur internet et un site est chiffrée donc sécurisé. Pour cela vous devez avoir un certificat pour mettre en place le https sur votre site.

    Pour le mettre en place il faut un logiciel comme certbot, pour l’installer utiliser la commande sudo apt-get install certbot.

    Pour configurer le certificat faire :

    • sudo cerbot --apache -> créer le certificat et configure apache pour mettre le https. Il sera renouvelé automatiquement.
    • sudo cerbot renew --dry-run -> teste le renouvellement automatique du certificat.

    Pour le faire de manière manuelle :

    • sudo certbot certonly --apache -> Créer le certificat mais ne met pas en place le renouvellement
    • sudo certbot renew -> lance le renouvellement manuel du certificat.

    Sécuriser son serveur

    Pare-feu

    Installer ufw → pare-feu linux

    • sudo ufw allow 21/tcp → ouvre le port 21 en tcp → utilisé pour le ftp (si besoin pour transférer des fichiers)
    • sudo ufw allow 80 → ouvre le port 80 pour l’accès http aux visiteurs d’un site
    • sudo ufw allow 22 → ouvre le port 22 pour l’accès ssh, il est important de garder ce port ouvert pour que vous accédiez à votre serveur (on peut aussi transférer des fichiers).
    • sudo ufw allow 443 → ouvre le port 443 pour l’accès https aux visiteurs d’un site
    • sudo ufx status -> vérifie les réglages du pare-feu ufw

    Liste de ports utilisés

    • port 80 → utilisé par apache pour rendre accessible un site internet via http
    • port 443 → port https pour offrir un accès sécurisé au site internet
    • port 21 → port ftp pour transférer vos fichier via ftp
    • port 22 → port ssh on peut donner des instructions au serveur et transférer des fichiers via sftp (transfert de fichiers via ssh)

    Protéger les connexions avec fail2ban

    Fail2ban est un logiciel qui permet de bannir les IP suspectes qui tente de se connecter à votre serveur. Si la machine qui tente de se connecter se trompe de mot de passe ou d’identifiant elle est est bannis pendant une certaine durée (que vous décidez vous même dans le fichier jail.conf)

    Pour bloquer une ip il faut :

    • Aller à la ligne maxretry = 5, pour modifier le nombre de tentatives maximum avant de bannir une adresse ip
    • Aller à la ligne bantime = 10m, pour modifier la durée de bannissement d’une adresse ip (m pour minute s pour secondes)
    • Aller à la ligne findtime = 10m, pour modifier le temps maximum pendant lequel on peut faire des tentatives de connexion. Compté à partir de la première tentative de connexion (m pour minute s pour secondes)

    Ce type de protection permet de se protéger des attaques dites bruteforce (essayer des millers d’identifiants et de mot de passe pour trouver le bon) .

    Il n’est pas utile de modifier le fichier fail2ban.conf.

    Pour conclure

    Faire son propre serveur a de nombreux avantages comme de plus grandes performances (on gère une machine complète) et une meilleur flexibilité. Cependant il faut savoir que l’on est seul maître de sa machine. On doit donc gérer soi-même la sécurité de la machine, la sécurité de son site et les mises à jour des deux. Il faut non seulement avoir de bonnes compétences en informatique mais aussi avoir suffisamment de temps pour le faire. Ce n’est donc pas une solution à conseiller à tout le monde.

    Cependant si vous faite ça pour un petit site personnel, vous gagnerez de nombreuses compétences en apprenant à gérer votre propre serveur.

    Laisser un commentaire