Смотрим плавность хода с помощью BMW Rheingold

Всем знакома ситуация, когда двигатель немного "троит", но пропусков зажигания нет...

Облачный хостинг VDS за 2 минуты

Настоящий облачный VDS-хостинг от UltraVDS: тестируем производительность

Дельта-синхронизация крипто-дисков

Существуют разные способы зашифровать "облако". Один из них - поместить в облако крипто-диск. В предыдущей статье мы писали, почему это не всегда удобно.

Дельта синхронизация без облака

Ранее мы показывали разные способы синхронизации криптодиска между ПК и Android-устройством.

Прозрачный антивирус


Использование ClamAV для "прозрачной" проверки почты и WWW-трафика

Колисниченко Денис aka dhsilabs (dhsilabs@mail.ru)

Как сетевые вирусы попадают на рабочие станции локальной сети? Как правило, существует два способа: по e-mail и по WWW. В этой статье мы поговорим об организации антивирусной проверки почты и WWW-трафика. По сути, мы защитим пользователей нашей сети от их же самих - очень часто пользователи качают потенциально-опасные файлы, иногда даже явно зная, что в них вирус. Кто-то надеется, что все-таки загружаемый файл не вирус, а фотки давно забытой подруги, а кто-то хочет сделать "доброе дело", специально загрузив вирус с целью "поделиться" ним с коллегами. Всякое бывает.

[проверка WWW-трафика]

Для начала выясним, как будет осуществляться проверка WWW-трафика. На твоем шлюзе должен быть установлен прокси-сервер Squid. С помощью специальных средств мы будем передавать каждый полученный прокси-сервером файл на проверку антивирусу. В качестве антивируса мы будем использовать ClamAV (https://clamav.net/). Я специально не назвал имя программы, а сказал обобщенно "с помощью специальных средств". Дело в том, что настроить связку Squid + ClamAV можно несколькими способами. Один из них подразумевает использование протокола ICAP (https://www.i-cap.org). Другой способ подразумевает использование редиректоров Squid, которые позволяют обойтись без какой-либо вспомогательной программы и непосредственно передают полученные файлы антивирусу. Третий способ подразумевает использование скрипта Viralator. Сразу нужно отметить, что второй способ не очень надежен, поскольку редиректоры могут не срабатывать при большой нагрузке на прокси. К тому же возможности редиректоров ограничены, а использование посторонних программ позволяет организовать антивирусную проверку более гибко. Остается ICAP или Viralator. Я настраивал оба варианта на разных машинах. Пока все работает стабильно. Но настройка с использованием Viralator на порядок проще, поэтому в этой статье мы будем рассматривать именно этот вариант. Если кого-то Viralator не устраивает, то в конце статья я приведу ссылки на статьи, где описана настройка связки Squid + ClamAV через ICAP. Нам понадобится следующий софт:

* squid -2.5.STABLE10
* squidGuard -1.2.0
* apache-2.0.54
* viralator-0.9.7
* clamav-0.88.1

Squid и Apache есть в составе любого дистра, Viralator можно скачать на сайте https://viralator.sourceforge.net/:

https://puzzle.dl.sourceforge.net/sourceforge/viralator/viralator-0.9.7.tar.gz

RPM-пакет с ClamAV доступен по адресу https://clamav.net/binary.html. Ты найдешь RPM-пакет практически для любого распространенного дистра - Debian, Mandriva, Fedora Core и др. Назначение первых пакетов всем известно. С последним тоже все понятно. Поговорим о четвертом. Скрипт Viralator передает запросы со SquidGuard, который работает в паре со Squid, антивирусу ClamAV. Спрашивается, а зачем тогда нам Apache? Скрипт Viralator будет запускаться через Apache, запущенном на шлюзе.

Теперь приступим к настройке. Если Squid и SquidGuard еще не установлены, то самое время это сделать. Отредактируй squid.conf:

http_port 3128
# 500 Мб кэша, 32 каталога первого уровня, 512 - второго
cache_dir ufs /var/spool/squid 500 32 512
# разрешаем нашу сеть
acl my_net src 192.168.0.0/24
http_access allow my_net
# запрещаем остальные
http_access deny all
cache_effective_user squid
cache_effective_group squid
visible_hostname {$hostname | $ip_address}

Теперь устанавливаем SquidGuard и создаем файл /etc/squid/squidGuard.conf:

# Путь к базе и журналам
dbhome /usr/share/squidGuard-1.2.0/db
logdir /var/log/squidGuard 

dest files { 
expressionlist tmp/files 
  } 
  acl { 

default { 
pass !files all 
redirect 
https://192.168.0.1/cgi-bin/viralator.cgi?url=%u 
   } 
  }

Не сложно догадаться, что означает данный конфиг - он передает все принятые файлы скрипту Viralator, размещенному на нашем Web-сервере. В каталоге /usr/share/squidGuard-1.2.0/db создай каталог tmp, а в нем файл - files. В файл files добавь строку:

(\.exe$|\.bat$|\.zip$|\.bin$|\.reg$|\.sys$|\.rar$|\.wmv$|\.mpg$|\.mpeg$\.avi$)

Данная строка задает, какие файлы нужно проверять. Можешь отредактировать ее по своему усмотрению.

После этого вернемся к конфигу squid.conf, добавим в него строки:

redirector_bypass on
redirect_program /usr/local/squidGuard/bin/squidGuard

# сколько копий squidGuard нужно запускать
redirect_children 10
redirector_access deny localhost
redirector_access deny SSL_ports

Со Squid и SquidGuard у нас полный порядок. Теперь приступим к Apache. Установи Apache и отредактируй /etc/httpd/conf/httpd.conf следующим образом (найди соответствующие директивы и установи их значения):

Listen 192.168.0.1:80
ServerName 192.168.0.1

Все, осталось только запустить Apache:

# service httpd start

Затем распаковываем архив с Viralator:

# tar xfvz viralator-0.9.7.tar.gz

В каталог /var/www/cgi-bin нужно скопировать файл viralator.cgi

Изменяем владельца на apache (от имени этого пользователя работает Apache):

# chown apache:apache /var/www/cgi-bin/viralator.cgi

Viralator требует дополнительные Perl-модули, установить которые можно командой (перед выполнением этой команды нужно установить соединение с Интернетом):

# perl -MCPAN -e shell

Вам будет задан ряд вопросов, на которые можно ответить нажатием Enter, а вот когда появится приглашение cpan>, нужно ввести:

install LWP

Когда модуль будет установлен перейди к тому каталогу, в который ты распаковал Viralator. В нем будет подкаталог etc/viralator. Этот каталог нужно скопировать в каталог /etc. Теперь отредактируй /etc/viralator/viralator.conf следующим образом (комментарии, ясно писать не нужно):

# IP-адрес сервера, на котором будет работать viralator
servername -> 192.168.0.1
# Тип антивируса. Кроме ClamAV скрипт может работать с AVP и другими антивирусами
antivirus -> CLAMAV
# Имя сканера
virusscanner -> clamscan
# Путь к сканеру
scannerpath -> /usr/bin
# Команда (удалить)
viruscmd -> --remove
# Сообщение антивируса о том, что найден вирус
alert -> FOUND
downloads -> /var/www/html/downloads
downloadsdir -> /downloads
# Язык (русского нету, можешь даже и не проверять)
default_language -> english.txt
# Пароль для закрытых зон
secret -> secretpasswd
scannersummary -> true
popupfast -> false
popupback -> false
popupwidth -> 600
popupheight -> 400
filechmod -> 644
BAR -> bar.png
PROGRESS -> progress.png

Не забудь создать каталог downloads:

# mkdir /var/www/html/downloads 
# chown apache:apache /var/www/html/downloads

Теперь самое время настроить ClamAV. Хотя тут и настраивать нечего. Просто установи пакеты clamav, clamav-db, clamd и libclamav. Первый пакет содержит сканер, второй - базы данных, третий - демон ClamAV, а четвертый - библиотеку, необходимую антивирусу. После установки нужно обновить антивирусные базы. Делается это командой:

# freshclam

Перед выполнением freshclam нужно запустить демон clamd (команда clamd) - тогда программа freshclam автоматически сообщит демону об обновленных базах. Также рекомендую выполнить проверку файловой системы шлюза:

# clamav -r /

Теперь осталось на клиентских машинах указать использование прокси-сервера 192.168.0.1 (порт 3128). На этом настройку можно считать завершенной.

[проверка почты]

Итак, один путь попадания вирусов в нашу сеть мы уже отрезали. Хотя, если быть предельно точным, не отрезали, а значительно сузили. Потому как не всегда разработчики антивирусных баз поспевают за разработчиками вирусов, да и ты можешь забыть обновить антивирусные базы вовремя (к счастью для этого есть Cron). Поскольку ClamAV некоммерческий антивирус, предъявлять претензии будет некому. Максимум, что ты можешь сделать в случае, если твоя сеть все-таки будет инфицирована - это сообщить разработчикам о новом вирусе, на который антивирус не реагирует… Сейчас мы займемся проверкой почты. Классический способ проверки почты - это интеграция антивируса и MTA-агента, установленного на шлюзе. Но этот способ обладает одним большим недостатком. Во-первых, нужно изменять конфигурацию MTA (кто когда-нибудь делал это с Sendmail, понимает, о чем я говорю), во-вторых, антивирус будет проверять почту, которую передает/принимает наш MTA. А наверняка у пользователей нашей сети найдется пара почтовых ящиков, скажем, на Mail.Ru. А вот эту почту мы проверить не сможем.

Я предлагаю использовать программу P3Scan в паре с ClamAV. Данный способ позволяет проверить все POP3-соединения, вне зависимости, к какому серверу они принадлежат. С ClamAV мы уже знакомы, поэтому особо останавливаться на нем не будем, лучше поговорим о P3Scan, скачать который можно по адресу https://sourceforge.net/projects/p3scan/. Работает от так:

* Клиент пытается соединиться с удаленным POP3-сервером 
* iptables перенаправляют пакеты на локальный порт, на котором работает демон p3scan 
* Демон читает адрес получателя пакета (это адрес того самого POP-сервера) и соединяется с POP3-сервером, запущенным на узле получателя 
* Демон получает почту с удаленного сервера, проверяет ее на наличие вирусов, спама и т.д. 
* Неинфицированная почта отправляется клиенту

Для установки p3scan распакуй архив в каталог /usr/src/ и выполни команды make и make install. После этого тебе нужно отредактировать конфигурационный файл - /etc/p3scan/p3scan.conf. В большинстве случаев устроят значения по умолчанию: нужно только раскомментировать их. Для подключения ClamAV используй следующие параметры (если нужно, измени путь к исполнимому файлу clamdscan):

virusregexp = .*: (.*) FOUND
scanner  = /usr/bin/clamdscan --no-summary -i
scannertype = basic

После этого добавь дополнительное правило в набор правил iptables (для перенаправления POP3-трафика на локальный порт 8110):

# iptables -t nat -A PREROUTING -p tcp --dport 110 -j REDIRECT --to 8110

Samba + ClamAV

ClamAV можно использовать и для проверки Samba-трафика. Но настройка будет несколько сложнее, чем в первых двух случаях. Прежде всего, нам понадобятся исходники Samba, а именно samba-3.0.10.tar.bz2 и samba-vscan-0.3.6b.tar.bz2 (во всяком случае я использовал именно эти файлы). Думаю, найти в Интернете эти файлы для тебя не составит особого труда. Оба архива нужно распаковать в каталог /usr/src. Затем скопируй каталог с исходниками samba-vscan в каталог /usr/src/samba-3.0.10/examples/VFS. После этого перейди в каталог /usr/src/samba-3.0.10/source и введи следующие команды:

# ./configure
# make proto

Теперь перейди в каталог /usr/src/samba-3.0.10/examples/VFS/samba-vscan-0.3.6b и выполни команды ./configure и make. Если все будет в порядке, то через некоторое время получишь готовый модуль Samba VFS для ClamAV. Не забудь скопировать его (файл vscan-clamav.so) в каталог /usr/lib/samba/vfs. Права доступа к этому файлу нужно установить так:

# chown root:root vscan-clamav.so
# chmod 0755 vscan-clamav.so

Ленивым советую набрать команду make install - она выполнит те же действия, то есть скопирует файл в нужный каталог и изменит нужным образом права доступа.

Теперь нужно скопировать файл /usr/src/samba-3.0.10/examples/VFS/samba-vscan-0.3.6b/clamav/vscan-clamav.conf в каталог /etc/samba. Права доступа нужно установить так:

# chown root.root /etc/samba/vscan-clamav.conf

# chmod 0644 /etc/samba/vscan-clamav.conf

Все, что осталось - это отредактировать конфигурационные файлы. Начнем с /etc/samba/smb.conf. Принцип следующий - ты можешь указать объекты, для которых нужно включать проверку. Например, включим проверку для объекта Pub:

[pub]
    comment = Public files
    path = /export/pub
    vfs object = vscan-clamav
    vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
    writeable = yes
    browseable = yes
    read-only = no
    public = yes
    guest ok = yes

В /etc/samba/vscan-clamav.conf оставь все, как есть (позже отредактируешь), измени лишь следующую директиву:

clamd socket name = /tmp/clamd

После этого нужно запустить Samba:

service samba start

Поздравляю, твоя сеть полностью защищена! Единственный неприятный момент - это то, что все, что мы защитили будет работать несколько медленно, чем до защиты. Особенно "тормозить" будет Samba. Но ведь нужно же чем-то жертвовать, мы пожертвовали скоростью ради безопасности. Повысить производительность поможет небольшой апгрейд, например, установка дополнительных модулей оперативки.

обновление ClamAV

Какой бы антивирус ты не выбрал - KAV, Dr.Web, ClamAV помни: он будет эффективно выполнять свои функции, если ты регулярно обновляешь его базу данных. Также нужно провести «профилактическую» беседу с пользователями. Они не должны запускать полученные из недостоверных источников программы - сначала их нужно проверить антивирусом. Также нельзя открывать различные прикрепленные к письму файлы (программы, документы MS Office и даже картинки) без предварительной проверки антивирусом - даже если письмо пришло от известного адресата. ClamAV - не панацея, поэтому на рабочих станциях рекомендуется также установить антивирусы, желательно работающие в режиме монитора.

Что же касается обновления самого ClamAV, то ним занимается программа freshclam. Чтобы не вводить ее самому, рекомендую добавить следующую запись в /etc/crontab:

0 9 * * * /usr/bin/freshclam > /dev/null 2>&1

Антивирусная база будет обновляться каждый день в 9-00. Параметры обновления можно указать в файле clamd.conf (имеется в виду путь к антивирусной базе).

Надеюсь, что помог защитить твою сеть. Если у тебя остались вопросы, можешь задать их на форуме сайта www.dkws.org.ua.