Как интегрировать ClamAV в PureFTPd для сканирования на вирусы в CentOS 7
Это руководство существует для этих версий ОС
- CentOS 7
- CentOS 5.4
На этой странице
- 1 Предварительное примечание
- 2 Установка ClamAV
- 3 Настройка PureFTPd
- 4 Образ виртуальной машины
- SSH-вход
- Вход в MariaDB
В этом руководстве объясняется, как интегрировать ClamAV в PureFTPd для сканирования на вирусы в системе CentOS 7. В конце концов, всякий раз, когда файл загружается через PureFTPd, ClamAV проверяет файл и удаляет его, если он содержит вирус или вредоносное ПО.
1 Предварительное примечание
У вас должна быть работающая настройка PureFTPd на вашем сервере CentOS 7, например. как показано в этом руководстве: Виртуальный хостинг с PureFTPd и MySQL (включая управление квотами и пропускной способностью) в CentOS 7.
2 Установка ClamAV
ClamAV недоступен в официальных репозиториях CentOS, поэтому мы включаем репозиторий EPEL (если вы еще этого не сделали. Начните с импорта ключей RPM GPK.
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Затем мы включаем репозиторий EPEL в нашей системе CentOS, поскольку многие пакеты, которые мы собираемся установить в ходе этого руководства, недоступны в официальном репозитории CentOS 7:
yum -y install epel-release
yum -y install yum-priorities
Отредактируйте /etc/yum.repos.d/epel.repo...
nano /etc/yum.repos.d/epel.repo
... и добавьте строку priority=10 в секцию [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 [...]
Затем мы обновляем наши существующие пакеты в системе:
yum update
После этого мы можем установить ClamAV следующим образом:
yum -y clamav clamav-server clamav-data clamav-update clamav-filesystem clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
Отредактируйте файл /etc/freshclam.conf и закомментируйте строку примера:
nano /etc/freshclam.conf
добавив # перед строкой примера:
.....
# Comment or remove the line below.
# Example
....Затем отредактируйте файл /etc/clamd.d/scan.conf:
nano /etc/clamd.d/scan.conf
и закомментируйте строку примера, как мы сделали это в файле выше, и удалите # перед строкой LocalSocket.
.....
# Comment or remove the line below.
# Example
....
LocalSocket /var/run/clamd.scan/clamd.sock
....Далее мы создаем системные ссылки запуска для clamd и запускаем его:
systemctl enable
freshclamЗатем запустите службу clamav:
systemctl start
Вы можете проверить статус демона ClamAV с помощью этой команды:
systemctl status
Результат должен быть таким:
[
??10945 /usr/sbin/clamd -c /etc/clamd.d/scan.conf --nofork=yesApr 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 Настройка PureFTPd
Сначала мы открываем /etc/pure-ftpd/pure-ftpd.conf и устанавливаем для CallUploadScript значение 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 [...]
Затем мы создаем файл /etc/pure-ftpd/clamav_check.sh (который будет вызывать /usr/bin/clamdscan всякий раз, когда файл загружается через 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"
... и сделать его исполняемым:
chmod 755 /etc/pure-ftpd/clamav_check.sh
Теперь мы запускаем программу pure-uploadscript в качестве демона — она будет вызывать наш скрипт /etc/pure-ftpd/clamav_check.sh всякий раз, когда файл загружается через PureFTPd:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
Конечно, вы не хотите запускать демон вручную каждый раз при загрузке системы, поэтому мы открываем /etc/rc.local...
nano /etc/rc.local
... и добавьте к нему строку /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh - например следующее:
#!/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
Наконец, мы перезапускаем PureFTPd:
systemctl restart
Вот и все! Теперь всякий раз, когда кто-то пытается загрузить вредоносное ПО на ваш сервер через PureFTPd, «плохие» файлы будут автоматически удалены.
4 Образ виртуальной машины
Это руководство доступно как готовая к использованию виртуальная машина в формате OVA/OVF для подписчиков Howtoforge. Формат VM совместим с VMWare, Virtualbox и другими инструментами, которые могут импортировать этот формат. Вы можете найти ссылку для скачивания в правом меню вверху. Нажмите на имя файла, чтобы начать загрузку.
Данные для входа в виртуальную машину:
Вход по SSH
Имя пользователя: root
Пароль: howtoforgeВойти
Имя пользователя: root
Пароль: howtoforgeПожалуйста, измените пароли после первой загрузки.
5 ссылок
- PureFTPD: http://www.pureftpd.org/
- КламАВ: http://www.clamav.net/
- CentOS: http://www.centos.org/