• 49483
  • 64
  • 22
Нравится блог?
Подписывайтесь!

DansGuardian + ClamAV: фильтруем веб-содержимое и строим антивирусную защиту

Сегодня многие компании все больше внимания уделяют информационной безопасности. Для ее обеспечения, по данным исследования IDC, российские пользователи затратили почти 42$ млн. на специализированное программное обеспечение. Но существуют и бесплатные продукты, не уступающие коммерческим по функциональности.

Я думаю, ни для кого не секрет, что большая часть вирусов попадает на компьютеры локальной сети из Интернета. Конечно, проверку на вирусы можно проводить и на локальной машине, но централизованная фильтрация трафика гораздо проще в обслуживании и позволяет экономить ресурсы компьютеров локальной сети.
DansGuardian – фильтр веб-содержимого для ОС Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX и Solaris, использует прокси-серверы squid или oops. Он фильтрует содержимое несколькими методами: по фразам, картинкам и URL. В отличие от некоторых других фильтров, он не использует «черный лист» URL, который надо постоянно обновлять (да и к тому же Интернет большой, все не перечислишь).
Проект постоянно дорабатывается, имеется коммерческая версия под названием SmoothGuardian. В ней есть несколько дополнительных возможностей: блокировка лицензионной музыки, удаление рекламы, многоязыковая поддержка фраз фильтрования, генерация стандартных отчетов, таких как самые популярные сайты, пользователи и сайты, заблокированные чаще всего, позволяет блокировать «по часам», т.е. блокировка происходит в определенное время, и другое.
Я буду использовать именно бесплатную версию, так как ее конфигурирование считается более сложным.
Я устанавливал dansguardian на ОС Linux -Ubuntu Server Edition и Debian 5.0.4:
n  Версия dansguardian – 2.10
n  Версия squid – 3.1.7
n  Версия clamav – 0.96.
n  Версия libesmtp – 1.0.6
Dansguardian не является редиректором (как, например, squidGuard), хотя многие первоначально думают именно так. Это прокси-сервер, и он использует squid как веб-браузер. Для того чтобы пользователи не использовали squid напрямую, необходимо в конфигурационном файле firewall указать перенаправление с порта squid на порт dansguardian. Либо установить dansguardian на порт 3128, а squid перенести на какой-либо другой, открыв доступ только с 127.0.0.1
Для начала установим СlamAV. Скачать его можно с официального сайта http://www.clamav.net.
./configure
make
make install
Конфигурирование clamav не займет много времени. Просто немного подредактируйте clamd.conf.
Dansguardian требует библиотеку libesmtp для отправки сообщений системному администратору. Скачать ее можно с http://www.stafford.uklinux.net/libesmtp.
Устанавливается просто:
./configure –-prefix=/usr
make
make install
Пропатчивать dansguardian для поддержки firewall не нужно, скачать его с поддержкой антивируса можно с http://www.harvest.com.br/asp/afn/dg.nsf.
./configure
--sysconfdir=/etc/dansguardian/
--cgidir=/var/www/cgi-bin/
--runas_usr=squid
--runas_grp=squid
make
make install
Далее следует настроить dansguardian. Конфигурационный файл /etc/dansguardian/dansguardian.conf оснащен отличными комментариями, так что, я думаю, не будет затруднений в конфигурировании:
reportinglevel = 3
languagedir = '/etc/dansguardian/languages'
# К сожалению, русского языка в списке нет. Я сделал перевод и в ближайшее время отправлю автору.
# Вы можете скачать архив с сайта журнала http://www.samag.ru, раздел «Исходный код». Чтобы установить язык,
# необходимо разархивировать файл в папку /etc/dansguardian/languages и в конфигурационном файле указать:
language = 'russian'
# Что записывать в лог
# 0 = none 1 = just denied     2 = all text based
# 3 = all requests
loglevel = 2
# Протоколировать, если страница была передана пользователю
logexceptionhits = on
# формат ведения лога
# 1 = DansGuardian format      2 = CSV-style format
# 3 = Squid Log File Format    4 = Tab delimited
logfileformat = 1
# Местонахождение лог-файла
loglocation = '/var/log/dansguardian/access.log'
# Сетевые опции
# IP-адрес, на котором слушает dansguardian
filterip =
filterport = 8080
# IP-адрес и порт прокси-сервера (squid или oops)
proxyip = 127.0.0.1
proxyport = 3128
# URL, на который произойдет переадресация при блокировке
accessdeniedaddress = 'http://YOURSERVER.YOURDOMAIN/cgi-bin/dansguardian.pl'
nonstandarddelimiter = on
# Заменять запрещенную картинку какой-нибудь своей
usecustombannedimage = 1
custombannedimagefile = '/etc/dansguardian/transparent1x1.gif'
# Создать фильтр для группы пользователей.
# Dansguardian будет автоматически смотреть в файл dansguardianfN.conf, где N – номер группы
filtergroups = 1
# Чтобы поставить пользователей в соответствие с группами, отредактируйте файл filtergrouplist
filtergroupslist = '/etc/dansguardian/filtergroupslistv
# Местоположение файлов аутентификации
bannediplist = '/etc/dansguardian/bannediplist'
exceptioniplist = '/etc/dansguardian/exceptioniplist'
banneduserlist = '/etc/dansguardian/banneduserlist'
exceptionuserlist = '/etc/dansguardian/exceptionuserlist'
# Записывать в лог найденные причины блокировки.
showweightedfound = on
# 0 = off  – не использовать
# 1 = on, normal – использовать в стандартном режиме
# 2 = on, singular – записывать каждый аргумент, но только один раз для страницы
weightedphrasemode = 2
urlcachenumber = 2000
urlcacheage = 900
# Фильтрация содержимого по фразам
# 0 – фильтрация html вместе с мета-тэгами
# 1 - удаление многочисленных  пробелов и html-тэгов перед фильтрацией
# 2 – оба метода
phrasefiltermode = 2
preservecase = 0
# Перекодировка в hex для фильтрования документов с различными кодировками
hexdecodecontent = 0
# Использовать алгоритм «Quick Search», в отличие от алгоритма DFA. Алгоритм DFA позволяет работать быстрее,
# но его текущая версия не совсем совместима с 16-битными символами. Если вы хотите использовать 16-битные символы,
# включите эту опцию.
forcequicksearch = 0
reverseaddresslookups = off
reverseclientiplookups = off
# Создавать файлы bannedsitelist и bannedurllist со списком запрещенных сайтов и URL
createlistcachefiles = on
# Максимальный размер передаваемого от клиента файла в байтах
# 0 – блокировать
# -1 – не блокировать или размер файла
maxuploadsize = -1
maxcontentfiltersize = 256
# Методы аутентификации пользователя на прокси-сервере
usernameidmethodproxyauth = on
# **На данный момент не работает**
usernameidmethodntlm = off
usernameidmethodident = off
preemptivebanning = on
# Добавлять заголовки X-Forwarded-For: <IP-адрес клиента>
forwardedfor = off
usexforwardedfor = off
logconnectionhandlingerrors = on
# Опции дочерних процессов
# Максимальное количество процессов
maxchildren = 120
# Первоначальное количество процессов
minchildren = 8
# Количество процессов, которые должны быть готовы к соединению
minsparechildren = 4
preforkchildren = 6
# Максимальное количество бездействующих процессов
maxsparechildren = 32
# Максимальное количество сайтов, обработанных процессом
maxagechildren = 500
# Опции коммуникации между процессами
ipcfilename = '/tmp/.dguardianipc'
urlipcfilename = '/tmp/.dguardianurlipc'
# PID filename
pidfilename = '/var/run/dansguardian.pid'
nodaemon = off
nologger = off
# Пользователь и группа, с чьими правами запускается dansguardian
daemonuser = 'squid'
daemongroup = 'squid'
softrestart = off
# Антивирусные настройки
# --------------------
# Включить проверку на вирусы
virusscan = on
# Способ проверки clamdscan, clamav или kav
virusengine = 'clamav'
# Максимальное количество информации, переданной  клиенту, если файл содержит вирус
tricklelength = 32768
firsttrickledelay = 30
followingtrickledelay = 60
# Список типов MIME, не проверяемых на вирусы
exceptionvirusmimetypelist = '/etc/dansguardian/exceptionvirusmimetypelist'
# Максимальный размер содержимого для проверки,
# если 0 – не ограничено
maxcontentscansize = 0
# Файлы с определенными расширениями не будут проверяться
exceptionvirusextensionlist = '/etc/dansguardian/exceptionvirusextensionlist'
# Временная директория, в которую сохраняется файл для проверки
downloaddir = '/tmp/dgvirus'
# В директории /etc/dansguardian содержатся несколько файлов, в которых можно вписывать исключения,
# т.е. информация с данных сайтов, url, ip или по запросам данных пользователей не будет фильтроваться.
virusscanexceptions = on
urlcachecleanonly = on
virusscannertimeout = 60
# Использование почтового оповещения
notify = 0
# Настройки CLAMDSCAN
# --------------------
# Сокет демона clamd (указывается в clamd.conf)
localsocket = '/tmp/clamd'
# Настройки CLAMAV
# --------------------
clmaxfiles = 1500
clmaxreclevel = 3
clmaxfilesize = 10485760
Конфигурационный файл squid менять не будем. Будем считать, что squid настроен и нормально функционирует, за исключением того случая, если вы хотите установить Dansguardian на порт 3128. Тогда необходимо изменить порт в конфигурационном файле squid.
Теперь необходимо настроить firewall на перенаправление. В Linux это делается примерно так:
iptables -t nat -A PREROUTING --dst x.x.x.x -p tcp --dport 3128 -j DNAT --to-destination x.x.x.x:8080
x.x.x.x поменяйте на IP интерфейса, который смотрит в сторону локальной сети.
Ну вот и все. Теперь при скачивании файла, содержащего вирус, у вас в этом файле появится сообщение о вирусе. Конечно, не очень удобно, но зато безопасно. Лучшим вариантом теперь, наверное, будет не сохранять файлы на диск, а сразу открывать, тогда не будет недоразумений.
К недостаткам dansguardian относится отсутствие русификации, т.е. происходит фильтрация по английским фразам (придется самим придумывать фразы для фильтра). При проверке больших файлов также придется подождать. Dansguardian использует больше ресурсов сервера, по сравнению с редиректорами, что тоже нельзя отнести к плюсам.
В заключение хотел бы сказать, что необходимо отредактировать файлы, находящиеся в каталоге /etc/dansguardian, на которые есть ссылки из основного конфигурационного файла, так как при тестировании, например, выяснилось, что по умолчанию он блокирует zip-архивы. Программа должна быть настроена под политику безопасности организации, то есть если организация позволяет скачивать музыку, то какой смысл блокировать mp3-файлы.
В целом у меня о программе сложилось хорошее впечатление. Простая в установке, несложная в настройке, она имеет достаточно обширные возможности. Хотелось бы, чтобы данный проект и дальше развивался, позволяя системным администраторам защищать локальную сеть от нежелательных данных.
P.S Раньше часто использовал данную связку,в принципе и сейчас использую в некоторых организациях,но нашел интересную для меня замену уже в готовых дистрибутивах с подобным ПО,но вдруг кому нибудь пригодится :)
2 сентября 2010, 11:24
3861

Загрузка...
Loading...

Комментарии

пжалста, уносите большие тексты под кат. так всем будет лехче
? увы не особо еще разобрался здесь
Извиняюсь, а где здесь кат?
По моему его здесь нет, и не было.

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

Инцидент с пьяным киргизским гостем на борту Air Astana, наверное, остался бы только во внутренних сводках авиакомпании, если бы г-н Доган, не поднял громкий крик о государственном языке.
openqazaqstan
17 авг. 2017 / 14:43
  • 12239
  • 178
Дайте Байбеку сломать и переделать город. Он хочет шагнуть вверх, а не бабло украсть

Дайте Байбеку сломать и переделать город. Он хочет шагнуть вверх, а не бабло украсть

Я в тогдашней Алма-Ате родился, вырос. В школу начал ходить пешком. Весь центр опползал. Все эти знаковые места помню как ещё не знаковые места. Никаких этих ностальгических страданий у меня нет.
Aidan_Karibzhanov
21 авг. 2017 / 16:25
  • 7222
  • 34
Подземная Акмечеть Бекет-Ата в Атырауской области – одно из самых сакральных мест

Подземная Акмечеть Бекет-Ата в Атырауской области – одно из самых сакральных мест

Его отцом был Мырзагул, матерью Жания, оба глубоко верующие. По рассказам, Бекет-Ата обладал богатырской силой, что в том числе помогало выбивать мечети в крепких скалах.
theYakov
21 авг. 2017 / 17:21
  • 3404
  • 3
Имеющий уши да услышит. Латиница касается только казахского языка

Имеющий уши да услышит. Латиница касается только казахского языка

Президент Назарбаев наконец-то разъяснил для всех, кто ещё не понял, очевидный вопрос, который всем в Казахстане очевиден. Елбасы повторил: на латиницу мы переводим казахский язык, и это не означает отказ от русского языка.
openqazaqstan
18 авг. 2017 / 16:23
  • 3567
  • 52
Байбек замахнулся на то, о чём давным-давно писали и говорили – «город для людей»

Байбек замахнулся на то, о чём давным-давно писали и говорили – «город для людей»

Какой «золотой квадрат»? Вам действительно это место кажется лучшим?! Вот когда Байбеку удастся воплотить в реальность скверы и парки, тогда я буду согласен называть старый центр золотым квадратом.
openqazaqstan
вчера / 16:53
  • 2881
  • 20
«Нас и здесь неплохо кормят», или почему я не собираюсь уезжать из Казахстана

«Нас и здесь неплохо кормят», или почему я не собираюсь уезжать из Казахстана

Я всегда теряюсь, когда слышу этот вопрос, потому что я так и не сумел выразить причину одной фразой. Давайте рассмотрим популярные варианты, и я объясню, что именно мне в них не нравится.
convoluted
21 авг. 2017 / 12:29
Надо научиться видеть скрытые экономические процессы за вспышкой национального гнева

Надо научиться видеть скрытые экономические процессы за вспышкой национального гнева

При полном отсутствии бюджетного жилищного строительства, целые аулы оседают в ветхих домишках, сквозь заборы которых насмешливо возвышаются башни "коктемов", "риц карлтонов" и "есентаев".
niyazov
19 авг. 2017 / 11:16
  • 2609
  • 68
В Кокшетау строят два парка для молодёжи. Будут учтены интересы и любителей спорта

В Кокшетау строят два парка для молодёжи. Будут учтены интересы и любителей спорта

Общая площадь парка составляет 25 гектаров. На территории предусмотрено устройство прогулочных дорожек, площадок для установки аттракционов и павильонов различного назначения, цветников.
zhasakmola
17 авг. 2017 / 17:13
  • 2209
  • 1
Казахский язык выбирает алфавит, который считает необходимым. Дело не в латинице

Казахский язык выбирает алфавит, который считает необходимым. Дело не в латинице

У русскоязычных казахов два варианта, один - срочно отдавать детей в казахские школы, если видят их будущее в стране. Русскоязычным неказахам ещё меньше выбора. Надо становиться казахами.
Aidan_Karibzhanov
22 авг. 2017 / 18:08
  • 2350
  • 60