Comment installer et configurer Config Server Firewall (CSF) sur Ubuntu

De Get Docs
Aller à :navigation, rechercher

Introduction

Config Server Firewall (ou CSF) est un pare-feu gratuit et avancé pour la plupart des distributions Linux et des VPS basés sur Linux. En plus de la fonctionnalité de base d'un pare-feu – le filtrage des paquets – CSF inclut d'autres fonctionnalités de sécurité, telles que les détections de connexion/intrusion/flood. CSF inclut l'intégration de l'interface utilisateur pour cPanel, DirectAdmin et Webmin, mais ce tutoriel ne couvre que l'utilisation de la ligne de commande. CSF est capable de reconnaître de nombreuses attaques, telles que les analyses de port, les inondations SYN et les attaques par force brute de connexion sur de nombreux services. Il est configuré pour bloquer temporairement les clients détectés comme attaquant le serveur cloud.

La liste complète des systèmes d'exploitation et des fonctionnalités pris en charge est disponible sur le site Web du ConfigServer'.

Ce tutoriel est écrit pour les VPS basés sur Debian, tels que Debian et Ubuntu. Les commandes doivent être exécutées avec les autorisations root, en se connectant en tant que root ou en lançant un shell root avec la commande suivante si sudo est installé :

sudo su

Noter: Ce tutoriel couvre la sécurité IPv4. Sous Linux, la sécurité IPv6 est maintenue séparément d'IPv4. Par exemple, "iptables" ne gère que les règles de pare-feu pour les adresses IPv4, mais il a un équivalent IPv6 appelé "ip6tables", qui peut être utilisé pour maintenir les règles de pare-feu pour les adresses réseau IPv6.

Si votre VPS est configuré pour IPv6, n'oubliez pas de sécuriser vos interfaces réseau IPv4 et IPv6 avec les outils appropriés. Pour plus d'informations sur les outils IPv6, reportez-vous à ce guide : Comment configurer les outils pour utiliser IPv6 sur un VPS Linux

Caractéristiques

Config Server Firewall offre une large gamme de protections pour votre VPS.

Démon d'échec d'authentification de connexion :

CSF vérifie les journaux pour les tentatives de connexion infructueuses à intervalles réguliers et est capable de reconnaître la plupart des tentatives non autorisées d'accéder à votre serveur cloud. Vous pouvez définir l'action souhaitée que CSF entreprend et après combien de tentatives dans le fichier de configuration.

Les applications suivantes sont prises en charge par cette fonctionnalité :

  • Courrier imap, Pigeonnier, uw-imap, Kerio
  • openSSH
  • cPanel, WHM, Webmail (serveurs cPanel uniquement)
  • Pure-ftpd, vsftpd, Proftpd
  • Pages Web protégées par mot de passe (htpasswd)
  • Échecs de Mod_security (v1 et v2)
  • Échecs de Suhosin
  • Exim SMTP AUTH

En plus de cela, vous pouvez définir vos propres fichiers de connexion avec une correspondance d'expression régulière. Cela peut être utile si vous avez une application qui enregistre les échecs de connexion, mais bloque l'utilisateur après un nombre spécifique de tentatives.

Suivi des processus

CSF peut être configuré pour suivre les processus afin de détecter les processus suspects ou les ports réseau ouverts, et envoyer un e-mail à l'administrateur système en cas de détection. Cela peut vous aider à identifier et arrêter un possible exploit sur votre VPS.

Surveillance de l'annuaire

La surveillance des répertoires surveille le dossier /temp et les autres dossiers pertinents à la recherche de scripts malveillants et envoie un e-mail à l'administrateur système lorsqu'un est détecté.

Service de messagerie

L'activation de cette fonctionnalité permet à CSF d'envoyer un message plus informatif au client lorsqu'un blocage est appliqué. Cette fonctionnalité a des avantages et des inconvénients. D'une part, l'activer fournit plus d'informations au client et peut donc causer moins de frustration, par exemple en cas d'échec de connexion. D'un autre côté, cela fournit plus d'informations, ce qui pourrait faciliter l'attaque de votre VPS par un attaquant.

Protection contre les inondations portuaires

Ce paramètre offre une protection contre les attaques par inondation de port, telles que les attaques par déni de service (DoS). Vous pouvez spécifier le nombre de connexions autorisées sur chaque port dans la période de votre choix. L'activation de cette fonctionnalité est recommandée, car elle peut éventuellement empêcher un attaquant de forcer l'arrêt de vos services. Vous devez faire attention aux limites que vous définissez, car des paramètres trop restrictifs supprimeront les connexions des clients normaux. Là encore, des paramètres trop permissifs peuvent permettre à un attaquant de réussir une attaque par inondation.

Frapper au port

Le port knocking permet aux clients d'établir des connexions avec un serveur sans ports ouverts. Le serveur permet aux clients de se connecter aux ports principaux uniquement après une séquence de frappe de port réussie. Cela peut vous être utile si vous proposez des services qui ne sont accessibles qu'à un public limité.

Protection de limite de connexion

Cette fonctionnalité peut être utilisée pour limiter le nombre de connexions actives simultanées d'une adresse IP à chaque port. Lorsqu'il est correctement configuré, cela peut empêcher les abus sur le serveur, tels que les attaques DoS.

Redirection de port/adresse IP

CSF peut être configuré pour rediriger les connexions d'une adresse IP/port vers une autre adresse IP/port. Remarque : Après la redirection, l'adresse source du client sera l'adresse IP du serveur. Ce n'est pas un équivalent de la traduction d'adresses réseau (NAT).

Intégration de l'interface utilisateur

En plus de l'interface de ligne de commande, CSF propose également une intégration d'interface utilisateur pour cPanel et Webmin. Si vous n'êtes pas familier avec la ligne de commande Linux, cette fonctionnalité peut vous être utile.

Listes de blocage IP

This feature allows CSF to download lists of blocked IP addresses automatically from sources defined by you.

Installation du pare-feu ConfigServer

Étape 1 : Téléchargement

Config Server Firewall n'est actuellement pas disponible dans les référentiels Debian ou Ubuntu et doit être téléchargé à partir du site Web de ConfigServer.

wget http://download.configserver.com/csf.tgz

Cela téléchargera CSF dans votre répertoire de travail actuel.

Étape 2 : Décompresser

Le fichier téléchargé est un paquet compressé de tar, et doit être décompressé et extrait avant de pouvoir être utilisé.

tar -xzf csf.tgz

Étape 3 : Installation

Si vous utilisez un autre script de configuration de pare-feu, tel que UFW, vous devez le désactiver avant de continuer. Les règles Iptables sont automatiquement supprimées.

UFW peut être désactivé en exécutant la commande suivante :

ufw disable

Il est maintenant temps d'exécuter le script d'installation du CSF.

cd csf
sh install.sh

Le pare-feu est maintenant installé, mais vous devez vérifier si les modules iptables requis sont disponibles.

perl /usr/local/csf/bin/csftest.pl

Le pare-feu fonctionnera si aucune erreur fatale n'est signalée.

Remarque : Votre adresse IP a été ajoutée à la liste blanche si possible. De plus, le port SSH a été ouvert automatiquement, même s'il utilise un port personnalisé. Le pare-feu a également été configuré pour que le mode test soit activé, ce qui signifie que les règles iptables seront automatiquement supprimées cinq minutes après le démarrage de CSF. Cela devrait être désactivé une fois que vous savez que votre configuration fonctionne, et vous ne serez pas bloqué.

Configuration de base

CSF peut être configuré en éditant son fichier de configuration csf.conf dans /etc/csf :

nano /etc/csf/csf.conf

Les modifications peuvent être appliquées avec la commande :

csf -r

Étape 1 : Configuration des ports

Moins il y a d'accès à votre VPS, plus votre serveur est sécurisé. Cependant, tous les ports ne peuvent pas être fermés car les clients doivent pouvoir utiliser vos services.

Les ports ouverts par défaut sont les suivants :

TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

TCP_OUT = "20,21,22,25,53,80,110,113,443"

UDP_IN = "20,21,53"

UDP_OUT = "20,21,53,113,123"

Services utilisant les ports ouverts :

  • Port 20 : Transfert de données FTP
  • Port 21 : contrôle FTP
  • Port 22 : shell sécurisé (SSH)
  • Port 25 : Protocole de transfert de courrier simple (SMTP)
  • Port 53 : système de nom de domaine (DNS)
  • Port 80 : protocole de transfert hypertexte (HTTP)
  • Port 110 : Protocole de bureau de poste v3 (POP3)
  • Port 113 : service d'authentification/protocole d'identification
  • Port 123 : protocole de temps réseau (NTP)
  • Port 143 : protocole d'accès aux messages Internet (IMAP)
  • Port 443 : protocole de transfert hypertexte sur SSL/TLS (HTTPS)
  • Port 465 : URL de l'annuaire Rendesvous pour SSM (Cisco)
  • Port 587 : envoi de messages électroniques (SMTP)
  • Port 993 : protocole d'accès aux messages Internet sur SSL (IMAPS)
  • Port 995 : protocole postal 3 sur TLS/SSL (POP3S)

Il est possible que vous n'utilisiez pas tous ces services, vous pouvez donc fermer les ports qui ne sont pas utilisés. Je recommanderais de fermer tous les ports (supprimer le numéro de port de la liste), puis d'ajouter les ports dont vous avez besoin.

Vous trouverez ci-dessous des ensembles de ports qui doivent être ouverts si vous exécutez le service répertorié :

Sur n'importe quel serveur :

TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UPD_IN: 53
UPD_OUT: 53,113,123

Apache :

TCP_IN: 80,443

Serveur ftp:

TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT:20,21

Serveur de courrier:

TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110

Serveur MySQL (si un accès à distance est requis)

TCP_IN: 3306
TCP_OUT: 3306

Remarque : Si vous utilisez IPv6 pour vos services, vous devez également configurer TCP6_IN, TCP6_OUT, UPD6_IN et UPD6_OUT de la même manière que les ports IPv4 ont été configurés précédemment.

Vous pouvez trouver une liste complète des ports TCP et UDP sur Wikipedia. Vous devez ouvrir les ports de tous les services que vous utilisez.

Étape 2 : Paramètres supplémentaires

CSF offre un grand nombre d'options différentes dans ses fichiers de configuration. Certains des paramètres les plus couramment utilisés sont expliqués ci-dessous.

ICMP_IN Définir ICMP_IN sur 1 permet d'envoyer un ping à votre serveur et 0 refuse de telles requêtes. Si vous hébergez des services publics, il est recommandé d'autoriser les requêtes ICMP, car celles-ci peuvent être utilisées pour déterminer si votre service est disponible ou non.

ICMP_IN_LIMIT Définit le nombre de requêtes ICMP (ping) autorisées à partir d'une adresse IP dans un laps de temps spécifié. Il n'est généralement pas nécessaire de modifier la valeur par défaut (1/s)

DENY_IP_LIMIT Définit le nombre d'adresses IP bloquées dont CSF assure le suivi. Il est recommandé de limiter le nombre d'adresses IP refusées car avoir trop de blocs peut ralentir les performances du serveur.

DENY_TEMP_IP_LIMIT Comme ci-dessus, mais pour les blocs d'adresses IP temporaires.

PACKET_FILTER Filtrez les paquets invalides, indésirables et illégaux.

SYNFLOOD, SUNFLOOD_RATE et SYNFLOOD_BURST Cela offre une protection contre les attaques d'inondation SYN. Cela ralentit l'initialisation de chaque connexion, vous ne devez donc l'activer que si vous savez que votre serveur est attaqué.

CONNLIMIT Limite le nombre de connexions actives simultanées sur le port.

Valeur:

22;5;443;20

autoriserait 5 connexions simultanées sur le port 22 et 20 connexions simultanées sur le port 443.

PORTFLOOD Limite le nombre de connexions par intervalle de temps pendant lesquelles de nouvelles connexions peuvent être établies sur des ports spécifiques.

Valeur:

22;tcp;5;250

limiterait le blocage de l'adresse IP si plus de 5 connexions sont établies sur le port 22 à l'aide du protocole TCP dans les 250 secondes. Le blocage est supprimé une fois que 250 secondes se sont écoulées après le dernier paquet envoyé par le client sur ce port. Vous pouvez ajouter plus de ports en les séparant par des virgules comme décrit ci-dessous.

port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2

Plus de réglages

CSF propose une large gamme de paramètres qui ne sont pas couverts dans ce didacticiel. Les valeurs par défaut sont généralement bonnes et peuvent être utilisées sur presque tous les serveurs. Les paramètres par défaut sont configurés pour empêcher la plupart des attaques par inondation, des analyses de ports et des tentatives d'accès non autorisées.

Si vous souhaitez toutefois ajuster la configuration plus en détail, veuillez lire les commentaires dans /etc/csf/csf.conf et modifiez-les comme vous le souhaitez.

Étape 3 : Appliquer les modifications

Chaque fois que vous modifiez les paramètres dans csf.conf, vous devez enregistrer les fichiers et redémarrer CSF pour que les modifications prennent effet.

Une fois que vous êtes prêt avec la configuration, fermez le fichier en appuyant sur Ctrl + X. Lorsque vous êtes invité à enregistrer les modifications ou non, appuyez sur Y pour enregistrer les modifications.

Après cela, vous devez appliquer les modifications en redémarrant CSF avec la commande :

csf -r

Si tout s'est déroulé comme prévu et que vous pouvez toujours accéder au serveur, ouvrez à nouveau le fichier de configuration :

nano /etc/csf/csf.conf

et modifiez le paramètre TESTING au début du fichier de configuration sur 0 comme indiqué ci-dessous :

TESTING = "0"

Enregistrez le fichier et appliquez les modifications avec la commande :

csf -r

Bloquer et autoriser les adresses IP

L'une des fonctionnalités les plus élémentaires d'un pare-feu est la possibilité de bloquer certaines adresses IP. Vous pouvez refuser (liste noire), autoriser (liste blanche) ou ignorer les adresses IP en modifiant les fichiers de configuration csf.deny, csf.allow et csf.ignore.

Blocage des adresses IP

Si vous souhaitez bloquer une adresse IP ou une plage, ouvrez csf.deny.

nano /etc/csf/csf.deny

Les adresses ou plages IP bloquées réservent toutes une ligne dans le fichier csf.deny. Si vous souhaitez bloquer l'adresse IP 1.2.3.4 ainsi que la plage IP 2.3.*.*, vous devez ajouter les lignes suivantes au fichier :

1.2.3.4 2.3.0.0/16

Les plages d'adresses IP sont représentées à l'aide de la notation CIDR

Autoriser les adresses IP

Si vous souhaitez qu'une adresse IP ou une plage soit exclue de tous les blocs et filtres, vous pouvez les ajouter au fichier csf.allow. Veuillez noter que les adresses IP autorisées sont autorisées même si elles sont explicitement bloquées dans le fichier csf.deny.

Autoriser les adresses IP fonctionne de la même manière que les bloquer. La seule différence est que vous devez modifier /etc/csf/csf.allow au lieu de csf.deny.

nano /etc/csf/csf.allow

Ignorer les adresses IP

CSF offre également la possibilité d'exclure les adresses IP des filtres de pare-feu. Les adresses IP dans csf.ignore contourneront les filtres du pare-feu et ne pourront être bloquées que si elles sont répertoriées dans le fichier csf.deny.

nano /etc/csf/csf.ignore

Pour que les modifications prennent effet, vous devez redémarrer CSF après avoir modifié l'un des fichiers décrits ci-dessus avec la commande :

csf -r

Article soumis par : Lassi