Фильтрация сетевого трафика
Фильтрация сетевого трафика необходима для ограничения доступа пользователей к определенной информации. Реализовывается путем использования специализированного программного и (или) аппаратного обеспечения.
Благодаря применению систем фильтрации трафика можно получить:
- защиту от атак: шпионских программ, DDoS-атак и прочих;
- невозможность посещения зараженных или нежелательных интернет-сайтов;
- обнаружение средств слежения за активностью пользователей.
Современные сайты стали динамичнее, поэтому размер кода каждой страницы увеличился. Это открыло большие возможности для злоумышленников, которые могут незаметно внедрить даже малый программный текст, чтобы впоследствии совершить атаку. Благодаря url-фильтрации обеспечивается пропуск только безопасного содержимого, внешние угрозы блокируются.
Показатели контент-фильтров
Условно системы фильтрации сетевого трафика можно оценить по четырем параметрам:
- Подотчетность. Оценивается степень участия населения в политике фильтрации контента.
- Точность. Определяется успешность цензуры: избыточное или недостаточное блокирование.
- Прозрачность. Четкость параметров, позволяющих отнести трафик к запрещенному.
- Открытость. Пользователь получает достоверную информацию о посещении ресурса, отнесенного к запрещенным. Иначе происходит «маскировка» блокировки под технические неполадки.
Обход правил по ограничению и как их избежать
Избежать ограничения скорости пользователю возможно путем смены личного IP либо MAC-адреса. Данные ситуации лучше предотвратить, ограничив трафик таким образом, что «обойти» систему не получится.
Защита на случай смены клиентом MAC-адреса
Некоторые «хитрые» пользователи пытаются обойти защиту путем смены персонального MAC-адреса, если у него стоит фильтрация по данному параметру. Есть довольно простой способ ограничить поток данных: создать список MAC-адресов для выхода в интернет. Все остальные пользователи, желающие подключиться к сети, останутся с нулевым трафиком.
Для этого большинство маршрутизаторов имеет специальное меню «Фильтрация MAC». Нужно зайти в него, внести в «белый список» адрес собственного компьютера, чтобы не ограничивать трафик для себя. Информацию о личном адресе клиент получает во вкладке «DHCP-сервер».
Таким же образом добавить в список устройства, предусмотренные для предоставления возможности доступа к сети. В настройках также реально ограничить скорости. Все другие девайсы, подключенные к персональному Wi-Fi, кроме значка о подключении ничего не получат, доступ к ресурсам для них будет закрыт.
Полный запрет для сторонних устройств
Перед тем как запретить доступ всем сторонним девайсам, необходимо внести себя в список исключений, чтобы не урезать компьютеру доступ в интернет. Для этого открыть вкладку MAC Filtering, сюда добавить устройство, на котором нужен доступ в интернет. Информацию взять из меню «DHCP-сервер».
Далее перейти к полному ограничению доступа для сторонних подключений. Все делается в этой же вкладке: MAC Filtering. Необходимо найти меню Allow the stations specified и активировать функцию. Данная команда разрешает доступ только пользователям, внесенным в список разрешенных MAC-адресов.
Теперь, если пользователь хочет разрешить доступ какому-либо клиенту, потребуется найти его в списке DHCP, скопировать персональные MAC и IP, добавить в список разрешенных подключений. Ограничить поток передачи в соседнем меню.
Свет мой, зеркальце, скажи
Когда настройки выполнены, и информация из лог-файлов успешно импортирована в базу данных программы, можно приступать к созданию отчетов.
Для этого следует воспользоваться помощью «Мастера создания отчетов», вызываемого нажатием на соответствующую кнопку панели инструментов или выбором меню «Отчет | Мастер создания отчетов». Мастер создания отчетов многофункционален: он позволяет создавать не только отчеты, но и шаблоны отчетов, которые, в свою очередь, можно с его помощью не только создавать, но и редактировать. Мастер имеет классический пошаговый интерфейс, что дает возможность в каждый момент времени сосредоточить внимание на небольшом участке работы.
Первым делом необходимо определиться с типом отчета. Например, можно сформировать отчет по всем данным прокси-сервера сразу, а можно задать в качестве отправной точки определенного пользователя или временной интервал. В любом случае, дополнительные условия можно уточнить на последующих шагах «Мастера». Кстати, для быстрого вызова «Мастера» (этап выбора типа отчета будет пропущен) следует воспользоваться навигационной панелью. По умолчанию эта панель выводится в правой части окна ProxyInspector. Если она отсутствует, ее можно включить командой меню «Окно | Панели | Навигационная панель». Двойной щелчок мыши по элементу списка, отображаемого в панели, вызывает «Мастер отчетов» — сразу на втором шаге, с уже выбранным типом отчета, соответствующим элементу списка.
Второй шаг дает возможность задать уточняющие условия. Например, если был выбран отчет по дням недели, вы сможете на этом шаге указать конкретный день (или дни), для отчета по пользователям — выбрать пользователя (или группу пользователей), для отчета по программам — интересующие программы. Конечно, если отчет формируется по всем данным (тип отчета — «Прокси-сервер»), второй шаг будет пропущен.
- Распределение трафика по IP адресам;
- Распределение трафика по сайтам;
- Распределение трафика по часам;
- Распределение трафика по дням недели;
- Распределение трафика по протоколам;
- Распределение трафика по программам;
- В отчетах другого типа возможен другой набор подразделов отчета.
Кроме того, в каждом разделе можно выбрать порядок сортировки, указать нижний порог трафика, требуемый для включения данных в отчет, настроить параметры диаграммы. Чтобы изменить настройки диаграммы, необходимо нажать на кнопку «Настройки диаграммы». Откроется окно, содержащее настройки диаграммы:
Смысл действий, выполняемых на четвертом шаге «Мастера» — выбор интервала времени, по которому будет формироваться отчет. Обратите внимание на то, что наряду с абсолютными значениями дат, программа позволяет оперировать относительными, не привязанными к конкретным числам. Это позволяет использовать шаблоны отчетов для регулярного запуска. Скажем, отчет за текущий месяц («Этот месяц») или текущий день («Сегодня») даст возможность оперативно анализировать обстановку. Чтобы охватить все имеющиеся данные, следует выбрать пункт «Другое» и оставить выбранными пункты начала и конца временного интервала.
На завершающем этапе работы «Мастера» он предлагает сохранить отчет в виде шаблона для дальнейшего использования. Настроив параметры отчета один раз, и сохранив отчет, как шаблон, можно впоследствии генерировать отчеты по шаблону в ручном режиме или в автоматическом (консольном). Чтобы создать отчет, следует нажать кнопку «Создать». Сформированный отчет открывается в окне программы, а в меню «Отчет» становятся доступными команды печати, сохранения и отправки отчета по электронной почте.
Следует оговориться, что ознакомительная копия ProxyInspector имеет ряд ограничений. В частности, возможность сохранения, печати и отправки отчетов по электронной почте отсутствует. Кроме того, на ознакомление потенциального покупателя с возможностями программы разработчики отводят 30 дней.
Отчет, просматриваемый во встроенном браузере, представляет собой HTML-документ. Каждый раздел отчета, в котором фигурируют числа, — количество запросов, объем входящего и исходящего трафика в абсолютном и относительном выражении — содержит эту информацию в компактной табличной форме и более наглядной, графической.
Элементы отчета, оформленные в виде гиперссылок, служат для быстрого создания дополнительных отчетов, детализирующих информацию в выбранном аспекте. Например, просматривая в отчете по прокси-серверу раздел, посвященный распределению трафика по протоколам, можно дважды щелкнуть по ссылке с названием протокола — это приведет к запуску «Мастера отчетов», готового к созданию отчета для выбранного протокола (соответствующий тип отчета и сам протокол уже будут выбраны). Аналогично можно быстро сформировать отчет по другому базовому критерию — скажем, выбранному пользователю или сайту. Предусмотрен также быстрый выбор другого временного интервала. Для этого необходимо щелчком правой кнопки мыши вызвать контекстное меню.
Это далеко не все возможности ProxyInspector — благодаря встроенному менеджеру отчетов, программа дает возможность повторно генерировать отчеты, используя готовые шаблоны; редактировать шаблоны, внося в них необходимые исправления; удалять шаблоны, ставшие ненужными. Впрочем, едва ли имеет смысл углубляться в подробности работы с программой — гораздо проще попробовать их на практике, используя ознакомительную версию. Хотя есть еще одна особенность ProxyInspector, обойти вниманием которую было бы просто несправедливо.
Контент-фильтры как средства родительского контроля
Сложно представить себе сегодня полный запрет доступа ребенку в Сеть. Однако и оставлять детей наедине с интернетом без какого-либо контроля — неподходящий вариант. Ведь в Сети так легко найти информацию, изображения или видео, не предназначенные для детских глаз — порнографию, пропаганду алкоголя, наркотиков и суицида, экстремистские ресурсы, сайты, распространяющие вредоносное программное обеспечение, и многое другое. Посещение подобного рода интернет-ресурсов может нанести вред здоровью или психологическому развитию ребенка, а просиживание в интернете слишком большого количества часов в сутки негативно скажется на его сне и успеваемости. В качестве средства управления домашним интернетом и родительского контроля отлично подойдет контент-фильтр.
С ним управлять доступным для просмотра интернет-контентом просто: вы сами выбираете какие сайты будут доступны, а какие заблокированы. Кроме того, с помощью контент-фильтрации на роутере вы сможете ограничить время пребывания детей в интернете, чтобы они не просиживали время, отведенное на выполнение домашнего задания, в соцсетях и на YouTube или не играли сутками напролет в онлайн-игры.
Контент-фильтры для роутеров намного удобнее специальных программ для родительского контроля, так как для их использования вам нужно лишь настроить сервис на устройстве, раздающем домашний Wi-Fi. Сервис SkyDNS легко настраивается на наиболее популярных моделях домашних роутеров, маршрутизаторов и точек доступа Wi-Fi – Asus, TP-Link, D-Link, NetGear, Huawei, ZyXEL, Xiaomi и др. При этом в интернет-центрах ZyXEL Keenetic сервис обладает расширенными функциями и позволяет настраивать правила фильтрации и сбора статистики для разных устройств за роутером по-разному. Не требуется устанавливать никаких дополнительных программ и приложений на каждое устройство в отдельности. Таким образом все ваши ноутбуки, планшеты, смартфоны, подключенные к домашней сети, будут фильтроваться согласно указанным вами правилам.
Вся настройка интернет-фильтра происходит дистанционно через удобный и понятный веб-интерфейс. В итоге, за 5 минут несложных манипуляций с настройками роутера вы получаете полноценную систему родительского контроля для всех устройств, подключенных к домашней сети — настольных компьютеров, игровых приставок, SMART-телевизоров, ноутбуков, планшетов и мобильных телефонов. Причем вы сможете управлять настройками дистанционно через личный кабинет, где бы вы не находились.
Также с помощью фильтра можно заблокировать работу отдельных сайтов и мобильных приложений (например, Instagram, Facebook, ВКонтакте) просто внеся используемые ими для работы адреса сайтов в черный список. Также можно запретить установку любых приложений на смартфоны и планшеты, запретив обращение к адресам магазинов приложений AppStore и Google Play Market.
Настройка маршрутизатора
Так как в этой части статьи мы работаем с трафиком, идущим через маршрутизатор, основной цепочкой (Chain) для такого трафика является forward.
Сначала разрешим все соединения с состояниями соединения равными established и related, и запретим с состоянием соединения равным invalid, независимо от интерфейсов. Так как мы уже знаем, что фильтровать трафик логично только на новых соединениях (connection-state=new).
Кроме того, наибольшее количество пакетов как раз относятся к уже установленным соединениям, и указание этого правила в начале списка несколько увеличит производительность.
- /ip firewall filter
- add action=accept chain=forward connection-state=established disabled=no
- add action=accept chain=forward connection-state=related disabled=no
- add action=drop chain=forward connection-state=invalid disabled=no
Теперь создадим необходимые нам цепочки правил.
LAN-WAN
В этой цепочке мы разрешаем любой трафик от LAN интерфейса к WAN-интерфейсу. При необходимости можно добавить запрещающие правила. (Обратите внимание, что мы не указываем интерфейсы. Они будут указаны в цепочке forward, при переходе на свои цепочки).
- /ip firewall filter
- add action=accept chain=LAN-WAN disabled=no
WAN-LAN
А здесь мы, наоборот, запрещаем весь трафик идущий из интерфейса WAN в локальную сеть. Ранее установленные соединения обрабатывается правилом, их разрешающим, заданным ранее.
- /ip firewall filter
- add action=drop chain=WAN-LAN disabled=no
LAN-DMZ
- /ip firewall filter
- add action=accept chain=LAN-DMZ disabled=no
DMZ-LAN
Здесь нужно пропустить 22 порт на хост 192.168.88.200
- /ip firewall filter
- add action=accept chain=DMZ-LAN disabled=no dst-address=192.168.88.200 dst-port=22 protocol=tcp
- add action=drop chain=DMZ-LAN disabled=no
DMZ-WAN
- /ip firewall filter
- add action=accept chain=DMZ-WAN disabled=no
WAN-DMZ
Здесь нам нужно разрешить обращение на хост 10.10.10.100 на порт 80 (www).
- /ip firewall filter
- add action=accept chain=WAN-DMZ disabled=no dst-address=10.10.10.100 dst-port=80 protocol=tcp
- add action=drop chain=WAN-DMZ disabled=no
На этом создание собственных цепочек закончено. Осталось к ним обратиться.
Создаем группу правил в основной цепочке forward. В ней мы, в зависимости от интерфейсов, будем отправлять пакет в подходящую цепочку:
- /ip firewall filter
- add action=jump chain=forward disabled=no in-interface=WAN jump-target=WAN-LAN out-interface=LAN
- add action=jump chain=forward disabled=no in-interface=LAN jump-target=LAN-WAN out-interface=WAN
- add action=jump chain=forward disabled=no in-interface=DMZ jump-target=DMZ-LAN out-interface=LAN
- add action=jump chain=forward disabled=no in-interface=LAN jump-target=LAN-DMZ out-interface=DMZ
- add action=jump chain=forward disabled=no in-interface=WAN jump-target=WAN-DMZ out-interface=DMZ
- add action=jump chain=forward disabled=no in-interface=DMZ jump-target=DMZ-WAN out-interface=WAN
Для удобства, я поднял эти правила в файрволле повыше, сразу за первыми созданными правилами.
Должно получиться следующее:
При дальнейшей оптимизации логично понаблюдать за счетчиками пакетов и более часто используемые правила поместить повыше.
Обратите внимание, что фильтрацию трафика теперь логично проводить в соответствующей цепочке, что значительно упрощает конфигурирование, особенно в случае большого количества правил.
Общий код файрволла:
- /ip firewall filter
- add action=accept chain=forward connection-state=established disabled=no
- add action=accept chain=forward connection-state=related disabled=no
- add action=drop chain=forward connection-state=invalid disabled=no
- add action=jump chain=forward disabled=no in-interface=WAN jump-target=WAN-LAN out-interface=LAN
- add action=jump chain=forward disabled=no in-interface=LAN jump-target=LAN-WAN out-interface=WAN
- add action=jump chain=forward disabled=no in-interface=DMZ jump-target=DMZ-LAN out-interface=LAN
- add action=jump chain=forward disabled=no in-interface=LAN jump-target=LAN-DMZ out-interface=DMZ
- add action=jump chain=forward disabled=no in-interface=WAN jump-target=WAN-DMZ out-interface=DMZ
- add action=jump chain=forward disabled=no in-interface=DMZ jump-target=DMZ-WAN out-interface=WAN
- add action=accept chain=LAN-WAN disabled=no
- add action=drop chain=WAN-LAN disabled=no
- add action=accept chain=LAN-DMZ disabled=no
- add action=accept chain=DMZ-LAN disabled=no dst-address=192.168.88.200 dst-port=22 protocol=tcp
- add action=drop chain=DMZ-LAN disabled=no
- add action=accept chain=DMZ-WAN disabled=no
- add action=accept chain=WAN-DMZ disabled=no dst-address=10.10.10.100 dst-port=80 protocol=tcp
- add action=drop chain=WAN-DMZ disabled=no
Таким образом, мы выполнили базовую настройку Firewall Mikrotik и научились работать с собственными цепочками фильтрации трафика.
Базовая фильтрация веб-прокси.¶
Функционал данной фильтрации не требует установки дополнительных плагинов в систему, однако обладает меньшим функционалом, чем Расширинная фильтрация веб-прокси. и ее использование целесообразно только в тех случаях, когда функционал расширенной фильтрации не требуется.
Во избежание конфликтов, не рекомендуется одновременная настройка и использование базовой и расширенной фильтрации.
Поддерживаемые типы фильтрации¶
Веб-прокси Squid поддерживает широчайшие возможности фильтрации по различным критериям. В настоящее время, через веб-интерфейс Traffic Inspector Next Generation можно управлять следующими типами фильтрации:
Ниже описывается ввод различных значений в текстовые поля веб-интерфейса. Не забывайте нажимать клавишу Enter после ввода каждого элемента или ставить запятую после каждого элемента. В противном случае, элемент не будет добавлен в поле.
Фильтрация по IP-адресам
Настройки данного типа фильтрации доступны в разделе Службы -> Веб-прокси -> Администрирование, вкладка Перенаправляющий прокси, пункт меню Список управления доступом.
Ниже описывается ввод IP-адресов в текстовые поля. Допускается указание одиночных IP-адресов и IP-сетей:
В поле Разрешенные подсети можно задать сети, из которых разрешено работать через веб-прокси. Сети, к которым шлюз подключен через LAN-адаптеры, считаются разрешенными по умолчанию.
В поле IP-адреса без ограничений можно задавать IP-адреса хостов. Для пользователей, работающих с данных IP-адресов, не будут применяться аутентификация и черные списки доступа.
В поле Заблокированные IP-адреса можно задавать IP-адреса хостов. Запрещенный хост не сможет пользоваться услугами данного прокси.
Фильтрация по портам назначения
Настройки данного типа фильтрации доступны в разделе Службы -> Веб-прокси -> Администрирование, вкладка Перенаправляющий прокси, пункт меню Список управления доступом, поле Разрешенные TCP-порты назначения.
При указании портов, можно использовать диапазоны, например:
И добавлять комментарии, разделяемые двоеточием, например:
Примечание
Squid преднастроен таким образом, что разрешает проксирование запросов только к некоторому множеству портов, считающихся безопасными (указаны на скриншоте). Проксирование SSL/TLS-соединений методом CONNECT разрешено только для порта TCP/443.
Фильтрация по типу User Agent (по типу браузера)
Настройки данного типа фильтрации доступны в разделе Службы -> Веб-прокси -> Администрирование, вкладка Перенаправляющий прокси, пункт меню Список управления доступом, поле Блокировать browser/user-agent строки.
При указании User Agent строк, можно использовать синтаксис регулярных выражений.
Регулярное выражение:
даст совпадение с версией Firefox revision 37.0 для Macintosh
Регулярное выражение:
даст совпадение с всеми браузерами на базе Mozilla
Фильтрация по типу контента (по MIME-типам)
Настройки данного типа фильтрации доступны в разделе Службы -> Веб-прокси -> Администрирование, вкладка Перенаправляющий прокси, пункт меню Список управления доступом, поле Блокирировать ответы с конкретным MIME-типом.
MIME-тип можно указывать в синтаксисе регулярных выражений.
Регулярное выражение:
даст совпадение с Flash Video
Регулярное выражение:
даст совпадение с Java-скриптами
Фильтрация по URL (по общим белым и черным спискам)
-
общий белый список
-
общий чёрный список
-
скачиваемые чёрные списки
даст совпадение с URL *.mydomain.com
Регулярное выражение:
даст совпадение с URL http(s)://textONLY.mydomain.*
Регулярное выражение:
даст совпадение с *.gif но не с *.giftest
Регулярное выражение:
даст совпадение с 123.gif но не с test.gif
Настройки данного типа фильтрации доступны в разделе Службы -> Веб-прокси -> Администрирование, вкладка Перенаправляющий прокси, пункт меню Список управления доступом.
В поле Белый список можно задать URL разрещенных ресурсов.
В поле Черный список можно задать URL запрещенных ресурсов.
Примечание
Общий белый список имеет приоритет перед общим черным списком.
Фильтрация по скачиваемым спискам
Рассмотрим пример фильтрации рекламы с помощью скачиваемого списка.
Для данного примера мы используем список, доступный по адресу: http://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml
Список представляет собой простой текстовый файл, который выглядит следующим образом:
Пройдите в Службы -> Веб-прокси -> Администрирование и кликните на вкладку Удаленные списки контроля доступа. Далее, кликните на + в нижнем правом углу формы для создания нового списка. Укажите следующие значения:
Включен |
Флажок установлен |
Имя файла |
yoyoads |
URL |
http://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml |
имя пользователя |
(оставить пустым) |
пароль |
(оставить пустым) |
категории |
(оставить пустым) |
Игнорировать сертификаты SSL |
(оставить пустым) |
Описание |
Yoyo Ads Blacklist |
Сохраните изменения.
Нажмите Скачать списки контроля доступа и применить.
Настройка фильтрации рекламы с помощью скачиваемого списка завершена.
Фильтрация нежелательных категорий сайтов
Рассмотрим пример фильтрации нежелательных категорий сайтов с помощью скачиваемого списка.
Для данного примера мы используем Список для веб-категоризации UT1, поддерживаемый Фабрисом Прижаном из Тулузского университета и распространяемый под лицензией Creative Commons либо список http://www.shallalist.de, бесплатный для личного использования.
Создайте скачиваемый список.
Нажмите Скачать списки контроля доступа
Повторно откройте созданный список на редактирование.
В разделе категории выберите необходимые категории.
Нажмите кнопку Сохранить
Нажмите кнопку Применить