Настройка прозрачного прокси с ативирусной защитой

Linux > Настройка прозрачного прокси с ативирусной защитой
29.12.2014 14:35:31



Статья:

 Установка squid3

Тут все хорошо документировано. Вкратце так

apt-get install squid3

после установки открываем файл /etc/squid3/squid.conf и приступаем к настройке

nano /etc/squid/squid.conf

Так как мы будем настраивать прозрачный прокси (на клиентских машинах нам не нужно будет указывать в настройках прокси сервер), в строке http_port 3128, допишем transparent

http_port 3128 transparent

раскоментируем строку, указывающую путь к кэшу и настроим как показано ниже

cache_dir ufs /var/spool/squid 4096 32 256

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

acl localnet src 192.168.1.0/24 # RFC1918 possible internal network 

разрешаем доступ к прокси из внутренней сети

http_access allow localnet

указываем лимит использования памяти

memory_pools on
memory_pools_limit 50 MB

50 мб. вполне достаточно

в случае возникновения ошибок, чтобы видеть их на русском языке, указываете следующее

error_directory /usr/share/squid3/errors/Russian-koi8-r

сохраняем файл, закрываем, перестраиваем кэш

/usr/sbin/squid3 -z

перезапускаем squid

service squid3 restart

Готово!

И заворачиваем трафик на squid (eth1 - это интерфейс локальной  сети 192.168.1.1 его IP)

iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.1:3128

Squid3 (Очистка кеша)

/etc/init.d/squid3 stop
rm -r /var/spool/squid3/*
/usr/sbin/squid3 -z
/etc/init.d/squid3 start

НАСТРОЙКА Антивирусной  проверки

Кроме антивируса ClamAV мы будем использовать HAVP - HTTP Antivirus Proxy - специализированный прокси-сервер для антивирусной проверки трафика. Общая схема будет выглядеть следующим образом: клиентский запрос поступает кэширующему прокси-серверу Squid, который либо выдает результат из кэша, либо передает запрос вышестоящему прокси HAVP, тот обрабатывает запрос, проверяет трафик антивирусным сканером и передает его обратно Squid'у который отдает запрос клиенту и помещает его в кэш. Этим достигается высокое быстродействие - кэш Squid'а не проверяется антивирусом. Преимуществами HAVP, по сравнению с редиректорами (squidclamav и т.п.) является более высокая скорость работы и поддержка широкого спектра антивирусных приложений, что дает возможность сменить антивирус без кардинального перестроения всей системы.

То есть клиент подключается к Squid, а Squid через HAVP уже выходит в Интернет. Это весьма простой в реализации и к тому же более рациональный вариант, так как весь входящий трафик проверяется антивирусом, а страницы из кэша Squid выдаются без проверки.

Итак, приступим. Установим ClamAV:

sudo apt-get install clamav

Приложение в настройке не нуждается. По умолчанию обновление антивирусных баз происходит один раз в час.

Установим HAVP:

sudo apt-get install havp

HAVP по умолчанию настроен на работу с ClamAV и практически не требует настройки. В первую очередь ограничим только локальными соединениями, это необходимо для того, чтобы клиенты не могли подключаться напрямую к HAVP, явно указав его порт. Для этого в /etc/havp/havp.config найдите и раскомментируйте следующую опцию:

BIND_ADDRESS 127.0.0.1
Также раскомментируйте и измените указанным образом опцию: 
TEMPLATEPATH /etc/havp/templates/ru
У нас будит работать на 8081  порту (тк  может быть 8080 порт занят)
PORT 8081

Это позволит выводить страницы ошибок и сообщений о найденных вирусах на русском языке. Также может потребоваться изменить опцию PORT. По умолчанию HAVP работает на порту 8080, что не всегда приемлемо, данный порт часто бывает занят другими программами (например DansGuardian). Перезапускаем HAVP:
sudo /etc/init.d/havp restart (или sudo service havp restart)
Теперь настроим Squid на использование вышестоящего прокси и сканирование только HTTP трафика. В конец файла /etc/squid3/squid.conf добавляем следующие строки:
cache_peer 127.0.0.1 parent 8081 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:
sudo /etc/init.d/squid3 restart  (sudo service  squid3  restart)
Теперь с клиентского ПК заходим на страничку http://eicar.org/anti_virus_test_file.htm и пробуем скачать тестовый вирус (не опасен, представляет собой специальную сигнатуру для проверки антивирусного ПО). 
Обновление  антивирусных баз в ручную sudo freshclam

 

Если хотим ещё  посавить DansGuardian фильтр к вышерасмотренной  схеме

apt-get install dansguardian

Правим  /etc/dansguardian/dansguardian.conf

Фильтр будит работать на порту 3128 , сюда мы весь трафик  заварачиваем файрволом, squid будит работать на порту 3129 (в /etc/squid3/squid.conf меняем везде  порты  с 3128 на 3129

комментируем строку UNCONFIGURED - ...

# DansGuardian config file for version 2.10.1.1/span>
reportinglevel = 3
languagedir = '/etc/dansguardian/languages'
language to use from languagedir.
language = 'russian-koi8-r'
loglevel = 2
logexceptionhits = 2
logfileformat = 1
filterip = 192.168.1.1
filterport = 3128
proxyip = 192.168.1.1
proxyport = 3129

 

ВВ итоге у нас инет-> firewall -> Трафик  на порт 3128 ->dansguardian на порту 3128->squid порт 3129 <> havp порт 8081