Организация контентной фильтрации в образовательных учрежденияхИсточник: habrahabr DavyJohnes
Вряд ли сейчас найдется системный администратор, работающий в сфере образования, который не знает что такое ФЗ-436 "О защите детей от информации, причиняющей вред их здоровью и развитию" со всеми вытекающими последствиями. Наиболее острой для меня эта проблема стала после получения распоряжения от руководителя подготовиться к приходу прокуратуры. Из известных на тот момент мне решений:
ни одно не показалось мне привлекательным. Имея маломощный сервер и 50 рабочих станций, нуждающихся в защите, хотелось бы использовать Unix-like решение. Очевидно, что без Squid не обойтись. Начались поиски решения удовлетворяющего установленные требования. В результате был найден интересный вариант от не безызвестной компании Entensys, выпускающей ПО под названием UserGate. Программное решение для контентной фильтрации называется UserGate WebFilter. Основываясь на опыте давно ушедших лет, тех лет, когда интернет траффик был дороже золота, и, когда прокси был просто необходим, UserGate не нравился ввиду своей глючности и ресурсоемкости (в контексте тех самых прошлых лет), однако, позабыв старые обиды, а также несмотря на то, что продукт проприетарный, было решено его опробовать. ЧАСТЬ 0. Возможности продукта.
Всю остальную информацию, в том числе цены и полный перечень возможностей можно получить на сайте Entensys.
ЧАСТЬ 1. Подготовка к установкеЧто касается системных требований: как заявляет сам производитель, ПО будет работать на следующих ОС:
Минимальные требования к железу, до 100 пользователей: Intel® Atom™ D2500 1.86GHz, 2Gb RAM, HDD 500Gb
ЧАСТЬ 2. УстановкаУ компании Entensys имеются свои репозитории, поэтому установка до безобразия тривиальна: sudo apt-get install webfilter3 Первоначальная настройка сводится к следующему:
Webfilter генерирует все необходимые конфигурационные файлы и запускает демоны. По ходу адаптации нового ПО к локальной инфраструктуре столкнулся с такой особенностью: помимо основного демона webfilter3 имеется так же init скрипт webfilter3_rules, который при старте добавляет правила в iptables для перенаправления всего входящего dns траффика на 10053 порт, для его фильтрации, а также, правила для перенаправления http траффика. Для меня (параноика), имеющего собственноручно настроенный firewall, вмешательство в таблицы iptables было просто недопустимо, поэтому: sudo /etc/init.d/webfilter3_rules stop sudo insserv -r webfilter3_rules Теперь встает вопрос о том, как фильтровать входящие dns запросы. Логичным кажется перенаправление через iptables с порта 53 на 10053. Для тех у кого нет собственных dns записей, у кого весь dns-траффик беспрекословно форвардится на другой сервер, это решение отлично подойдет (или оставить включенным webfilter3_rules). У меня же имелись статические записи в /etc/hosts и в конфиге dnsmasq, кроме того, имелись особые опции работы dnsmasq. Поэтому я решил поступить следующим образом: #/etc/dnsmasq.conf no-resolv server=<server-ip>#10053 //Важно указать ip сервера из той же подсети, в которой находятся фильтруемые клиенты. При такой конфигурации dnsmasq будет перенаправлять запросы, на которые не смог ответить сам, DNS фильтру.
ЧАСТЬ 3. НастройкаНастройка работы фильтра осуществляется через веб-интерфейс. Все детали настройки подробно расписаны в документации. Краткий алгоритм минимальной настройки следующий:
Минимальная настройка произведена и достаточна для полноценного функционирования фильтрации, далее, используя документацию, настраиваем фильтрацию под свои собственные нужды.
ЧАСТЬ 4. Тестирование
СкоростьЗакономерный вопрос: "Насколько фильтрация замедляет загрузку сайтов". Изначально хотел провести тестирование и сравнить скорость загрузки различных сайтов и предоставить результат в виде таблицы. Замеры производились с помощью инструментов разработчика встроенных в Chrome. Если в случае с загрузкой без фильтра можно было вычислить среднее время загрузки исходя из 10 запросов, то под фильтром время загрузки колебалось уже очень сильно, в некоторых случаях от 100 до 500 мс, поэтому я решил что такой сравнительный анализ ничего не даст. Факт в том, что время загрузки возрастает, самое большее что мне удалось поймать - в 3 раза. Однако, имея высокоскоростной интернет, разница между 100 мс и 300 мс, глазу не ощутима, разница между 200 мс и 600 мс ощутима совсем слегка и особого дискомфорта не доставляет. В общем, по субъективным ощущениям, сайты грузятся быстро.
ФильтрацияФильтрация в UserGate WebFilter просто потрясающая. Список запрещенных доменов очень обширный. Большинство "плохих" сайтов на которые я пытался зайти, отбрасываются именно по спискам доменов, таким образом до морфологического анализа дело даже и не доходит.
ОтказоустойчивостьНа момент написания статьи сервер работает чуть более месяца, перезагрузка ни разу не потребовалась: ни демона webfilter, ни сервера целиком. В пиковые часы HTTP траффик проходит через сервер со скорость до 8 Мб\с в течении продолжительного времени. На глюки, зависания и прочие неисправности, пользователи не жалуются.
ЗаключениеОт работы с данным ПО остались исключительно приятные впечатления. Весь заявленный функционал работает исправно. Учитывая невысокую стоимость ПО (например: на 50 ПК годовая лицензия обойдется в 13 500 р.), по моему личному мнению, данное ПО является идеальным решением контентной фильтрации в учебных заведениях. |