Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Опции оставляем «как есть»
|
За собой оно потянуло следующее:
havp-0.88.tar.gz 113 kB clamav-0.93.tar.gz 15 MB gmp-4.2.2.tar.gz 2226 kB arc-5.21o.tgz 80 kB arj-3.10.22.tar.gz 421 kB m4-1.4.9.tar.bz2 595 kB help2man-1.36.4.tar.gz 83 kB gettext-1.05.tar.gz 7693 B lha-114i.tar.gz 63 kB unzoo_4.4.orig.tar.gz 25 kB |
После успешной сборки делаем
|
Настройка
Clamav
Собственно сам Clamav в виде работающего демона не нужен, нужна только библиотека, поэтому большого смысла в его конфиге помоему нет, но на этапе отладки Clamav приходилось дергать, поетому и чегото менял в конфиге. Резервную копию первоначальных конфигов сделали за нас.
Правим /usr/local/etc/clamd.conf
Часть опций менять нет смысла, но я остановился на следующих параметрах:
|
Правим /usr/local/etc/freshclam.conf
|
Это чтобы freshclam не ругался на незапущенный clamd: WARNING: Clamd was NOT notified:
HAVP
Опять же, о дефолтовых конфигах позаботились за нас,
Правим: /usr/local/etc/havp/havp.config
|
Хотел бы отметить опцию LOG_OKS - играясь ею можем логировать как все запросы поступающие на HAVP так и только запросы с заразой. Фича очень полезная на этапе отладки в состоянии «true», после настройки имеет смысл выключить.
По умолчанию HAVP в логах пишет источником всех запросов адрес дочернего прокси (127.0.0.1 в даном случае), опция FORWARDED_IP позволяет отображать в логах HAVP IP-адрес пользователя, который может передавать Squid при включеном «forwarded_for on» (который при обычном раскладе целесообразно отключать). Сам HAVP по умолчанию не передает IP-адрес пользователя дальше на веб сервера, что есть хорошо.
Теперь нужно переместить шаблоны сообщений HAVP (русские, английские или все что есть).
/usr/local/share/examples/havp/ папка templates. Ее нужно положить в /usr/local/etc/havp/
Еще о шаблонах: Дефолтовые шаблоны русских сообщений содержат мелкий недочет - сообщения выводятся в красной рамочке красными буквами.
З.Ы. знакомый отписал что "трабл с цветами пофиксили в портах" - сам еще не проверял. Так что юзайте нижеописаное при необходимости.
Я решил вопрос кардинально - везде где надо было поставил «color: black». Вот что и где менялось:
diff -Bb /usr/local/share/examples/havp/templates/ru/blacklist.html /usr/local/etc/havp/templates/ru/blacklist.html < td.havp_scheme.msg_area p.warn {color: #FF6600} > td.havp_scheme.msg_area p.warn {color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/dns.html /usr/local/etc/havp/templates/ru/dns.html < td.havp_scheme.msg_area p.warn {color: #FF6600} > td.havp_scheme.msg_area p.warn {color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/down.html /usr/local/etc/havp/templates/ru/down.html < td.havp_scheme.msg_area p.standart {color: #00AE22} > td.havp_scheme.msg_area p.standart {color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/error.html /usr/local/etc/havp/templates/ru/error.html < td.havp_scheme.msg_area p.warn {color: #FF6600} > td.havp_scheme.msg_area p.warn {color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/invalid.html /usr/local/etc/havp/templates/ru/invalid.html < td.havp_scheme.msg_area p.warn {color: #FF6600} > td.havp_scheme.msg_area p.warn {color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/request.html /usr/local/etc/havp/templates/ru/request.html < td.havp_scheme.msg_area p.standart {color: #00AE22} > td.havp_scheme.msg_area p.standart {color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/scanner.html /usr/local/etc/havp/templates/ru/scanner.html < td.havp_scheme.msg_area p.danger {border-width: 1.5mm; margin-right: 20%; margin-left: 20%; width: 60%; border-style: ridge; border-color: red; color: #D80028} > td.havp_scheme.msg_area p.danger {border-width: 1.5mm; margin-right: 20%; margin-left: 20%; width: 60%; border-style: ridge; border-color: red; color: black} diff -Bb /usr/local/share/examples/havp/templates/ru/virus.html /usr/local/etc/havp/templates/ru/virus.html < td.havp_scheme.msg_area p.danger {border-width: 1.5mm; margin-right: 20%; margin-left: 20%; width: 60%; border-style: ridge; border-color: red; color: #D80028} > td.havp_scheme.msg_area p.danger {border-width: 1.5mm; margin-right: 20%; margin-left: 20%; width: 60%; border-style: ridge; border-color: red; color: black} |
Также надо создать файлы чернобелых списков для havp:
|
Оформляем автозапуск
/etc/rc.conf
|
Предварительный запуск
Запускаем обновление антивирусных баз:
|
Смотрим чего получилось:
# tail -f /var/log/clamav/freshclam.log freshclam daemon 0.93 (OS: freebsd6.1, ARCH: i386, CPU: i386) ClamAV update process started at Thu May 8 17:00:01 2008 main.cvd is up to date (version: 46, sigs: 231834, f-level: 26, builder: sven) WARNING: getfile: daily-6689.cdiff not found on remote server (IP: 62.236.254.228) WARNING: getpatch: Can't download daily-6689.cdiff from database.clamav.net WARNING: getfile: daily-6689.cdiff not found on remote server (IP: 217.19.16.188) WARNING: getpatch: Can't download daily-6689.cdiff from database.clamav.net WARNING: getfile: daily-6689.cdiff not found on remote server (IP: 213.73.255.243) WARNING: getpatch: Can't download daily-6689.cdiff from database.clamav.net WARNING: Incremental update failed, trying to download daily.cvd Downloading daily.cvd [100%] daily.cvd updated (version: 7064, sigs: 49400, f-level: 26, builder: ccordes) Database updated (281234 signatures) from database.clamav.net (IP: 212.1.60.18) -------------------------------------- |
Пробуем стартовать havp:
|
Скорее всего полет нормальный, порт слушается, havp запустился.
в логах:
# tail -f /var/log/havp/error.log 08/05/2008 17:12:51 === Starting HAVP Version: 0.88 08/05/2008 17:12:51 === Mandatory locking disabled! KEEPBACK settings not used! 08/05/2008 17:12:51 Running as user: havp, group: havp 08/05/2008 17:12:51 --- Initializing ClamAV Library Scanner 08/05/2008 17:12:51 ClamAV: Using database directory: /var/db/clamav 08/05/2008 17:12:58 ClamAV: Loaded 277836 signatures (engine 0.93) 08/05/2008 17:12:58 ClamAV Library Scanner passed EICAR virus test (Eicar-Test-Signature) 08/05/2008 17:12:58 --- All scanners initialized 08/05/2008 17:12:58 Process ID: 85924 |
SQUID
Предполагая что сквид уже настроен и работает - проводим следующий финт - в конфиг /usr/local/etc/squid/squid.conf лепим:
|
Теперь подробнее о содеянном: первой строчкой заворачиваем все потенциально кешируемые запросы которых нет «у себя» на родительский прокси которым выступает HAVP. Преимуществом (или недостатком, кому как) есть то, что в родительский кеш не будут попадать запросы описанные параметром сквида hierarchy_stoplist, а это запросы содержащие {'cgi-bin'|'?'} - т.е. запросы к веб скриптам. Вероятность что скрипты будут возвращать вирусы есть, но при определенных условиях эту вероятность можно игнорировать. Таким образом проверятся будут только файлы на которые можно попасть прямой ссылкой (без «cgi-bin» и »?» в адресе). Позитивным моментом есть тот факт, что когда родительский кеш «упал» - то для пользователей это никак не проявляется, сквид работает как обычно.
Если такое поведение не устраивает - то можно запретить сквиду ходить «напрямую», и все запросы переадресовывать на родительский прокси. Для этого включаем опцию «never_direct allow all».
В одном мз двух запусков этой мегасистемы были замечены проблемы с работой аськи через HTTPS (проблем с другим ПО работающим через сквид по HTTPS вродь не замечалось). Для лечения есть смысл исключить HTTPS трафик от отправки на HAVP, всеравно он HTTPS не раскрывает, а по документации только умеет форвардить через себя напрямую (видать не очень хорошо умеет). Собственно для этого пользуем «always_direct allow SSL_Ports». Еще вылезла "фича" - HAVP сам не умеет ходить на FTP, только умеет пересылать такие запросы на вышестоящий прокси. Строить такую связку нет не смысла не желания, поетому выпускаем FTP в мир прямо со squid'а «always_direct allow FTP».
Кстати, таким же образом можно исключить определенные типы файлов из проверки. Достаточно написать нужный ACL.
В конфиге сквиды есть еще другие опции касающиеся работы иерархии кешей, но я с ними пока не разбирался.
Если сквид сконфигурирован с delay pools - то перезапускаем его, иначе можно просто передернуть:
|
Еще раз о «forwarded_for on» - если хотим видеть на HAVP IP-адреса пользователей а не сквида - то в сквиде нужно включить эту опцию(вроде включена по умолчанию).
Итого
Для проверки заходим на http://www.eicar.org/anti_virus_test_file.htm и пытаемся качать:
http://www.eicar.org/download/eicar.com.txt
http://www.eicar.org/download/eicar_com.zip
http://www.eicar.org/download/eicarcom2.zip
Если все сделали правильно - должны увидеть в браузере красивое уведомление.
И как доказательство в логах /var/log/havp/access.log
08/05/2008 18:18:12 127.0.0.1 GET 200 http://www.eicar.org/download/eicar.com.txt 356+68 VIRUS ClamAV: Eicar-Test-Signature 08/05/2008 18:19:50 127.0.0.1 GET 200 http://www.eicar.org/download/eicarcom2.zip 363+308 VIRUS ClamAV: Eicar-Test-Signature |
Недостатки решения
Пока вроде полет нормальный. Единственное что HAVP при запуске ругается на «Mandatory locking», да и в документации на него говорят что это нужно для работы. Хотя и без него вродь нормально.
Из того что не долго разбираясь вычитал - то это уходит корнями в Линуксы, и к Фряхе непонятно каким боком относится. Может когда по свободе разгребу.
Сцылки
1. http://www.server-side.de/index.htm - HAVP Домашняя страница
2. http://www.lissyara.su/?id=1128 - SQUID & ICAP & ClamAV «это почти ни у кого не работает»
3. http://www.markelov.net/articles.php?lng=ru&pg=186 - Проверяем HTTP-трафик на лету (Старое, ориентированное на линукс)
4. http://linuxforum.ru/index.php?showtopic=56867 - Squid + HAVP помогите с настройкой
5. http://havp.hege.li/forum/viewtopic.php?t=179 - Squid Sandwich and SSL/FTP
Другие варианты:
6. Squid+Clamav через squidGuard и viralator
размещено: 2008-05-20,
последнее обновление: 2008-05-21,
автор: KrivoSoft
sava, 2008-05-20 в 15:27:23
Первый нах!
Кста, в портах траблю с цветом букаф/фона уже пофиксили. Еще можно запускать havp от имени clamav:clamav, убиваем зайца при использовании clamd_socket вместо libclamav. Еще исправь в статье ссылку на havp_krivosoft.tar..
Во всем остальном - работает как огонь :)
BlackPhantom, 2008-05-20 в 18:22:44
Мега-респект! Долго трахался с icap (безуспешно), поэтому статья очень полезна...
psj, 2008-05-20 в 18:30:39
АГРОМАДНОЕ СПАСИБО!!! Всё завелось с полпинка
FreeDy, 2008-05-20 в 21:35:12
Т.к. ссылки на обсуждение в форуме нет, пишу тут. 1) Проверял ли автор реакцию пользователя на скачивания больших файлов? ИМХО Пользователь часто в Виндовсе нажимает скип и повторно пытается закачать файл, если не видит прогресса статус-бара по скачиванию.
2) Как работает банк-клиент и прочие, подобные, софтины если их не добавлять в блэклист?
sava, 2008-05-20 в 21:47:10
c_icap с третьим сквидом кстати (!)почти прекрасно работает, единственное из-за чего отказался - невозможность докачки файлов.
razor, 2008-05-21 в 9:45:50
юзал довольно длительное время пока не уперся в невозможность сабжа и delay_pool"ов. не работают пулы при этом похоже :(
cj_nik, 2008-05-21 в 9:50:35
Да вот по поводу вопроса FreeDy, действительно интересно
Когда пользователь прерывает закачку гигового файлика :)
потом начинает опять, ну и т.д в разных вариациях...
Ну и с Делй Пулами как я понимаю в такой системе проблем нет?
KrivoSoft, 2008-05-21 в 10:36:28
2FreeDy:
1)Большие файлы качаются абсолютно нормально. Присутствует небольшая задержка, но это все настраивается в конфиге хавп. Т.е. можно явно указать какой кусок "большого файла" пытатся сканить. Вот собственно и все. Читаем коментарии к параметрам конфига havp!
2)Вопервых - блеклисты применительно к хавп - это "List of URLs that are denied access". Т.е. если добавить клиентбанки в блеклист - то точно работать не будут :-)
А вот если не трогать ничего - то ситуация следующая:
клиентбанки работающие по HTTPS уйдут со сквида в мир напрямую, и никто ничего не заметит. А те кто работают по HTTP - им то какая разница?
HAVP я уже внедрил на 3х среднемелких конторах - пока никаких жалоб. Юзеры абсолютно ничего не заметили.
2razor
А вот и неправда! С делай пулами полный порядок! Между юзером и сквидом ведь ничего не добавилось. С чего бы перестали делай пулы работать?!
razor, 2008-05-21 в 10:48:13
2 KrivoSoft
это точно? я сколько ни крутил, так и не вышло объединить. и в инете тоже читал жалующихся. ну сейчас может еще разок попробую.
Sash, 2008-05-21 в 10:52:47
не совсем понятно каким макаром конфиги править. вот, например, что значат стрелочки вот тут и других конфигах?
< NotifyClamd /usr/local/etc/clamd.conf
> #NotifyClamd /usr/local/etc/clamd.conf
KrivoSoft, 2008-05-21 в 11:08:37
2razor
С делай пулами 100% порядок. Никаких аномалий.
2Sash
Для тех кто не вкурсе - стрелочки уходят корнями в diff.
И символизируют приблизительно то, какую строчку конфига убрали ("<") и чего вместо нее написали (">"). Мне такое представление кажется удобным, т.к. явно отражает измененные параметры, и избавляет от необходимости приводить огромные конфиги в статье.
З.Ы. Я ссылку на форум дорисовал, вопросы плз туда.
Sash, 2008-05-21 в 11:26:54
пасиб )
kazavochka, 2008-05-22 в 12:33:48
Ничего не поняла, но судя по количеству буквочек все должно быть очень интерестно!
PainKilleR, 2008-05-24 в 20:05:06
Жесть! Всё завелось! Спасибо!
KrivoSoft, 2008-05-29 в 13:51:37
Вот еще что придумал:
кому интересно - вот скрипт, который будет статистику по отловленым вирусам писать в secutity отчет.
(не забываем права! 555, root:wheel)
/usr/local/etc/periodic/security/451.havp
#!/bin/sh -f
# Copyright (c) 2008 KrivoSoft. All lefts reserved.
yesterday=`/bin/date -v-1d "+%d/%m/%Y"`
logfile='/var/log/havp/access.log'
echo
echo "`/usr/bin/grep -c ${yesterday} ${logfile}` virus(es) detected by HAVP:"
echo
/usr/bin/grep ${yesterday} ${logfile}
# echo "`/usr/bin/grep -c ${yesterday} ${logfile}` virus(es) total."
exit 0
KrivoSoft, 2008-05-30 в 15:43:15
Еще вылезла "фича" - для того чтоб работало радио через прокси желательно в конфиге havp раскоментировать строчку:
STREAMUSERAGENT Player Winamp iTunes QuickTime Audio RMA/ MAD/ Foobar2000 XMMS
ashgdw, 2008-06-25 в 16:37:12
Дает ошибку часто"HAVP Ошибка при запросе службы доменных имён."
Приходится сайт несколько раз загружать. В чем может быть дело
KrivoSoft, 2008-06-25 в 17:28:54
Скорее всего какие то проблемы с разрешением имен с этой машины. Смотри конфигурацию ДНС.
Как вариант завести bind как кеширующий ДНС (если это еще не сделано), и пусть сам он резолвит имена обращаясь к корневым ДНС итд.
Еще проверь насколько хорошо работают те ДСНы шо указаны в данный момент. Может к ним пакеты медленно лазят, и по таймауту убиваются...
Вроде вот так...
ashgdw, 2008-06-25 в 19:34:53
Блин, ступил, проблема была в squid.
Krivosoft, 2008-08-11 в 14:02:40
Вот наблюдается проблемка с возможным ложным срабатыванием: блочатся ukr.net bigmir.net mail.ru и кучка других сайтов с жалобой на "VIRUS ClamAV: Email.Trojan-8".
Изучил вопрос - косяк вроде кламавовский, для решения в конфиг ХАВП можно влепить
IGNOREVIRUS Email.
FOX, 2008-12-02 в 4:34:22
Супер! Молодец что отписался с пол пенка взлитело, скоро поставлю на свои два объекта там примерно 20 и 50 машин потестирую, серванта конфиг 2 гб озу двуядерный интел с 3 метрами кеши и обслуживает 3 сети, 3 интерфейса смотрят во внутерь, посмотрим там и анти спам с анти вирусом ещё постфикс контролируют! Огромное спасибо за статью!!!
Amadeus, 2009-03-27 в 15:19:22
Автору респект) сейчас делаю так сказать мфу сервер для удаленной сети)данное решение взлетело без проблем и косяков.
gonzo111, 2009-07-02 в 13:34:20
опечатка в /usr/local/etc/clamd.conf вместо MaxFileSize 8M,MaxRecursion 3,MaxFiles 1500
наверно должно быть ArchiveMaxFileSize, ArchiveMaxFiles 1500 ... и тд
paranoidchaos, 2009-09-03 в 11:21:55
Пока вроде полет нормальный. Единственное что HAVP при запуске ругается на «Mandatory locking», да и в документации на него говорят что это нужно для работы. Хотя и без него вродь нормально.
/dev/VolGroup00/LogVol00 / ext3 defaults,mand 1 1
необходимо врубить опцию mand на ту партицую где будут расположенны
SCANTEMPFILE /tmp/havp-XXXXXX
Коломиец Максим, 2009-12-11 в 9:27:00
Как-то слабовато все равно работает связка.
http://www.eicar.org/download/eicar.com
Пропускает. Рары распаковывать не хочет..
Так и должно быть?
KrivoSoft, 2009-12-11 в 9:38:02
Уважаемый, скорее всего вы забылы установить драйвера для рук :-)
Если "связка" пропускает eicar - то Вы явно чето пропустили при настройке (или eicar у Вас уже в сквидовом кеше сидит):-)
С рар-ами у меня точно все нормально, такшо опять же см. п.1
guest777, 2010-02-04 в 17:23:14
большое спасибо за статью, прикрутил к самсу, все работает (пока никто не жаловался), спасибо...
Faster, 2010-03-02 в 13:04:32
Автору респект! все работает, вроде...
не могу только понять как сделать так чтобы хавп понимал аксесс листы сквида и не блокировал то что разрешено сквидои...
inn, 2010-07-07 в 18:19:48
Все работает.
Только вот в логи сквида cache.log
пишется постоянно вот такое,
ZPH: Preserving TOS on miss, TOS=0
Весь лог забит.
Как избавиться?
И что это вообще такое
Alexandr82, 2012-02-29 в 17:26:22
Тупит интернет после установки HAPV. Особенно при попытке скачать файл.
viv, 2012-07-06 в 8:54:30
Спасибо огромное за статью!!! сразу все заработало, прикрутил к связке [url=http://www.lissyara.su/articles/freebsd/traffic_count/squid+sams+rejik/] , мну доволен =)
8.3-RELEASE FreeBSD 8.3-RELEASE #0: Mon Apr 9 21:23:18 UTC 2012 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [31 шт.]