Dieses Tutorial erklärt, wie Sie ClamAV in PureFTPd zum Virenscannen auf einem CentOS 6.2-System integrieren können. Am Ende überprüft ClamAV die Datei immer dann, wenn sie über PureFTPd hochgeladen wird, und löscht sie, wenn es sich um Malware handelt.
1 Vorbemerkung
Sie sollten ein funktionierendes PureFTPd-Setup auf Ihrem CentOS 6.2-Server haben, z. wie in diesem Tutorial gezeigt:Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2.
2 Installieren von ClamAV
ClamAV ist in den offiziellen CentOS-Repositorys nicht verfügbar, daher aktivieren wir das EPEL-Repository (falls Sie dies noch nicht getan haben, z. B. im Tutorial Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2):
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5 .noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
yum installiere yum-Prioritäten
Bearbeiten Sie /etc/yum.repos.d/epel.repo...
vi /etc/yum.repos.d/epel.repo
... und fügen Sie die Zeile priority=10 zum Abschnitt [epel] hinzu:
[epel]name=Zusätzliche Pakete für Enterprise Linux 6 - $basearch#baseurl=http://download.fedoraproject.org/pub/epel/ 6/$basearchmirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearchfailovermethod=priorityenabled=1priority=10gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG -KEY-EPEL-6[...] |
Danach können wir ClamAV wie folgt installieren:
yum installiere clamav clamd
Als nächstes erstellen wir die Systemstartlinks für clamd und starten es:
chkconfig --levels 235 clamd auf
/usr/bin/freshclam
/etc/init.d/clamd start
3 Konfigurieren von PureFTPd
Zuerst öffnen wir /etc/pure-ftpd/pure-ftpd.conf und setzen CallUploadScript auf yes :
vi /etc/pure-ftpd/pure-ftpd.conf
[...]# Wenn Ihr pure-ftpd mit pure-uploadscript-Unterstützung kompiliert wurde,# wird pure-ftpd dazu veranlasst, Informationen über neue zu schreiben lädt nach# /var/run/pure-ftpd.upload.pipe hoch, damit pure-uploadscript es lesen und# ein Skript erzeugen kann, das den Upload handhabt.# Aktivieren Sie diese Option nicht, wenn Sie pure-uploadscript nicht tatsächlich verwenden. CallUploadScript ja[...] |
Als nächstes erstellen wir die Datei /etc/pure-ftpd/clamav_check.sh (die /usr/bin/clamdscan aufruft, wenn eine Datei über PureFTPd hochgeladen wird)...
vi /etc/pure-ftpd/clamav_check.sh
#!/bin/sh/usr/bin/clamdscan --remove --quiet --no-summary "$1" |
... und ausführbar machen:
chmod 755 /etc/pure-ftpd/clamav_check.sh
Jetzt starten wir das Programm pure-uploadscript als Daemon – es ruft unser Skript /etc/pure-ftpd/clamav_check.sh auf, wenn eine Datei über PureFTPd hochgeladen wird:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
Natürlich wollen Sie den Daemon nicht bei jedem Systemstart manuell starten - deshalb öffnen wir /etc/rc.local...
vi /etc/rc.local
... und fügen Sie die Zeile /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh hinzu - z.B. wie folgt:
#!/bin/sh## Dieses Skript wird *nach* allen anderen Init-Skripten ausgeführt.# Sie können Ihr eigenes Initialisierungsmaterial einfügen Hier, wenn Sie nicht # das gesamte Init-Zeug im Sys V-Stil ausführen möchten./usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.shtouch /var/lock/subsys/local |
Abschließend starten wir PureFTPd neu:
/etc/init.d/pure-ftpd Neustart
Das ist es! Wann immer jetzt jemand versucht, Malware über PureFTPd auf Ihren Server hochzuladen, werden die "schlechten" Dateien stillschweigend gelöscht.
4 Links
- PureFTPD:http://www.pureftpd.org/
- ClamAV:http://www.clamav.net/
- CentOS:http://www.centos.org/