Présentation
CSF est un pare-feu Stateful Packet Inspection (SPI), une application de détection de connexion/intrusion et de sécurité pour les serveurs Linux.
Il se compose du pare-feu lui-même (CSF) qui est complet, simple, facile et flexible à configurer.
Il dispose également d'un démon d'échec de connexion (LFD) qui complète parfaitement CSF. Ce LFD fonctionne tout le temps et analyse périodiquement (toutes les X secondes) les dernières entrées du fichier journal pour les tentatives de connexion contre votre serveur qui échouent continuellement dans un court laps de temps. De telles tentatives sont souvent appelées « attaques par force brute » et le processus démon répond très rapidement à de tels modèles et bloque rapidement les IP offensantes.
Installer CSF sur CentOS 8
Comme prévu, CSF n'est pas disponible dans les référentiels CentOS officiels. Cependant, il est possible de l'installer car il est fortement lié à Perl et ce langage est supporté sur CentOS 8.
Alors, ouvrez une session de terminal et mettez à jour CentOS 8
sudo dnf install
À la fin, installez le Perl modules élémentaires et autres outils que nous utiliserons plus tard comme vim
sudo dnf install @perl curl tar vim
A la fin de l'installation, vous devez installer d'autres modules Perl supplémentaires sur CentOS 8
sudo dnf install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph
Vous pouvez vérifier l'installation de Perl en exécutant la commande :
[root@unixcop ~]# perl -v
This is perl 5, version 26, subversion 3 (v5.26.3) built for x86_64-linux-thread-multi
(with 55 registered patches, see perl -V for more detail)
Copyright 1987-2018, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
[root@unixcop ~]#
Vous pouvez maintenant télécharger CSF en utilisant la commande curl
[root@unixcop ~]# curl -O https://download.configserver.com/csf.tgz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2244k 100 2244k 0 0 655k 0 0:00:03 0:00:03 --:--:-- 655k
[root@unixcop ~]#
Comme vous pouvez le constater, il est assez léger. Maintenant, décompressez-le.
tar xvfz csf.tgz
Accédez donc au dossier généré, et à l'intérieur de celui-ci, exécutez le script d'installation appelé install .chut
cd csf
sudo sh install.sh
Cela lancera le processus d'installation et la configuration par défaut sera appliquée.
Configuration de CSF sur CentOS 8
Une fois installé, CFS applique de très bons paramètres par défaut, cependant, chacun de nous a quelques ajustements à faire.
Le fichier est /etc/csf/csf.conf qui doit être sauvegardé avant d'être modifié pour être sûr.
sudo vim /etc/csf/csf.conf
Et dans ce dossier, vous trouverez un tas de paramètres très bien documentés. Et l'une des sections les plus importantes est celle qui répertorie les ports ouverts pour les connexions entrantes et sortantes.
Dans ce même fichier, vous pouvez activer ou désactiver CSF en modifiant la valeur suivante :
TESTING = "1"
Pour
TESTING = "0"
De cette façon, vous indiquez au programme qu'il est prêt à démarrer.
Enregistrez les modifications et fermez le fichier.
Vous pouvez maintenant démarrer le service CSF.
sudo systemctl enable --now csf
Il est également conseillé de vérifier l'état du service pour voir s'il fonctionne correctement.
[root@unixcop csf]# sudo systemctl enable --now csf
[root@unixcop csf]# sudo systemctl status csf
● csf.service - ConfigServer Firewall & Security - csf
Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled)
Active: active (exited) since Mon 2021-07-26 17:43:04 EET; 17s ago
Process: 20176 ExecStart=/usr/sbin/csf --initup (code=exited, status=0/SUCCESS)
Main PID: 20176 (code=exited, status=0/SUCCESS)
Jul 26 17:43:03 unixcop csf[20176]: ACCEPT all opt in * out lo ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: csf: FASTSTART loading DNS (IPv4)
Jul 26 17:43:03 unixcop csf[20176]: csf: FASTSTART loading DNS (IPv6)
Jul 26 17:43:03 unixcop csf[20176]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0
Jul 26 17:43:03 unixcop csf[20176]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0
Jul 26 17:43:03 unixcop csf[20176]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0
Jul 26 17:43:03 unixcop csf[20176]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0
Jul 26 17:43:04 unixcop systemd[1]: Started ConfigServer Firewall & Security - csf.
[root@unixcop csf]#
Vous pouvez également vérifier les ports qui sont ouverts lorsque CSF est en cours d'exécution.
[root@unixcop csf]# sudo csf -p
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 (910/root) /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd
323/udp -/- - (853/chrony) /usr/sbin/chronyd /usr/sbin/chronyd
[root@unixcop csf]#
Activer l'interface utilisateur dans le pare-feu CSF sur CentOS
Le pare-feu CSF est livré avec une interface utilisateur autonome. Ceci est désactivé par défaut. Sur CentOS, installez les exigences suivantes yum install perl-IO-Socket-SSL perl-Net-SSLeay perl-Net-LibIDN perl-IO-Socket-INET6 perl-Socket6
yum install perl-IO-Socket-SSL perl-Net-SSLeay perl-Net-LibIDN perl-IO-Socket-INET6 perl-Socket
Modifier le fichier de configuration CSF
vim /etc/csf/csf.conf
Remplacez UI ="0" avec UI ="1"
Modifiez les paramètres suivants si nécessaire.
UI_PORT = "6666"
UI_USER = "username"
UI_PASS = "password"
Par défaut, seules les adresses IP sur liste blanche peuvent accéder à l'interface utilisateur. Pour mettre votre adresse IP sur liste blanche, exécutez
echo "YOUR_IP_ADDR" >> /etc/csf/ui/ui.allow
Si vous souhaitez autoriser l'interface utilisateur CSF à partir de toutes les adresses IP, définissez UI_ALLOW sur 0 dans csf.conf
UI_ALLOW = "0"
CSF utilise un SSL auto-signé, si vous avez un certificat SSL, vous pouvez l'utiliser. Le certificat SSL est disponible dans le dossier
/etc/csf/ui/
Pour utiliser le certificat SSL gratuit LetsEncrypt pour l'interface utilisateur CSF, j'ai défini le lien symbolique sur le certificat SSL.
cd /etc/csf/ui
mv server.key server.key.old
mv server.crt server.crt.old
ln -s /etc/letsencrypt/live/DOMAIN/fullchain.pem server.crt
ln -s /etc/letsencrypt/live/DOMAIN/privkey.pem server.key
Redémarrez maintenant CSF et LDF
systemctl restart lfd
systemctl restart csf
Cela demandera d'abord l'authentification de l'utilisateur. Après une connexion réussie, vous trouverez l'écran comme ci-dessous.
Conclusion
Vous avez donc appris à installer Config Server Firewall sur CentOS 8. Comme vous pouvez le constater, le processus n'est pas complexe, mais il nécessite quelques étapes supplémentaires pour terminer le processus.