Школьный роутер. Подводим итоги. Теория

  • Автор:

school-000.png

Более года назад мы опубликовали статью посвященную настройке роутера на базе Ubuntu Server. Позже мы рассказывали как дополнить роутер контент фильтром или антивирусом, рассматривали особенности реализации отдельных функций. Как показали отзывы, наши материалы очень помогли школам, добровольно-принудительно переходящим на СПО, но они также показали что существует ряд вопросов. Сегодня мы решили подвести итоги.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

За прошедшее время мы, благодаря вашим отзывам и вопросам, смогли лучше понять, что требуется от школьного роутера, но также увидели и оборотную сторону медали. Школьные учителя, на плечи которых легло основное внедрение СПО в школы, зачастую не всегда представляют каким именно образом функционирует роутер, в связи с чем допускают глупые ошибки или изобретают велосипеды. Но это нельзя поставить им в вину, их работа состоит в другом - учить наших детей, а вынужденная переквалификация в системных администраторов связана с плачевным финансовым состоянием системы школьного образования в целом.

С учетом вышесказанного мы решили подвести итоги и собрать в единую статью все наши публикации за прошедшие полтора года, создав готовую инструкцию по инсталляции готового школьного роутера. В данном материале мы не будем подробно разбирать те или иные настройки, а будем давать отсылки к уже опубликованным материалам. Зато разберем схему функционирования школьного роутера в целом.

Начнем с требований. Какие задачи должен выполнять школьный роутер? Предоставлять ученикам и преподавателям доступ в интернет, фильтровать получаемый учениками контент, осуществлять начальную антивирусную проверку трафика и блокировать несанкционированный доступ к ресурсам всемирной сети. Коротко политику доступа можно описать как: все что не разрешено, запрещено. Лучше перебдеть, чем недобдеть, открыть доступ к нужному ресурсу успеете всегда, а вот блокировать после инцидента может оказаться поздно.

Перед тем как браться за настройку школьного роутера, а это довольно сложный программный комплекс, следует иметь четкое представление о функциях каждого сервиса и способах их взаимодействия между собой.

Основным механизмом организации общего доступа к ресурсам внешней сети (в т.ч. интернет) является преобразование сетевых адресов (NAT), суть которого сводится к подмене адреса источника (во внутренней сети) адресом внешнего интерфейса сервера и обратной заменой для ответного пакета. Это позволяет осуществить доступ к внешним ресурсам для всей внутренней сети и в то же время закрыть внутреннюю сеть от попыток доступа извне. В Ubuntu Server функции NAT выполняет встроенный брандмауэр iptables. Главным достоинством NAT является его прозрачность, любое приложение использующее любой сетевой протокол (даже самый экзотический) с легкостью получит доступ во внешнюю сеть, если это разрешено правилами брандмауэра.

Но кроме организации доступа в сеть интернет нам надо осуществлять фильтрацию контента и первичную антивирусную проверку. Здесь мы подходим к очень важному моменту. Львиная доля интернет трафика приходится на протокол HTTP, все, с чем мы работаем через браузер, использует этот протокол. Иные программы, например почтовый клиент, используют свои протоколы (POP3, SMTP), однако работая с почтой через web-интерфейс мы будем использовать именно HTTP протокол. Проще говоря, нет смысла фильтровать иные протоколы, кроме HTTP, там вы или разрешаете доступ к определенным сервисам, либо запрещаете их.

Для работы с HTTP трафиком предназначены прокси-сервера, которые обрабатывают запросы пользователей и, в зависимости от результатов обработки, либо отвечают сами, либо перенаправляют запрос во внешнюю сеть или отклоняют его. Прокси-сервера могут представлять собой каскады, каждый элемент которого осуществляет свои функции анализа и обработки запросов.

Для работы через прокси-сервер, как правило, следует явно указать его адрес и порт в настройках приложения, однако можно сделать так, чтобы все HTTP запросы автоматически отдавались прокси-серверу, такая схема называется прозрачным прокси.

Основное назначение прокси-сервера это снижение нагрузки на канал и увеличение скорости работы в интернет за счет кэширования веб-документов имеющих статичное содержимое. Так если несколько пользователей в течении дня обратились к какому -нибудь ресурсу, то все его содержимое, включая оформление будет загружено из сети только один раз, при следующих обращениях клиент будет получать содержимое кэша прокси-сервера. Как показывает практика, экономия трафика за счет использования прокси-сервера может достигать 30-40%, в основном выигрыш идет за счет статичной графики и статичных документов. Также прокси-сервер может осуществлять фильтрацию трафика, авторизацию пользователей, ограничение скорости доступа.

Кроме того существуют специализированные прокси-серверы основная задача которых именно фильтрация трафика, к ним относятся контент-фильтры, антивирусные прокси, фильтры рекламы и т.п. Для школьного роутера, учитывая повышенные требования к безопасности и фильтрации, следует использовать сразу несколько специализированных продуктов, создав каскад-прокси.

Еще одним рубежом обороны может быть использование фильтрующих DNS. Для образовательных учреждений официально рекомендовано использование сервиса NetPolice DNS. Как работает подобный сервис? Рассмотрим следующую схему:

school-001.png
Запрашивая какой-либо материал из сети интернет пользователь набирает в браузере символьное имя сайта, например mail.ru. Однако символьное имя не несет информации, какому именно серверу в сети следует посылать запрос, для этого необходимо знать IP адрес сервера, обслуживающего данное доменное имя, такую информацию предоставляют DNS сервера.

Итак, пользователь набрал в адресной строке имя сайта. Следующим шагом будет отправка запроса DNS серверу, указанному в сетевых настройках. Он может выдать результат из кэша или перенаправить запрос вышестоящему серверу. В результате мы получим ответ, что введенному нами символьному имени mail.ru соответствует IP адрес 94.100.191.204. Запрос по данному адресу будет направлен к роутеру, который в свою очередь сравнит адрес назначения с текущими правилами брандмауэра и либо отклонит его, либо передаст дальше. Сервер назначения, получив запрос, сформирует ответ и передаст его запросившему клиенту, в данном случае роутеру. Произведя необходимую фильтрацию, роутер передаст ответ тому ПК, с которого был сделан запрос и пользователь увидит на своем экране содержимое веб-страницы (либо страницу блокировки, если запрошенная страница по какой-то причине не прошла фильтрацию).

Используя в качестве DNS сервера NetPolice DNS мы получаем возможность фильтровать DNS запросы по заранее созданным базам. Если запрошенное имя домена не содержится в базах, клиент получит действительный IP адрес страницы, иначе будет выдан адрес сервера, содержащего страницу блокировки, т.е. все остальные участники схемы не будут подозревать, что обращаются не к серверу, обслуживающему сайт xxx.ru, а к серверу службы NetPolice, содержащей страницу блокировки.

Здесь следует четко понимать, что вопреки написанному на сайте NetPolice, данная служба не осуществляет контентную фильтрацию, из приведенной схемы прекрасно видно, что DNS сервер не участвует в процессе получения запрошенного контента. В данном случае фильтруются исключительно DNS запросы, что аналогично URL фильтрации. Так использовать NetPolice DNS или нет? Наше мнение - использовать. Получая в свое распоряжение готовые базы для фильтрации вы снижаете нагрузку на собственный контент-фильтр (и уменьшаете вероятность ошибки), отсеивая запросы к нежелательным ресурсам на начальной стадии.

Следующий и основной рубеж обороны - школьный роутер. Пришла пора разобраться как именно он работает и за что отвечает тот или иной компонент. Схематично роутер можно представить следующим образом:

school-002.pngОсновными службами роутера являются NAT и брандмауэр, именно они, в тесном взаимодействии, отвечают за все сетевые соединения. Так, например, все инициированные извне соединения будут отклонены, а из внутренней сети будут пропущены только те, которые явно разрешены. Не забываем, у нас по умолчанию действует правило: все что не разрешено - запрещено.

В нашем примере один из пользователей работает с электронной почтой, запрос от почтового клиента направляется роутеру, который в соответствии с правилами брандмауэра (почтовые протоколы явно разрешены) перенаправляет их серверу назначения и направляет ответ запросившему клиенту.

Второй пользователь работает с интернет через браузер. Его запросы также направляются роутеру, однако они, в соответствии с правилами, направляются не во внешнюю сеть, а прокси-серверу, хотя пользователь не подозревает, что работает с прокси (прозрачный прокси).

В нашем случае прокси-сервер представляет собой каскад из контент-фильтра DansGuardian, кэширующего прокси-сервера Squid и антивирусного прокси HAVP.

Исходящий запрос обрабатывается только кеширующим прокси Squid, который проверяет наличие запрашиваемого объекта в кэше и либо отдает объект, либо перенаправляет запрос серверу назначения. Не следует недооценивать роль кэширующего прокси-сервера, мы провели простой эксперимент: с двух ПК последовательно запросили одну и ту же страницу, предварительно очистив кэш браузера и кэш прокси-сервера.

school-003.pngРезультат, как говорится, налицо. Особенно это заметно по загрузке тяжелых элементов страницы, изображений и т.п. В первом случае все изображения были загружены из сети интернет, во втором получены из кэша прокси-сервера. Кроме экономии трафика также выросла скорость доступа к данному ресурсу за счет получения тяжелых элементов страницы по локальной сети из кэша.

Если запрошенный объект отсутствует в кэше, Squid перенаправляет запрос во внешнюю сеть, серверу назначения. Полученный ответ проходит несколько ступеней фильтрации. В первую очередь антивирусную, специализированный прокси HAVP перенаправляет все полученные объекты антивирусному сканеру, в качестве которого используется ClamAV (хотя могут использоваться и иные антивирусные продукты). Прошедшие проверку объекты передаются кэширующему прокси Squid, который помещает полученный объект в кэш и передает его для обработки контент-фильтру. Такая схема хороша тем, что в кэше Squid будут находиться только чистые объекты, в то же время все объекты (в т.ч. закэшированные) будут проходить контент-фильтрацию. Это позволит избежать ситуации когда ученик получит из кэша нежелательную страницу, ранее просмотренную учителем или администратором.

Последнее звено прокси-сервера контент-фильтр, он производит фильтрацию полученного из сети содержимого и либо отдает его клиенту, либо выдает страницу блокировки. Будучи правильно настроенной подобная схема сочетает удобство для пользователя, который может получать сетевые настройки автоматически по DHCP, и высокую степень защиты сети и получаемого пользователями контента.

В следующей части нашей статьи мы рассмотрим практическую реализацию нашего варианта школьного роутера, предоставив готовую инструкцию, которая позволит реализовать данное решение с нуля, не прибегая к использованию иных публикаций.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. DansGuardian. Настраиваем контент-фильтр роутера
  2. DansGuardian. Дополняем контент-фильтр роутера антивирусом ClamAV
  3. DansGuardian. Сложности фильтрации русскоязычного контента
  4. Школьный роутер. Подводим итоги. Теория
  5. DansGuardian. Настраиваем передачу IP-адреса клиента в Squid

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments