CSF, également appelé "Pare-feu du serveur de configuration" est un pare-feu Stateful Packet Inspection (SPI) pour les systèmes d'exploitation Linux. Il fournit des fonctionnalités de pare-feu de base ainsi que d'autres fonctionnalités de sécurité, notamment la connexion, l'intrusion et la détection d'inondation. Vous pouvez également intégrer CSF à DirectAdmin, cPanel et Webmin. À l'aide de CSF, vous pouvez détecter de nombreux types d'attaques telles que les analyses de port, les inondations SYN et les attaques par force brute de connexion sur de nombreux services.
Dans cet article, nous allons vous montrer comment installer et configurer le pare-feu CSF sur Rocky Linux 8.
Prérequis
- Un serveur exécutant Rocky Linux 8 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Rocky Linux 8 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf update -y
Étape 2 - Installer CSF sur Rocky Linux 8
CSF est écrit en Perl, vous devrez donc installer tous les modules Perl requis sur votre système. Vous pouvez tous les installer avec la commande suivante :
dnf install @perl perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch -y
Après avoir installé tous les modules requis, téléchargez la dernière version de CSF à l'aide de la commande suivante :
wget https://download.configserver.com/csf.tgz
Une fois le téléchargement terminé, extrayez le fichier téléchargé avec la commande suivante :
tar xzf csf.tgz
Ensuite, accédez au répertoire extrait et installez CSF avec la commande suivante :
cd csf sh install.sh
Une fois CSF installé, vous obtiendrez la sortie suivante :
Don't forget to: 1. Configure the following options in the csf configuration to suite your server: TCP_*, UDP_* 2. Restart csf and lfd 3. Set TESTING to 0 once you're happy with the firewall, lfd will not run until you do so Adding current SSH session IP address to the csf whitelist in csf.allow: Adding 27.61.171.115 to csf.allow only while in TESTING mode (not iptables ACCEPT) *WARNING* TESTING mode is enabled - do not forget to disable it in the configuration 'lfd.service' -> '/usr/lib/systemd/system/lfd.service' 'csf.service' -> '/usr/lib/systemd/system/csf.service' Created symlink /etc/systemd/system/multi-user.target.wants/csf.service → /usr/lib/systemd/system/csf.service. Created symlink /etc/systemd/system/multi-user.target.wants/lfd.service → /usr/lib/systemd/system/lfd.service. Created symlink /etc/systemd/system/firewalld.service → /dev/null. '/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz' Installation Completed
Ensuite, vérifiez que tous les modules iptables requis sont disponibles.
perl /usr/local/csf/bin/csftest.pl
Si tout est configuré correctement, vous obtiendrez le résultat suivant :
Testing ip_tables/iptable_filter...OK Testing ipt_LOG...OK Testing ipt_multiport/xt_multiport...OK Testing ipt_REJECT...OK Testing ipt_state/xt_state...OK Testing ipt_limit/xt_limit...OK Testing ipt_recent...OK Testing xt_connlimit...OK Testing ipt_owner/xt_owner...OK Testing iptable_nat/ipt_REDIRECT...OK Testing iptable_nat/ipt_DNAT...OK RESULT: csf should function on this server
Vous pouvez maintenant vérifier la version CSF à l'aide de la commande suivante :
csf -v
Vous obtiendrez le résultat suivant :
csf: v14.12 (generic) *WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
Étape 3 - Configurer CSF
nano /etc/csf/csf.conf
Remplacez TESTING ="1" par TESTING ="0" et ajoutez les ports entrants et sortants autorisés selon vos besoins :
# lfd will not start while this is enabled TESTING = "0" # Allow incoming TCP ports TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995" # Allow outgoing TCP ports TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
Enregistrez et fermez le fichier lorsque vous avez terminé, puis démarrez et activez les services CSF et LFD :
systemctl start csf lfd systemctl enable csf lfd
Vous pouvez vérifier l'état de CSF avec la commande suivante :
systemctl status csf
Vous devriez voir le résultat suivant :
● csf.service - ConfigServer Firewall & Security - csf Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled) Active: active (exited) since Wed 2021-11-17 08:41:05 UTC; 3s ago Process: 13236 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS) Main PID: 13236 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 11411) Memory: 0B CGroup: /system.slice/csf.service Nov 17 08:41:05 rockylinux csf[13236]: ACCEPT all opt in * out lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: csf: FASTSTART loading DNS (IPv4) Nov 17 08:41:05 rockylinux csf[13236]: csf: FASTSTART loading DNS (IPv6) Nov 17 08:41:05 rockylinux csf[13236]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0 Nov 17 08:41:05 rockylinux csf[13236]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0 Nov 17 08:41:05 rockylinux systemd[1]: Started ConfigServer Firewall & Security - csf.
Vous pouvez également vérifier les ports ouverts lorsque CSF est en cours d'exécution à l'aide de la commande suivante :
csf -p
Exemple de sortie :
Ports listening for external connections and the executables running behind them: Port/Proto Open Conn PID/User Command Line Executable 22/tcp 4/6 1 (709/root) /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd 80/tcp 4/6 - (8954/root) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8957/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8958/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (8959/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 80/tcp 4/6 - (9172/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd 323/udp -/- - (552/chrony) /usr/sbin/chronyd /usr/sbin/chronyd
Étape 4 - Comment utiliser le CSF
Pour vider toutes les règles CSF, exécutez la commande suivante :
csf -f
Pour recharger le pare-feu CSF, exécutez la commande suivante :
csf -r
Pour autoriser les connexions entrantes à partir de l'adresse IP spécifique, exécutez la commande suivante :
csf -a remote-ip-address
Pour refuser les connexions à partir de l'adresse IP spécifique, exécutez la commande suivante :
csf -d remote-ip-address
Vous pouvez également modifier le csf.deny et csf.allow fichier pour définir la liste des adresses IP autorisées et refusées sur le pare-feu.
Étape 5 :Activer l'interface utilisateur CSF
CSF fournit également une interface Web pour gérer le pare-feu. Il est désactivé par défaut.
Avant d'activer l'interface utilisateur CSF, installez les modules requis avec la commande suivante :
dnf install perl-IO-Socket-SSL perl-Net-SSLeay perl-IO-Socket-INET6 perl-Socket -y
Ensuite, modifiez le fichier de configuration CSF :
nano /etc/csf/csf.conf
Activez l'interface utilisateur, définissez le port d'écoute et définissez le nom d'utilisateur et le mot de passe de l'administrateur comme indiqué ci-dessous :
# 1 to enable, 0 to disable web ui UI = "1" # Set port for web UI. The default port is 6666, but # I change this to 1025 to easy access. Default port create some issue # with popular chrome and firefox browser (in my case) UI_PORT = "8080" # Leave blank to bind to all IP addresses on the server UI_IP = "" # Set username for authetnication UI_USER = "admin" # Set a strong password for authetnication UI_PASS = "securepassword" UI_ALLOW = "0"
Enregistrez et fermez le fichier puis redémarrez le service CSF et LFD pour appliquer les modifications :
systemctl restart lfd systemctl restart csf
Étape 6 – Accéder à l'interface utilisateur CSF
Maintenant, ouvrez votre navigateur Web et accédez à l'interface utilisateur CSF à l'aide de l'URL https://your-server-ip:8080 . Vous devriez voir la page de connexion CSF :
Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir l'interface Web CSF sur l'écran suivant :
Étape 7 - Supprimer le pare-feu CSF
Si vous souhaitez supprimer complètement le pare-feu CSF de votre serveur, exécutez simplement le script suivant :
bash /etc/csf/uninstall.sh
Cela supprimera le pare-feu CSF avec tous les fichiers, répertoires et règles créés par CSF.
Conclusion
Dans le guide ci-dessus, nous avons expliqué comment installer CSF et CSF UI sur Rocky Linux 8. Nous avons également expliqué comment interdire et débannir des adresses IP spécifiques avec CSF. Vous pouvez maintenant implémenter CSF sur votre serveur et le sécuriser contre divers types d'attaques. Essayez-le sur votre VPS d'Atlantic.Net !