Поиск по сайту:

Как интегрировать ClamAV в PureFTPd для сканирования на вирусы в CentOS 7


Это руководство существует для этих версий ОС

  • CentOS 7
  • CentOS 5.4

На этой странице

  1. 1 Предварительное примечание
  2. 2 Установка ClamAV
  3. 3 Настройка PureFTPd
  4. 4 Образ виртуальной машины
    1. SSH-вход
    2. Вход в 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=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 Настройка 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/