Настройка proxy сервера необходима только если используется вариант «proxy у оператора».
Начальную настройку и тестирование работы proxy сервера, как правило, осуществляют наши специалисты.
Примеры конфигурации, приведенные ниже, являются лишь примерами. Конфигурация proxy сервера может отличаться в ту или иную сторону в зависимости от специфики клиента.
Обновления и рекомендации для конфигурации proxy сервера публикуются в нашей рассылке, которую получают технические специалисты (контакты) указанные в Личном Кабинете.
Необходим сервер с установленной OS Linux. На него нужно дополнительно установить iptables, nginx (необходимы модули: rewrite, proxy) и sniproxy (необходим патч от зацикливания).
На сервере необходимо включить маршрутизацию (в файле /etc/sysctl.conf установить net.ipv4.ip_forward = 1)
Внимание: серверу proxy необходимо обеспечить свободный доступ в интернет по протоколам HTTP/HTTPS. Т.е. HTTP/HTTPS трафик от proxy сервера НЕ должен попадать в перенаправление через маршрутизацию. Сделать это можно через Policy Routing
Добавить создание необходимых ipset при загрузке системы
ipset create BLOCK-IP hash:net family inet ipset create BLOCK-IP-LOADING hash:net family inet ipset create CUSTOM-IP-PORT hash:ip,port family inet ipset create CUSTOM-IP-PORT-LOADING hash:ip,port family inet
Скачать скрипты для обновления cf_ipset_update.tgz, вписать в них Api Key (можно посмотреть в ЛК→Администрирование→Настройки). Добавить вызов скриптов по cron (например, раз в час).
# Перенаправлять HTTP трафик для сетей из списка полной блокировки на отдельный виртуальный сервер iptables -t nat -A PREROUTING -i eth0 -m set --match-set BLOCK-IP dst -p tcp --dport 80 -j REDIRECT --to-port 9000 # Перенаправлять HTTP трафик для пар IP:PORT подлежащих блокировке на отдельный виртуальный сервер iptables -t nat -A PREROUTING -i eth0 -p tcp -m set --match-set CUSTOM-IP-PORT dst,dst -j REDIRECT --to-port 9000 # Перенаправлять весь HTTP/HTTPS трафик на локальный порт iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 80 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 443 # Все остальное пропускать... iptables -t nat -A POSTROUTING -o eth0 -p all -j SNAT --to-source <<ip адрес proxy сервера>> # Блокировать весь трафик, на сети из списка полной блокировки iptables -t filter -A FORWARD -m set --match-set BLOCK-IP dst -j REJECT # Пропускать весь транзитный трафик iptables -P FORWARD ACCEPT
Мы рекомендуем использовать nginx с поддержкой lua и headers_more. Ссылки на готовые пакеты находятся в конце текущего раздела.
DNS резолвер должен использовать DNS сервера без RPZ.
В каталоге /var/www/cyberfilter/pages/ необходимо разместить страницы с сообщениями для пользователей:
Архив с настройками и со страницами сообщений: proxy_config.tgz
Готовый RPM nginx 1.10.3 для CentOS7 с поддержкой lua и headers_more: nginx-1.10.3-1.el7.centos.ngx.x86_64.rpm
Внимание: для корректной работы sniproxy (фильтрация HTTPS) необходимо, чтобы использовался механизм DNS RPZ. Системный DNS резолвер ДОЛЖЕН использовать DNS сервер с включенным механизмом DNS RPZ. Так же необходимо, чтобы на sniproxy был наложен патч. Рекомендуемая версия sniproxy - 0.3.6
user nobody pidfile /run/sniproxy.pid error_log { filename /var/log/sniproxy/error.log priority debug } listen SERVER_IP:443 { proto tls access_log { filename /var/log/sniproxy/access.log priority debug } } table { .* *:443 }
SERVER_IP - IP адрес proxy сервера, на который производится перенаправление через DNS RPZ.
Если нужно полностью пропускать youtube.com и youtu.be, то секция table должна быть следующей:
table { # Исключение для youtube.com и youtu.be ^youtube\.com$ youtube.com.proxy.cyberfilter.ru:443 ^www\.youtube\.com$ www.youtube.com.proxy.cyberfilter.ru:443 ^youtu\.be$ youtu.be.proxy.cyberfilter.ru:443 .* *:443 }
Репозитарий (GIT) sniproxy: https://github.com/dlundquist/sniproxy
Патч: sniproxy-0.3.6-cyberfilter.patch.gz
Конфиг: sniproxy.conf.gz
Готовый ebuild для Gentoo Linux: sniproxy-0.3.6-r1.ebuild.tgz (USE=«cyberfilter»)
Готовый RPM для CentOS7: sniproxy-0.3.6-1.el7.centos.x86_64.rpm и необходимый для него udns: udns-0.4-3.el7.x86_64.rpm