How to scan and stop uploading infected files to your server?
To scan and stop uploading infected files to your server , you need to enable ClamAV with PureFTP (Do not use this with ProFTP or other FTP services on your server).
- Make sure Clamav is installed on your server and/or up-to-date.
Clamav binary files are installed in (for a cPanel and DirectAdmin powered servers)
/usr/local/bin and /usr/bin/
Using your favorite Linux text editor such as vi or pico, edit /etc/pure-ftpd.conf file and set the entry:
From:
#CallUploadScript yes
To:
CallUploadScript yes
Save and exit the file /etc/pure-ftpd.conf.
- Edit the file /etc/init.d/pure-ftpd
Find the following entry:
$DAEMONIZE $fullpath /etc/pure-ftpd.conf -O clf:/var/log/xferlog $OPTIONS –daemonize
and insert the following line below it:
$DAEMONIZE /usr/sbin/pure-uploadscript -B -r /var/run/pure-ftpd/clamscan.sh - Find the following entry:
kill $(cat /var/run/pure-ftpd.pid)
and insert the following line below it:
kill $(cat /var/run/pure-ftpd/pure-uploadscript.pid) - Save and exit the file /etc/init.d/pure-ftpd
- Change the directory to:
cd /var/run/pure-ftpd/ - Create the following script: clamscan.sh and insert the following text
#!/bin/sh if [ "$1" = "" ]; then echo 'Variable is blank'; exit; fi if [ ! -f "$1" ]; then echo "$1 file not found" exit; fi date=`date '+%d-%m-%y %H:%M'`; scan=`/usr/bin/clamdscan --remove --no-summary "$1"`; echo "$date ClamAV $scan" >> /var/log/messages
- Save and exit the file clamscan.sh, and then run the following command to change its permission:
chmod 755 /var/run/pure-ftpd/clamscan.sh
- Restart PureFTP daemon (for generic server):
/sbin/service pure-ftpd restart
For a cPanel powered-server:
/scripts/restartsrv pure-ftpd
Since we used the switch –remove with the clamscan command in the script above, infected files will be permanently deleted. If you do not want the script to delete infected files and just move them to a directory, change the following entry:
From:
scan=`/usr/bin/clamdscan –remove –no-summary “$1″`;
To:
scan=`/usr/bin/clamdscan –move=/root/junk –no-summary “$1″`;
If you do that, you need to create the subdirectory junk in the /root directory. To do so, execute this command:
- mkdir /root/junk
DONE!
Leave a comment