У меня уже были ранее статьи про Интернет Шлюз ИКС - готовый программный шлюз на базе Freebsd с обширным функционалом. Сегодня я остановлюсь на одной из самых востребованных и популярных возможностей этого продукта - контентная фильтрация в том числе https трафика. Данный функционал очень актуален в государственных организациях, особенно в учебных учреждениях, где надо чётко выполнять требования законодательства в регулировании интернет трафика.
Введение
Как я уже сказал, про ИКС у меня уже были статьи:
Всю базовую информацию о продукте вы можете посмотреть в первой статье. Кратко поясню, что ИКС - это программный шлюз на базе Freebsd с поддержкой zfs. Всё управление выполняется через web интерфейс. В консоль вообще ходить не надо, только в самых крайних случаях. Всё управление и настройка проходят в браузере. Основной функционал ИКС:
- Multi WAN с резервированием каналов.
- Firewall с удобным управлением через браузер.
- Прокси сервер с контролем доступа по группам, учет трафика, ограничение доступа.
- Централизованное управление пользователями, группами пользователей, серверами ИКС.
- Файловый сервер.
- Почтовый и jabber сервер.
- IP телефония.
И многое другое. Функционал очень большой, но основа это всё же именно шлюз в интернет с разграничением доступа и контролем трафика. Существует бесплатная версия для 9-ти пользователей. То есть для дома можно использовать совершенно бесплатно. Если у вас дети - отличный инструмент для организации безопасного доступа в интернет для них. А если и не безопасного на 100%, то хотя бы контролируемого. Загрузить дистрибутив можно с сайта - https://xserver.a-real.ru/download.
Больше, чем где либо еще, ИКС актуален в образовательных учреждениях Российской Федерации. В нём можно настроить контентную фильтрацию в соответствии с требованиями прокуратуры, ФЗ №436 "О защите детей от информации, причиняющей вред их здоровью и развитию", №139 "О внесении изменений в Федеральный закон "О защите детей от информации, причиняющей вред их здоровью и развитию", №149 "Об информации, информационных технологиях и о защите информации", методическими рекомендациями Минпросвещения. С его помощью можно успешно пройти проверку учебной сети.
Интернет Контроль Сервер находится в едином реестре отечественного ПО. Его полнофункциональную версию можно попробовать в течении 35 дней. Дальше нужно будет приобретать лицензию. С калькулятором стоимости можно ознакомиться на сайте. Стоимость зависит от множества параметров, так как в состав продукта входят модули сторонних разработчиков (SkyDNS, Kaspersky), которые оплачиваются отдельно.
Далее я подробно рассмотрю фильтрацию трафика и познакомлю вас со всеми возможностями ИКС по этой теме.
Настройка фильтрации HTTPS трафика
В фильтрации шифрованного трафика, а это сейчас почти весь трафик в интернете от сайтов, нужно понимать одну простую вещь. Это технически возможно только если вы будете расшифровывать весь проходящий через прокси трафик. Для этого нужно установить свой сертификат на прокси сервер, в данном случае ИКС, который будет сам шифровать все tls соединения с клиентами. А клиентам добавить этот сертификат в доверенные, чтобы браузер доверял этому сертификату и не выдавал предупреждение. Других способов просто не существует.
Давайте это настроим в ИКС. У вас он уже должен быть установлен. Инструкция есть в моей первой статье. Если не хотите её читать, то достаточно скачать шлюз, установить его, выбрав все дефолтные значения. Затем зайти в веб интерфейс и настроить WAN и LAN на сетевых интерфейсах. Всё, больше ничего делать не надо, чтобы протестировать контент фильтр.
Переходим к его настройке. Идём в раздел Защита -> Сертификаты и добавляем новый сертификат.
Когда нажмёте Добавить, выберите Не шифровать закрытый ключ. В этом же разделе сделайте экспорт этого сертификата, перенесите его на компьютеры, трафик которых вы будете расшифровывать и добавьте в доверенные корневые центры сертификации.
Далее переходите в раздел Сеть -> Прокси -> Настройки и добавляйте новый сертификат в настройки прокси.
Подробно этот процесс отражён в видео:
Подготовка к работе контентного фильтра в Интернет Шлюзе ИКС готова. Переходим к его тестированию.
Блокировка трафика по спискам Минюста и Роскомнадзора
Для начала убедимся, что у нас успешно загружены данные списки. Для этого идём в в раздел Защита -> Контент-фильтр -> База контент-фильтра. Здесь должны быть загружены 3 предустановленных списка:
- Список слов с сайта Минюста.
- Список слов с сайта Госнаркоконтроля.
- Список слов для школ.
Для получения этих списков у вас должна быть активна лицензия "Техподдержка". После покупки шлюза она дается всем на 1 год, дальше нужно покупать продление. Указанные списки загружаются и обновляются с серверов компании ООО А-Реал Консалтинг, которая разрабатывает и поддерживает ИКС.
Если списки пустые, а лицензия активна, то перейдите в раздел Настройки модуля Контент-фильтр и обновите списки вручную, нажав Проверить наличие и обновление баз. Там же укажите подходящие настройки для регулярного обновления этих списков. Убедитесь, что теперь списки заполнены. Можете их посмотреть. Я очень много новой и необычной информации узнал из этих списков. Интересно, кто их составляет :)
Теперь применим списки ограничений для конкретных пользователей или групп. Идём в раздел Пользователи. Сначала посмотрим, какие готовые наборы правил у нас предустановлены. Открываем раздел Наборы правил и разворачиваем набор под названием Набор правил для школ.
Этот набор правил уже включает интересующие нас блокировки, плюс добавляет некоторые другие. Можно им воспользоваться, не настраивая свой. Я тут же зашел в указанное правило и добавил сообщение, которое будет выводиться тем, кто будет заблокирован этим правилом:
Теперь нам нужно применить это правило к какому-то пользователю или группе. Идём в раздел Пользователи и добавляем нового по IP адресу. На вкладке Правила и ограничения добавляем набор правил.
Сначала попробуем клиентом зайти на запрещенный сайт. Например, из списка блокировок Минюста.
Сработало правило, включающее в себя Список сайтов для блокировки от Минюста. На переадресованной странице видно наше сообщение, которое мы установили для этого правила.
Теперь попробуем что-то поискать, чтобы сработал контентный фильтр. Я не буду приводить примеры запросов текстом, чтобы не накликать беду на эту статью и не попасть под блокировки. Смотрите картинки.
Здесь уже сработало правило контентной фильтрации, для которого установлен стандартный текст на странице с ошибкой доступа. Попытка получить доступ к запрещенному контенту будет зафиксирована в событиях контент фильтра.
Вот такой несложной настройкой можно выполнить требования государственных органов по обеспечению защиты детей от информации, причиняющей вред их здоровью и развитию.
Обращаю внимание на то, что все базовые предустановленные настройки уже готовы в наборах правил. Помимо ограничения по спискам, они включают в себя и другие настройки безопасности. Если у вас нет возможности и желания вручную настраивать каждое правило и детально разбираться в его работе, готовых настроек вам будет достаточно для базовой защиты и соответствия требованиям.
Отдельно нужно отметить, что контентная фильтрация требует достаточно больших вычислительных ресурсов. Для того, чтобы точно подобрать железо под вашу нагрузку, лучше заранее проконсультироваться с технической поддержкой. У них накоплен опыт эксплуатации системы в боевых условиях, так что они с большой вероятностью смогут точно сказать, какое железо вам понадобится.
Реестр безопасных образовательных сайтов
В ИКС присутствует много готовых списков сайтов, разбитых на категории. Одной из таких категорий является Реестр безопасных образовательных сайтов, который обновляется автоматически. Готового набора правил для того, чтобы разрешить доступ только к этому списку, а всё остальное запретить, нет. Я покажу на примере, как сделать такое правило. Для этого идём в наборы правил и добавляем новый.
Подключаем этот набор правил к пользователю и проверяем, как работает.
Сайт из списка успешно открылся, к остальным доступа нет.
Обращаю внимание, что правила в списке можно копировать и мышкой перемещать между разными наборами. Это существенно упрощает создание правил. Интерфейс максимально дружелюбен к пользователю и не требует глубоких знаний в предметной области. Разобраться можно самостоятельно, либо прибегнуть к помощи документации. Там хорошо работает поиск. Легко найти нужный материал по заданной теме.
Ограничение доступа по категориям трафика
Как я уже показал, в ИКС существуют категории трафика. Причем списки этих категорий представлены не только общедоступными (Adblock) или собственными наборами правил и сайтов Garnet, но и сторонними коммерческими списками - SkyDNS, Kaspersky. Для использования списков SkyDNS и Веб фильтра Касперского нужно отдельно приобрести лицензию на эти продукты.
Вы можете использовать все доступные категории трафика для собственных наборов правил. К примеру, можно не использовать вообще никакие ограничения, а применить только правила AdBlock для блокировки рекламы.
Веб-фильтр Garnet
Списки Garnet являются собственной разработкой и позволяют определять категории сайтов на основе анализа текстового содержимого при помощи алгоритмов машинного обучения. Доступ к этим спискам отдельно оплачивать не надо. Он приобретается вместе с самим шлюзом. Списки Garnet могут быть использованы в запрещающих, разрешающих правилах прокси или исключениях прокси для пользователей и групп пользователей.
Для того, чтобы проверить, к какой категории трафика будет отнесён тот или иной сайт, можно выполнить проверку. Для этого зайдите в настройки Веб-фильтра Garnet и проверьте url.
Машинное обучение явно не справилось с определением категории сайта, так что надо ему помочь. Тут же есть возможность уточнить категорию и отправить информацию разработчикам, чтобы в будущем работа фильтра была точнее.
Решил проверить еще один известный сайт данным фильтром.
Результат неожиданный. Элементы соц. сети, конечно, на нём присутствуют. Друг рассказывал. Но я ожидал здесь увидеть другую категорию. Предполагаю, что категория соц. сети появилась, потому что по данному урлу открывается страница заглушка, где контента из категории сайтов для взрослых просто нет. Я у друга взял список похожих сайтов и проверил работу фильтра. На них категория определялась верно.
Попробуем создать собственное запрещающее правило на основе категорий трафика Garnet. Например, запретим следующие категории:
- Социальные сети
- Запрещенный контент
- Досуг
Добавим это правило в стандартный набор правил для школ, который уже преднастроен. Пропишем нашему правилу текст ошибки, чтобы можно было во время отладки идентифицировать именно его работу.
Сайт mail ru был успешно заблокирован добавленным правилом.
Garnet его относит к категории досуг, что в целом верно. Но при этом вы не сможете попасть на сайт облачной платформы Mail.ru Cloud Solutions по адресу https://mcs.mail.ru. Он попадает в эту же категорию. Так что будьте внимательны с этими списками и правилами на их основе. Я бы в таком виде не стал их ставить на прод. Будут вечные хлопоты с ложными срабатываниями. Разве что категорию Сайты для взрослых оставил.
Cобственные списки и правила доступа
Вы никак не ограничены в собственных списках и правилах сайтов для контент фильтра и категорий трафика. Благодаря подсистеме отчетов о посещаемых ресурсах пользователей, вы можете контролировать посещаемые сайты, регулярно обновляя свой собственный список.
Добавим в свою категорию указанные выше ресурсы.
Создадим правило блокировки для пользователей на основе новой категории.
Смотрим, что получилось.
Таким вот простым способом мы создали свой локальный список для блокировки. Аналогичным образом вы можете сделать список сайтов, на которые разрешён доступ, а всё остальное запретить.
Благодаря системе управления пользователями и группами, категориями трафика, а также наборами правил, вы можете очень гибко настраивать фильтрацию контента. Например, для учебных классов использовать одни наборы правил, для учителей другие, для сотрудников администрации, бухгалтерии третьи, для пользователей wifi четвёртые и т.д. Всё это доступно сразу после установки ИКС. Не нужно какое-то особенное обучение и внедрение. Справится практически любой персонал технической поддержки, который уже присутствует в организации.
Заключение
Подводя итог разбора контент-фильтра от ИКС можно сказать, что это хорошее решение для образовательных учреждений. Оно способно полностью закрыть вопрос с соблюдением законодательства. Причем не формально, а практически. Интернет шлюзом удобно пользоваться, он эффективно и просто решает поставленные задачи. Да, может показаться архаизмом заниматься подобными фильтрациями, когда у каждого школьника смартфон в кармане. Но это требование законодательства, так что рассуждать и выбирать, как и что фильтровать, не в компетенции администрации учреждений. Им остаётся только исполнять уже принятые постановления.
Помимо контроля трафика, ИКС предлагает дополнительный функционал в виде почтового, файлового, voip сервера. Так что можно обязательный функционал дополнить полезным и получить в рамках одной платформы комплексное решение типовых офисных задач.
В завершении еще раз дублирую ссылку для загрузки: https://xserver.a-real.ru/download.
Владимир, а есть у вас практики по связке типа mikrotik+squid и инструментарий мониторинга сего? Или же склоняетесь к готовым решениям?
Микротик со squid никак не связан. Это отдельные инструменты, независящие друг от друга. У меня задач по сбору информации по трафику нет. Хороших бесплатных готовых решений я не знаю. Есть pfsense, но к примеру, отчёты там никакующие, хотя функционал по блокировкам, схожий с предоставляемым ИКС, есть. Но все списки надо вручную наполнять и актуализировать. Это кропотливая и постоянная работа.
Мне кажется, эпоха самосборных велосипедов потихоньку уходит. Проще и дешевле купить готовый продукт. Иначе самостоятельные костыли могут просто рухнуть с уходом специалиста, который их настраивал. И всё придётся делать заново. Много раз подобное видел.
Владимир, то что "Микротик со squid никак не связан" - это, что называется, "капитан очевидность" =))) Флуд разводить не буду, просто не раз встречал когда в офисе с микротика трафик заворачивается на проксю на сквиде, а насколько это "костыли" и "велосипед", не знаю. Я *никсы не так давно стал осваивать к сожалению.
Насчёт "Проще и дешевле купить готовый продукт" - это спорно, когда есть решения с опенсорсом. Лицензия на ИКС на 50 юзеров с антивирусным модулем выходить за 50К (и это на год) а если контора маленькая то и хочется что-то развернуть бесплатно без подписок. У ИКС до 10 юзеров бесплатно, только не понятно какой функционал на выходе, какие модули.
Понимаю, что статья полурекламная, должна себя отрабатывать )) мне лишь было интересно из вашего опыта, чем в 2021 году можно фильтровать офисный трафик, включая https без оплаты подобных готовых решений и без платных подписок.
Говоря дешевле я не просто так произношу слова. Если полностью считать все расходы, то это действительно будет дешевле в большинстве случаев. Реализовать своими силами подобный функционал доступно не только лишь всем. Тут нужен уверенный Linux админ с опытом, коих сейчас дефицит на рынке труда. И зарплаты у них выше среднего. Настроить и эксплуатировать ИКС может человек с существенно меньшей квалификацией.
Я много таких примеров видел. Самый наглядный - не платить за лицензии Wndows Server и поднять домен на бесплатной Samba. Это все сделал админ условно с зарплатой 100 т.р. А потом ему надоело и он уволился. Найти быстро человека с нужной квалификацией и желанием все это поддерживать не получилось. Год промучались, пытаясь поддержать всё это хозяйство, но следующему админу тоже надоело и он ушёл. Потом пришёл я, перенёс всё на Active Directory. Наняли обычного виндового админа за 50 т.р. и он вот уже несколько лет ведёт всю эту организацию. Мои услуги там тоже не нужны.
Так что если меня кто-то спросит, что дешевле и выгоднее, поднять бесплатную Samba или купить лицензии Wondows Server и поднять AD, я с уверенностью скажу, что дешевле поднять AD и заплатить за лицензии. Похожие истории я видел со шлюзами на Freebsd, как раз из своих велосипедов. Потом просто не могли найти людей, способных всё это взять на поддержку. Таких тоже выручал и переводил на типовые решения на Linux или Windows. Сам то я Freebsd хорошо знаю.
Стандартизация и типовые решения это почти всегда экономия по сравнению с самоделками, которые только на первый взгляд выглядят привлекательно и дёшево.
Очередной Opensense.