Антивирусная защита корпоративной сети одна из наиболее актуальных задач для системного администратора. Одним из основных путей проникновения вирусов и прочих вредоносных программ является Интернет, поэтому весьма логично будет проверять проходящий HTTP трафик на наличие вирусов еще на роутере, до того как потенциально опасное ПО попадет во внутреннюю сеть.Такой подход позволяет существенно повысить безопасность сети, особенно для небольших организаций, где у администратора зачастую нет инструментов централизованного контроля и управления антивирусной защитой на клиентских ПК. В UNIX-like системах весьма популярен антивирусный сканер ClamAV, во многом благодаря своей бесплатности. Он неплохо подойдет для учебных и некоммерческих организаций, а также при ограниченном бюджете. В иных случаях стоит обратить внимание на коммерческие решения, например от "Лаборатории Касперского", потому что эффективность ClamAV довольно низка, хотя вполне приемлема для бесплатного продукта.
В качестве примера будем использовать роутер из нашей тестовой лаборатории, настройку которого мы рассматривали здесь.
Кроме антивируса ClamAV мы будем использовать HAVP - HTTP Antivirus Proxy - специализированный прокси-сервер для антивирусной проверки трафика. Общая схема будет выглядеть следующим образом: клиентский запрос поступает кэширующему прокси-серверу Squid, который либо выдает результат из кэша, либо передает запрос вышестоящему прокси HAVP, тот обрабатывает запрос, проверяет трафик антивирусным сканером и передает его обратно Squid'у который отдает запрос клиенту и помещает его в кэш. Этим достигается высокое быстродействие - кэш Squid'а не проверяется антивирусом. Преимуществами HAVP, по сравнению с редиректорами (squidclamav и т.п.) является более высокая скорость работы и поддержка широкого спектра антивирусных приложений, что дает возможность сменить антивирус без кардинального перестроения всей системы.
Итак, приступим. Установим ClamAV:
sudo apt-get install clamavПриложение в настройке не нуждается. По умолчанию обновление антивирусных баз происходит один раз в час.
Установим HAVP:
sudo apt-get install havpHAVP по умолчанию настроен на работу с ClamAV и также не требует настройки. Хотя мы рекомендовали бы найти опцию TEMPLATEPATH (в /etc/havp/havp.config), раскомментировать ее и изменить на:
TEMPLATEPATH /etc/havp/templates/ruЭто позволит выводить страницы ошибок и сообщений о найденных вирусах на русском языке. Также может потребоваться изменить опцию PORT. По умолчанию HAVP работает на порту 8080, что не всегда приемлемо, данный порт часто бывает занят другими программами (например DansGuardian). Перезапускаем HAVP:
sudo /etc/init.d/havp restartТеперь настроим Squid на использование вышестоящего прокси и сканирование только HTTP трафика. В конец файла /etc/squid/squid.conf добавляем следующие строки:
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange defaultcache_peer_access 127.0.0.1 allow allacl Scan_HTTP proto HTTPnever_direct allow Scan_HTTPПерезапускаем Squid:
sudo /etc/init.d/squid restartТеперь с клиентского ПК заходим на страничку http://eicar.org/anti_virus_test_file.htm и пробуем скачать тестовый вирус (не опасен, представляет собой специальную сигнатуру для проверки антивирусного ПО). Если все настроено правильно мы должны увидеть следующую страничку:

Сори, хотел уточнить, будет ли корректно работать всё чо тут указано в разрезе той конфигурации что разбиралась тут: http://interface31.ru/tech_it/2010/03/ubuntu-server-nastraivaem-kontent-fil-tr-routera-dansguardian.html
Когда м настраивали контентфильтр...
Заранее признателен за ответ.
Будет. Единственное, надо согласовать порты, по умолчанию HAVP и DansGuardian работают на 8080.
Также можно использовать встроенные в DansGuardian возможности по антивирусной фильтрации. Как это сделать расскажем в ближайшей статье.
буду крайне признателен если на основе того что делали в прошлых статьях построить антивир.защиту... конечно идеально если рассмотрим два варианта как использовасть сам DG и как с кламом (переопределить порты)...
и продолжаем ждать статью про OpenLDAP :)
Даже не знаю как выразить своё восхищение читая ваши статьи! Очень доступно, понятно и самое главное всё работает! Автору огромное спасибо! Не буду льстить, но это лучшее описание в интернете по Ubuntu Server которое мне удавалось найти в поисковике. У меня единственная просьба, если не затруднит, очень бы хотелось увидеть статью про почтовый сервер для малой и средней организации на Ubuntu Server. Чего не нахожу то где-то не объяснят для чего это сделали и в итоге в комментариях все пишут, что что-то не получилось, а по вашему описанию всё работает как часы! Ещё раз огромное спасибо, надеюсь что вы найдёте немного времени для почтового сервера.
> и продолжаем ждать статью про OpenLDAP :)
Все будет. Но несколько позже. Начав готовить материал по OpenLDAP стало понятно, что нужно либо раздувать объем статьи на объяснения тех или иных параметров и настроек, либо получится руководство для тех "кто в теме". Поэтому решили выпустить целый цикл статей посвященный службам каталогов. Начиная от обзорных и заканчивая конкретными реализациями.
Про почтовый сервер ждите, скоро будет.
Если будет целый цикл и там всё будите раскладывать по полкам, то это будет наивысший пилотаж.
Присоеденяюсь к коллеге на предмет почтовика и к его отзыву по поводу того, что данный ресурс в рунете единственный где всё изложенно грамотно и качественно!
Будем ждать дружно цикл статей про OpenLDAP и статейку про почту :)
Автору проекта в копилку очередное спасибо за антивирусник :)
Просто у меня есть одно правило, все о чем я пишу проверяется на практике в нашей тестовой лаборатории (сегодня это три мощных ПК и более 100 виртуальных машин). Кроме того в каждой статье собран не только мой труд, но и труд моих сотрудников, которые проверяют, перепроверяют, находят оптимальные пути и решения. Пишу, к сожалению, пока один я. Хотя готовы сотрудничать и с другими авторами.
Про OpenLDAP и т.п. Если просто дать статью с настройкой OpenLDAP, AD или любогй другой службы каталогов, то для большинства это будет "китайской грамотой", максимум что они смогут - слепо повторить пример без понимания его сущности. На наш взгляд, сначала требуется дать объем теории, что такое службы каталогов, для чего и зачем они нужны, как они строятся, какие бывают и только после давать готовые реализации. Что позволит с пониманием подходить к развертыванию любой реализации службы каталогов на любой платформе.
Отличная статья. Большое Вам спасибо за материал, очень сильно помогли.
Есть одна небольшая просьба. Расскажите, есть ли какие-либо варианты блокирования torrent-контентана шлюзе ubuntu, настроенном по вашим статьям. DG не установлен, т.к. по большому счету нет необходимости.
Спасибо, с уважением, Роман.
К сожалению на сегодня нет технической возможности эффективно определять и блокировать торрент-трафик, поэтому самыми лучшими мерами будут административные.
Тогда еще один вопрос: чем можно эффективно мониторить сетевую нагрузку на сетевые карты? (а именно - допустим с компа в сети приходит запрос по определенному порту, и в этом случае в логе остается запись, что с такого-то компьютера было обращение на этот порт, и если оно было, то какой объем траффика использовал тот компьютер)
С уважением, Роман.
В этом случае вам нужно установить какой либо биллинг. Я думаю чуть позже мы рассмотрим этот вопрос в отдельной статье.
здравствуйте!
при попытке скачать тестовый антивирус, по указанной вами ссылке, с http:// HAVP прекрасно отрабатывает.
но при попытке скачать с https:// браузер (в моем случае firefox 3.6.6 и ie 6.0) предлагает сохранить инфицированный файл.
подскажите пожалуйста, в чем может быть проблема?
заранее благодарен за ответ.
В данном случае все правильно. HTTPS - защищенный протокол, было бы странно, если бы транзитный хост мог получать доступ к защищенным данным. Поэтому антивирус на роутере не панацея, основной упор должен быть на защиту конечных станций.
при добовлении в конец файла конфига
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP
пытаюсь перезапустить squid выдёт: Job faild to restart
и страницы перестают открываться на клиенте
подскажите пожалуйста в чём может быть проблема?
Значит где-то допустили ошибку, проверяйте.
Всё заработало!!! действительно была ошибочка с пробелом
Спасибо большое за статью
Антивирусный фильтр не заработал, тестовые вирусы успешно загружаются.
В error.log havp есть такие записи: "ClamAV Library Scanner passed EICAR virus test (Eicar-Test-Signature)".
И перестал работать, настроеный по Вашей статье, прозрачный прокси роутера - теперь в браузере приходится указывать явно настройки прокси-сервера :(
Не подскажете где искать ошибку?
Данная настройка никак не затрагивает прозрачный прокси, единственное что вы могли поломать, это связку squid - HAVP. Ищите ошибку там. В частности проверьте что вы добавили в конфиг squidа. Строк всего 4, первые две начинаются с cache_peer.
Ну да, добавил Ваши строки
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all
acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP
Однако, проблема с прозрачным прокси появилась на следующий день - после перезагрузки сервера.
Перезапустите вручную сеть и посмотрите что будет в логах. Возможно ошибка или неточность где-то в цепочках iptables. Своих правил не добавляли?
При перезапуске сети имеется такое сообщение:
SIOCADDRT: File exists
Failed to bring up eth0.
Раньше не замечал..
Свои правила не добавлял, во всяком случае осознанно :)
Проверяйте что у вас написано в etc/network/interfaces. Как я понимаю eth0 - внешний интерфейс, каким образом он настроен: DHCP, статический IP, не нужны ли дополнительные маршруты? С нашими провайдерами возможно всякое.
Ошибка с eth0 ушла или сама, или из-за моих неосознанных действий. Причиной того что не работал прозрачный прокси было то что в последней строке файла /etc/nat была указана сеть 10 из статьи, а не моя. Как это произошло - не помню :)
В итоге: роутер с прозрачным прокси работает, а антивирусный фильтр роутера не работает - т.е тестовый вирус благополучно закачивается на локальную машину.
Подскажите что можно сделать?
Возможно у вас не работает прозрачный прокси. Сделайте squid stop и проверьте интернет. Иначе смотрите clamav.
squid stop - это я проверил сразу - интернет гаснет. всё как надо. а clamav куда смотреть? база обновляется...кэш squid очищал. тестовый вирус успешно загружается. при проверке локальным clamav - обнаруживается.
Теперь аналогичным образом проверьте - идет ли трафик через HAVP.
Аналогичным образом от "havp stop" интернет пропадает. При запуске havp - восстанавливается
Добрый день!
Подскажите одну проблему не могу разобраться с HAVP: выдает ошибку сегментирования,при его запуске.
При внесении изменений в файл /etc/squid/squid.conf и рестарте squid ругается: "unknown neighbor type: 127.0.0.1", что-то я не указал в конфиге?
После установки HAVP выдал:
"WARNING: Your ClamAV installation is OUTDATED!"
Добавил репозитарий:
deb http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu hardy main и сделал ребут - не помогло.
P.S.: Спасибо Вам за статьи, очень помогают разобраться.
Проверяйте синтаксис, там всего 4 строки, первые две начинаются с cache_peer
По второй ошибке - не обращайте внимания, она означает что версия антивируса (но не баз!) отличается от последней. В репозитории Убунту, как правило, содержатся более старые версии, чем на официальном сайте.
Как можно поверх всего что здесь сделано установить SAMS?
Очень часто получаю:
HTTP Antivirus Proxy - HAVP
Ошибка при запросе службы доменных имён
Произошла ошибка DNS при попытке открыть страницу
....
Как излечить сие ..?
Я так понимаю, это происходит нерегулярно? Укажите в настройках клиента и сервера другие DNS сервера, например OpenDNS:
208.67.220.220
208.67.222.222
SAMS в принципе никак не затрагивает существующую схему, единственное проконтролируйте, какая служба какой порт использует.
Добрый день!
Подскажите как пропускать запросы вида "ftp://ftp.shtrih-m.ru/download/FR/Software/Drivers/DrvFR_4.9_205.rar" через squid?
Настроена связка интернет-havp-squid-локальная сеть, при вводе в браузере указанного запроса получаю сообщение от HAVP "FTP is currently supported only if PARENTPROXY is Used!"
Так понимаю что squid не пропускает эти запросы, если же ввести запрос вида "ftp://user:password@ftp.shtrih-m.ru/download/FR/Software/Drivers/DrvFR_4.9_205.rar" тогда после авторизации файл можно сказать.
В саппорте HAVP советуют следующее решение. В конфиге Squid открыть еще один порт:
http_port 3129
В конфиге HAVP добавить:
PARENTPROXY 127.0.0.1
PARENTPORT 3129
Сразу предупреждаю, мы не проверяли. Взято с англоязычного сайта поддержки.
Что ж мне так не везет:(
После установки havp следующее сообщение:
==========
Starting havp: Starting HAVP Version: 0.91
LibClamAV Error: cli_loaddb(): No supported database files found in /var/lib/clamav/
One or more scanners failed to initialize!
Check errorlog for errors.
Exiting..
invoke-rc.d: initscript havp, action "start" failed.
E: Error starting service (could be due to port 8080 already in use), ignoring...
==========
выручайте, плз!
Для начала разберитесь с конфликтом портов, у вас на 8080 работает другая служба (скорее всего DG), поменяйте порт либо там, либо у HAVP.
Нет, DG не устанавливал...
Только squid. В iptables:
=====
iptables -t nat -A PREROUTING -i eth1 -d ! $LAN_IP -p tcp -m multiport --dport 80,8080 -j DNAT --to $eth1_IP:3128
=====
То есть, шлюз и squid установлены так, как в вашем мануале. Ну, фильтрация юзеров и URL (acl) еще добавлена в прокси..
Что еще может работать на 8080?
Попробую завтра поменять порт у HAVP.
Поставьте для HAVP скажем 8081, для подобных служб порты лучше менять, во первых меньше соблазна у пользователей, во вторых меньше шансов конфликта с другой службой по умолчанию слушающей тот-же порт.
Спасибо, что вы поддерживаете нас! (пользователей в смысле:))
После настройки порта в терминале лицезрею:
================
Cleaning up /var/spool/havp... done
Starting havp: Starting HAVP Version: 0.91
Filesystem not supporting mandatory locks!
On Linux, you need to mount filesystem with "-o mand"
....
Too many tries - Exiting..
====================
что нужно премонтировать в линуксе?
Файловая система содержащая /var/tmp/havp должна быть смонтирована с опцией mand.
Час от часу не легче:(
Мне нужно примонтировать папку:
sudo mount /var/spool/havp -o mand?
Добавьте для ФС в /etc/fstab опцию mand
Для образования почитайте здесь: http://ru.wikipedia.org/wiki/Fstab
Нашел инфу в wiki, завтра попробую добить это дело.
Да, спасибо большое!
Кажется я понял, Filesystem not supporting mandatory locks!
ext4 не поддерживает mand?
Ну у нас же работает на ext4, надо разбираться, какая у вас версия Ubuntu?
Ubuntu server 10.04.3 LTS
Вечером проверю.