Guide pour protéger un serveur VPS avec Linux

Table des matières

UNE Serveur VPS (Serveur Privé Virtuel), C'est une partition logique d'un disque dur via une machine virtuelle, un vps nous donne plus de contrôle sur la gestion des ressources par rapport au service de serveur partagé.

Un VPS est idéal pour ceux qui veulent utiliser un serveur de manière professionnelle mais à moindre coût qu'un serveur dédié et aussi pour ceux qui veulent se lancer et faire des tests dans l'administration de serveurs, mais ne sont pas sûrs des aspects techniques, le VPS serveur est une bonne option pour commencer. Il peut être utilisé pour tester des outils et des compétences sans dépenser trop d'argent et sans mettre en danger un serveur de production.

Nous pouvons créer un VPS comme vu dans le tutoriel :

  • Créer un serveur VPS local

Ou utilisez certains paiements, il existe de nombreuses entreprises qui proposent des serveurs VPS par mois ou par jour, comme DigitalOcean, pour tester les configurations dans un environnement réel.

La chose la plus importante lorsque nous devons administrer un serveur est de décider quelles mesures de sécurité nous adopterons seront nécessaires. Bien qu'il existe de nombreuses mesures et outils de sécurité, ils peuvent également être contre-productifs car ils consomment des ressources et peuvent ne pas permettre à certaines applications de bien fonctionner, nous devons donc être conscients des risques, des besoins pour pouvoir décider de l'équilibre entre facilité, performances et sécurité du serveur.

Dans ce tutoriel, je vais fournir une série de configurations recommandées pour un VPS sécurisé

Blocage d'accès avec pare-feu
Les pare-feu agissent comme une barrière entre le trafic Internet général et le serveur. Il est important d'examiner, de filtrer et de bloquer le trafic interne et externe.

Grâce à un ensemble de règles configurées par l'administrateur, un serveur n'utilisera que des ports réseau spécifiques pour les services autorisés. Le reste des ports n'a pas été utilisé, et doit être protégé en toute sécurité derrière un pare-feu, pour interdire tout trafic destiné à ces endroits.

Pour ce tutoriel, nous supposerons que nous gérons un serveur Linux VPS pour adopter des mesures de sécurité. Pour établir des règles de pare-feu de base, nous devons d'abord suivre les ports que nous avons ouverts, pour cela, nous utilisons la commande :

 ifconfig
On détermine l'ip :
 nmap -sT -O 192.168.0.11

Cela permet de savoir quels ports sont à l'écoute et de conditionner l'utilisation des services dans certains cas. Bien configurer les règles de notre firewall est une bonne base pour la sécurité du serveur et du réseau.

Il existe de nombreux pare-feu disponibles, certains sont :

  • Pare-feu IPCop
  • Sécurité et pare-feu de ConfigServer

Le pare-feu le plus utilisé est Iptables qui vient déjà avec Linux, mais il n'a pas d'interface graphique, depuis la fenêtre du terminal (connecté via SSH) nous pouvons utiliser les commandes suivantes :

Bloquer une IP entrante donnée :

 sudo iptables -A INPUT -s 190.160.45.60 -j DROP
Bloquer une IP entrante et un port par interface réseau ethernet ou réseau filaire :
 iptables -A INPUT -i eth0 -s 190.160.45.60 --destination-port 25 -j DROP
Je bloque une IP entrante mais par WiFi :
 iptables -A INPUT -i wlan0 -s 190.160.45.60 -j DROP
Si je supprime le paramètre IP -s et quitte le port, je bloque le port pour n'importe quelle IP

Iptables est l'outil utilisé pour gérer le pare-feu netfilter inclus dans le noyau Linux. L'avantage d'Iptables est qu'il a subi des audits de sécurité très approfondis pour s'assurer qu'il fonctionne et qu'il est utile.

Un autre aspect intéressant est que nous pouvons créer un script ou une interface pour définir les règles pour iptables, bien qu'il en existe déjà beaucoup qui peuvent vous permettre de configurer avec des ensembles de règles de manière très flexible.

Utilisez SSH en toute sécurité pour l'administration à distance
Lorsque nous devons gérer un serveur auquel nous n'avons pas d'accès local, nous devons le faire à distance. Pour cela, le service est utilisé via un protocole appelé SSH, qui signifie Secure Shell, qui permet de gérer complètement le serveur au moyen d'un interpréteur de commandes,

SSH offre la possibilité de créer et de maintenir un tunnel de trafic entre l'ordinateur et le serveur afin qu'une connexion sécurisée soit établie lorsque le tunnel transmet des données via une connexion cryptée.

Bien que le protocole lui-même soit très sécurisé et ait été largement analysé et testé en matière de sécurité, nous pouvons ajouter quelques options de configuration pour le rendre plus sécurisé, telles que changer le port car par défaut le port de connexion SSH est le port 22, pour cela nous nous connectons via SSH puis éditons le fichier :

 /etc/ssh/sshd_config
Nous nous connectons à l'aide de la commande suivante :
 ssh utilisateur @ ip

Ensuite, nous éditons le fichier et changeons le port en un autre à notre goût qui n'interfère avec aucun service, par exemple 9200 :

 nano/etc/ssh/sshd_config

Nous enregistrons et on redémarre SSH afin qu'il adopte la nouvelle configuration, selon la distribution linux :

Fedora, Centos

 sbin / service sshd redémarrage
Debian, Ubuntu
 /etc/init.d/sshd redémarrer
Ensuite, nous devrons accéder à nouveau, nous le ferons comme suit:
 ssh utilisateur @ ip -p 9200
Ensuite, nous bloquons le port 22 de cette manière, ils ne pourront pas nous scanner et tenter une attaque par force brute.
 iptables -A SORTIE -p tcp --dport 22 -j DROP
Installer un IPS ou système de prévention d'intrusion
Un système de prévention des intrusions est un logiciel qui vous permet de surveiller et de contrôler l'accès sur un réseau informatique pour protéger des ressources ou un serveur contre les attaques et les intrusions. La technologie de prévention des intrusions est un complément essentiel à un système de détection d'intrusions (IDS), tandis qu'un IPS fonctionne comme un pare-feu tandis qu'un IDS analyse quel type de trafic circule sur le réseau, mais vérifie également le contenu et ce que fait ce contenu.

Un exemple est Fail2Ban, c'est une application développée sous Python pour la prévention des intrusions, c'est un IPS, qui agit automatiquement en analysant et en bloquant les connexions distantes qui tentent un accès par force brute.

Fail2ban utilise non seulement son propre journal des tentatives d'accès, il utilise également les journaux d'autres logiciels tels que iptables, qui spécifient les règles pour pouvoir appliquer un verrou.

Vous pouvez utiliser des règles créées par l'administrateur ou en créer de nouvelles selon votre propre configuration, par exemple bloquer une IP qui n'a pas réussi à accéder 3 fois.

Nous pouvons depuis une fenêtre SSH ou le télécharger depuis son site officiel, s'il vient dans les référentiels de notre distribution nous l'installons.

 apt-get installer fail2ban
Puis on le configure en éditant le fichier suivant :
 nano /etc/fail2ban/jail.conf

Ici, nous éditons certains des paramètres les plus importants

  • ignoreip : ip qui ne sera jamais bloquée.
  • bantime : temps en secondes que durera le bloc IP.
  • maxretry : nombre maximum de tentatives d'accès infructueuses avant d'être bloqué.

Ensuite, nous pouvons créer des filtres pour différentes applications que nous pouvons trouver dans le répertoire :

 cd /etc/fail2ban/filter.d

Ce système de prévention des intrusions nous permettra de mitiger de nombreuses attaques et ainsi d'augmenter la sécurité générale de notre configuration VPS.

Fail2ban est un service qui surveille les fichiers journaux afin de déterminer si un accès est un utilisateur légitime et sinon pour bloquer temporairement le trafic de l'adresse IP associée à l'utilisateur qui a l'intention d'accéder à certains services, que ce soit ftp, ssh, email, Internet, etc

C'est un moyen facile de bloquer automatiquement les méthodes de force brute, car le bloquer entraînera l'arrêt de l'attaque aussi longtemps que nous l'indiquons. C'est généralement suffisant pour décourager d'autres tentatives de force brute.

Mettre en œuvre un système de détection d'intrusion ou IDS
Un système de détection d'intrusion, ou IDS, est le complément obligatoire d'un système de prévention d'intrusion. Un IDS détecte les modifications de fichiers ou d'enregistrements en exécutant des comparaisons Par rapport à ces états préalablement enregistrés pour savoir si les fichiers ont été modifiés ou si une configuration a été modifiée et pour enregistrer quel utilisateur l'a fait.

Il existe de nombreux IDS comme Snort, que nous avons vu dans le tutoriel :

  • Outils de prévention et de sécurité des pirates
Suricate que nous avons vu dans le tutoriel :
  • Système de détection d'intrusion Suricata
Tripwire que nous avons vu dans le tutoriel :
  • Renforcement de la sécurité des serveurs et des systèmes d'exploitation.

Ces outils utilisent une base de données de fichiers système et protègent les fichiers de configuration. En configurant des règles et des exceptions, vous définissez les fichiers à protéger et ce qui doit être signalé, de sorte que lorsque vous commencez à surveiller le système, vous puissiez revoir les exécutions et toute modification des fichiers surveillés.

Tous les outils peuvent être configurés pour vérifier automatiquement avec cronjob de temps en temps et même mettre en œuvre des notifications par e-mail en cas d'activité inhabituelle.

Si on prend Snort par exemple, on l'installe depuis les dépôts :

 apt-get install snort

Ensuite, nous allons dans le répertoire où se trouvent les fichiers de règles :

 cd/etc/sniffer/règles

Par exemple, regardons le fichier mysql.rules

 nano mysql.rules
Où nous voyons spécifié que tout accès utilisateur externe ou root au service MySQL doit être informé.

Un autre exemple est, par exemple, la surveillance des programmes de chat à la fois depuis le serveur ou depuis un ordinateur du réseau ou depuis un ordinateur externe qui utilise notre serveur.

 nano chat.règles 

Nous pouvons également configurer chaque fichier de règles pour détecter les téléchargements depuis un navigateur ou l'accès à un service, la modification d'un fichier ou d'une page web spécifique.

Suricata est plus moderne que Snort et Tripwire, car il fonctionne comme un moteur de renifleur pour analyser le trafic entrant et sortant d'un système réseau. Cependant, l'analyse et la détection des intrusions sont gourmandes en ressources en faisant la double fonction d'IDS et d'IPS.

Il dispose également de plugins pour attribuer des règles et analyser de nombreuses applications et programmes. Suricata fonctionne sur toutes les couches du modèle OSI.

Recherchez les virus et les logiciels malveillants avec Détection de logiciels malveillants Linux ou ClamAV
Bien que Linux soit moins sujet à ces types d'attaques, il n'est pas à l'abri des logiciels malveillants. Les outils d'un système de sécurité en conjonction avec la mise en œuvre d'un IPS et d'un IDS pour détecter les tentatives d'intrusion, nécessitent un logiciel capable de rechercher et de détecter les logiciels malveillants pour identifier les traces d'activité qui indiquent qu'il y a des logiciels dangereux installés dans le serveur du système.

Dans le didacticiel Linux Malware Detect (LMD) pour sécuriser Linux, l'installation et l'utilisation de cet outil pour détecter les logiciels malveillants ont été expliquées, ne le manquez pas.

Il existe un certain nombre de scanners de logiciels malveillants disponibles pour les systèmes Linux qui peuvent être utilisés pour valider périodiquement l'intégrité des serveurs. Linux Malware Detect, également connu sous le nom de maldet ou LCD, est une option populaire qui peut être installée et configurée pour rechercher les signatures de logiciels malveillants connus en fonction de sa base de données.

Il peut être exécuté manuellement pour des analyses ponctuelles et peut également être exécuté via une tâche cron pour exécuter des analyses et des recherches préventives régulières, en particulier pour vérifier les e-mails et les fichiers pouvant être téléchargés par ftp sur le serveur. Les rapports de ces analyses peuvent être envoyés par courrier électronique aux administrateurs de serveur.

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif
wave wave wave wave wave