Tento tutoriál vysvětluje, jak můžete integrovat ClamAV do PureFTPd pro skenování virů v systému CentOS 7. Nakonec, kdykoli je soubor nahrán přes PureFTPd, ClamAV soubor zkontroluje a smaže jej, pokud obsahuje virus nebo malware.
1 předběžná poznámka
Na svém serveru CentOS 7 byste měli mít funkční nastavení PureFTPd, např. jak je ukázáno v tomto tutoriálu:Virtuální hosting s PureFTPd a MySQL (včetně správy kvót a šířky pásma) na CentOS 7.
2 Instalace ClamAV
ClamAV není k dispozici v oficiálních repozitářích CentOS, proto povolujeme úložiště EPEL (pokud jste tak ještě neučinili. Začněte importem klíčů RPM GPK.
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Poté povolíme úložiště EPEL v našem systému CentOS, protože mnoho balíčků, které se chystáme instalovat v průběhu tohoto tutoriálu, není dostupných v oficiálním úložišti CentOS 7:
yum -y install epel-release
yum -y install yum-priorities
Upravte /etc/yum.repos.d/epel.repo...
nano /etc/yum.repos.d/epel.repo
... a přidejte řádek priority=10 do sekce [epel]:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [...]
Poté aktualizujeme naše stávající balíčky v systému:
yum update
Poté můžeme nainstalovat ClamAV následovně:
yum -y clamav clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Upravte soubor /etc/freshclam.conf a zakomentujte řádek Příklad:
nano /etc/freshclam.conf
přidáním znaku # před řádek Příklad:
.....
# Comment or remove the line below.
# Example
....
Poté upravte soubor /etc/clamd.d/scan.conf:
nano /etc/clamd.d/scan.conf
a zakomentujte řádek Příklad, jako jsme to udělali v souboru výše, a odstraňte znak # před řádkem LocalSocket.
.....
# Comment or remove the line below.
# Example
....
LocalSocket /var/run/clamd.scan/clamd.sock
....
Dále vytvoříme spouštěcí odkazy systému pro clamd a spustíme jej:
systemctl enable [email protected]
freshclam
Poté spusťte službu clamav:
systemctl start [email protected]
Stav démona ClamAV můžete zkontrolovat pomocí tohoto příkazu:
systemctl status [email protected]
Výsledek by měl být tento:
[[email protected] system]# systemctl status [email protected]
? [email protected] - Generic clamav scanner daemon
Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor preset: disabled)
Active: active (running) since Thu 2016-04-07 15:44:28 CEST; 1min 48s ago
Main PID: 10945 (clamd)
CGroup: /system.slice/system-clamd.slice/[email protected]
??10945 /usr/sbin/clamd -c /etc/clamd.d/scan.conf --nofork=yes
Apr 07 15:44:36 server1.example.com clamd[10945]: HTML support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: XMLDOCS support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: HWP3 support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: Self checking every 600 seconds.
Apr 07 15:44:36 server1.example.com clamd[10945]: PDF support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: SWF support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: HTML support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: XMLDOCS support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: HWP3 support enabled.
Apr 07 15:44:36 server1.example.com clamd[10945]: Self checking every 600 seconds.
3 Konfigurace PureFTPd
Nejprve otevřeme /etc/pure-ftpd/pure-ftpd.conf a nastavíme CallUploadScript na yes :
nano /etc/pure-ftpd/pure-ftpd.conf
[...] # If your pure-ftpd has been compiled with pure-uploadscript support, # this will make pure-ftpd write info about new uploads to # /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and # spawn a script to handle the upload. # Don't enable this option if you don't actually use pure-uploadscript. CallUploadScript yes [...]
Dále vytvoříme soubor /etc/pure-ftpd/clamav_check.sh (který bude volat /usr/bin/clamdscan vždy, když je soubor nahrán přes PureFTPd)...
nano /etc/pure-ftpd/clamav_check.sh
#!/bin/sh /usr/bin/clamdscan --fdpass --remove --quiet --no-summary -c /etc/clamd.d/scan.conf "$1"
... a udělejte jej spustitelným:
chmod 755 /etc/pure-ftpd/clamav_check.sh
Nyní spustíme program pure-uploadscript jako démona – bude volat náš skript /etc/pure-ftpd/clamav_check.sh, kdykoli je soubor nahrán přes PureFTPd:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
Samozřejmě nechcete spouštět démona ručně pokaždé, když spouštíte systém - proto otevřeme /etc/rc.local...
nano /etc/rc.local
... a přidejte k němu řádek /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh - např. takto:
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh touch /var/lock/subsys/local
Nakonec restartujeme PureFTPd:
systemctl restart [email protected]
A je to! Kdykoli se nyní někdo pokusí nahrát malware na váš server prostřednictvím PureFTPd, „špatné“ soubory budou tiše smazány.
4 obraz virtuálního stroje
Tento tutoriál je k dispozici jako virtuální stroj připravený k použití ve formátu OVA / OVF pro předplatitele Howtoforge. Formát VM je kompatibilní s VMWare a Virtualbox a dalšími nástroji, které dokážou tento formát importovat. Odkaz ke stažení najdete v pravém menu nahoře. Kliknutím na název souboru zahájíte stahování.
Přihlašovací údaje virtuálního počítače jsou:
Přihlášení SSH
Uživatelské jméno:root
Heslo:howtoforge
Přihlášení do MariaDB
Uživatelské jméno:root
Heslo:howtoforge
Po prvním spuštění změňte hesla.
5 odkazů
- PureFTPD:http://www.pureftpd.org/
- ClamAV:http://www.clamav.net/
- CentOS:http://www.centos.org/