Úvod
CSF je firewallová aplikace Stateful Packet Inspection (SPI), aplikace pro detekci přihlášení/narušení a zabezpečení pro servery Linux.
Skládá se ze samotného firewallu (CSF), který je komplexní, přímočarý, snadný a flexibilní na konfiguraci.
Má také démona selhání přihlášení (LFD), který dokonale doplňuje CSF. Tento LFD běží neustále a pravidelně (každých X sekund) prohledává nejnovější záznamy v souboru protokolu a hledá pokusy o přihlášení k vašemu serveru, které během krátké doby neustále selhávají. Takové pokusy se často nazývají „útoky hrubou silou“ a proces démona na takové vzory reaguje velmi rychle a rychle blokuje porušující IP adresy.
Instalace CSF na CentOS 8
Jak se očekávalo, CSF není k dispozici v oficiálních repozitářích CentOS. Je však možné jej nainstalovat, protože je silně propojen s Perlem a tento jazyk je podporován na CentOS 8.
Otevřete tedy terminálovou relaci a aktualizujte CentOS 8
sudo dnf install
Nakonec nainstalujte Perl elementární moduly a další nástroje, které později použijeme jako vim
sudo dnf install @perl curl tar vim
Na konci instalace musíte nainstalovat další extra moduly Perl na CentOS 8
sudo dnf install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph
Instalaci Perlu můžete ověřit spuštěním příkazu:
[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 ~]#
Nyní si můžete stáhnout CSF pomocí příkazu 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 ~]#
Jak si můžete všimnout, je docela lehký. Nyní jej rozbalte.
tar xvfz csf.tgz
Otevřete tedy vygenerovanou složku a v ní spusťte instalační skript s názvem install .sh
cd csf
sudo sh install.sh
Tím se spustí proces instalace a použije se výchozí konfigurace.
Konfigurace CSF na CentOS 8
Po instalaci použije CFS některá velmi dobrá výchozí nastavení, ale každý z nás musí udělat nějaké doladění.
Soubor je /etc/csf/csf.conf který by měl být před úpravou pro jistotu zálohován.
sudo vim /etc/csf/csf.conf
A v tomto souboru najdete spoustu velmi dobře zdokumentovaných parametrů. A jedna z nejdůležitějších sekcí je ta, která uvádí seznam otevřených portů pro příchozí a odchozí připojení.
Ve stejném souboru můžete povolit nebo zakázat CSF změnou následující hodnoty:
TESTING = "1"
Pro
TESTING = "0"
Tímto způsobem dáte programu najevo, že je připraven ke spuštění.
Uložte změny a zavřete soubor.
Nyní můžete spustit službu CSF.
sudo systemctl enable --now csf
Je také vhodné zkontrolovat stav služby, zda funguje správně.
[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]#
Můžete také zkontrolovat porty, které jsou otevřené, když je spuštěn CSF.
[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]#
Povolte uživatelské rozhraní v CSF Firewall v systému CentOS
CSF Firewall přichází se samostatným uživatelským rozhraním. Toto je ve výchozím nastavení zakázáno. Na CentOS nainstalujte následující požadavky 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
Upravit konfigurační soubor CSF
vim /etc/csf/csf.conf
Nahraďte UI =„0“ s UI =„1“
Podle potřeby změňte následující nastavení.
UI_PORT = "6666"
UI_USER = "username"
UI_PASS = "password"
Ve výchozím nastavení mají k uživatelskému rozhraní přístup pouze IP adresy na seznamu povolených. Chcete-li svou adresu IP uvést na seznam povolených, spusťte
echo "YOUR_IP_ADDR" >> /etc/csf/ui/ui.allow
Pokud chcete povolit uživatelské rozhraní CSF ze všech IP adres, nastavte UI_ALLOW na 0 v csf.conf
UI_ALLOW = "0"
CSF používá SSL s vlastním podpisem, pokud máte certifikát SSL, můžete jej použít. SSL certifikát je k dispozici ve složce
/etc/csf/ui/
Pro použití certifikátu LetsEncrypt Free SSL pro CSF UI jsem nastavil symbolický odkaz na ssl cert.
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
Nyní restartujte CSF a LDF
systemctl restart lfd
systemctl restart csf
Nejprve se zobrazí výzva k ověření uživatele. Po úspěšném přihlášení se zobrazí obrazovka jako níže.
Závěr
Takže jste se naučili, jak nainstalovat Config Server Firewall na CentOS 8. Jak si můžete všimnout, proces není složitý, ale vyžaduje některé další kroky k dokončení procesu.