Настройка прокси сервера SQUID для мониторинга HTTPS трафика.

rested

Начальник
Старейшина
Репутация
165 / 516
Posted by RESTED | Posted on 19-10-2011

В данной статье, мы рассмотрим как реализовать возможность расшифровки HTTPS соединений.
Технические детали: Нам нужно будет собирать SQUID с нуля. Я рекомендую загрузить последнюю версию сквида. Предполагается что все действия мы делаем из консоли. Так как я использую линукс UBUNTU, мне потребовалось дополнительно установить: build-essential и libssl-dev

Устанавливаем:

apt-get install build-essential libssl-dev

Внимание! : для CentOS, используйте openssl-devel а не libssl-dev

Build-essentials необходим для загрузки компиляторов, в то время как libssl нужен для загрузки SSL-библиотек, которые позволяют SQUID, перехватить зашифрованный трафик. Этот пакет (libssl) необходимо во время компиляции, без него при выполнении команды make вы увидите ошибки типа:

error: ‘SSL’ was not declared in this scope

Скачайте и распакуйте исходники SQUID’а.
Далее включим icap-client и ssl, соберем и установим пакет, поехали:

Внимание! Icap-client будет оповещать всех пользователей нашего прокси, о том что их https трафик мониторится. Если вы хотите что бы люди не знали что их мониторят, то не включайте icap-client.

./configure –enable-ssl –enable-icap-client
make
make install

К информации:
* enable-icap-client : включается для того, что бы оповещать всех клиентов вашего прокси, о том что их трафик мониторится..
* enable-ssl : это нужно включить для SslBump.

Итак SQUID установлен, далее очень важный шаг, создание сертификата который SQUID будет предоставлять своим клиентам. В тестовой среде, вы можете легко создать собственный сертификат используя OpenSSL: openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout -out

В браузере у всех клиентов нашего сервера появится ошибка:

В корпоративной среде вы можете создать сертификат с помощью CA, ведь таким сертификатам клиенты уже доверяют.
Например, вы можете создать сертификат с помощью CA Microsoft, и подсунуть сертификат всему вашему домену.

Сконфигурируем SQUID, изменим /etc/squid.conf:

always_direct allow all
ssl_bump allow all

http_port 192.168.0.11:3128 transparent

# Должно быть размещено на одной строке
https_port 192.168.0.11:3129 transparent ssl-bump cert=/etc/squid/ssl_cert/ key=/etc/squid/ssl_cert/private/

Вам нужно изменить “cert=” и “key=” место нахождение файлов сертификата, также измените IP адрес.

Дериктива (always_direct) требуется SslBump.
Больше информации вы найдете по ссылке:

Вторая дериктива (ssl_bump) разрешает прокси серверу обрабатывать все SSL соединения.
Больше информации вы найдете по ссылке:

Запустите SQUID, проверьте логи на наличие ошибок.

Если нет ошибок, введите:

netstat -nap | grep 3129

Это делается для того что бы убедится что сервер поднят и работает.

Затем настройте IPTables для выполнения назначений NAT, и для перенаправления трафика на прокси:

iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to-destination 192.168.0.11:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 443 -j DNAT –to-destination 192.168.0.11:3129

Имейте в виду, прокси-сервер будет менять ip-адрес источника на свой собственный.Это значит что все запросы сделанные клиентами будут выполнятся от имени (IP) сервера.
На этом все!
Статья будет обновлятся по мере расширения знаний (=
Основано на мане: dvas0004
 

Похожие темы

Сверху