НАСТРОЙКА UBUNTU СЕРВЕРА ДЛЯ ПРИМЕНЕНИЯ DNS-ФИЛЬТРАЦИИ В ШКОЛЕ.
материал по информатике и икт на тему

В статье говорится о возможности использования школьного сервера для контентной фильтрации информации из Интернет.

Скачать:

ВложениеРазмер
Файл statya_denis.docx312.19 КБ

Предварительный просмотр:

Грачев Д.А., технический специалист,

Изюменко Л.Л.,  учитель информатики,

МОУ СОШ № 118 с углубленным изучением отдельных предметов,

 г. Н.Новгород

Настройка Ubuntu сервера для применения DNS-фильтрации

в школе.

  1. Введение

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

Задача по ограничению доступа пользователей к определенной группе ресурсов сети Интернет, описываемая в данной статье, решалась на основании комплексных мер, заключающихся организации централизованного доступа в Интернет через локальный NAT сервер, работающий под управлением операционной системы (ОС) Ubuntu, Интернет-сервиса DNS фильтрации Rejector.ru.

  1. Структура локальной сети

Топология сети нашей школы основана на модели звезды. Технология передачи гибридная: происходит совместное использование технологии WiFi для подключения распределенных машин, а так же Ethernet [1] для центральной магистрали и компактно расположенных компьютеров, как, например, в компьютерных классах классах.

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

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

  1. "Поднятие сервера"

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

Специализированного дистрибутива ОС Ubuntu для использования ее в качестве серверной ОС не требуется. Для установки была выбрана 32-битная архитектура, а для экономии времени установки был выбран простой способ установки через графический интерфейс пользователя (GUI).

  1. Настройка локальных сетевых интерфейсов

Для организации сети в первую очередь следует произвести “именование” сетевой карты. Так как она одна, то и устройство будет называться eth0. Для избежания конфликтов сети, настройка производится при отключенном сетевом кабеле. При настройке производится редактирование системного файла /etc/network/interfaces [2].

$ sudo gedit /etc/network/interfaces

Содержание файла следующее:

# Сетевая петля

auto lo

iface lo inet loopback

# Основной интерфейс локальный

auto eth0

iface eth0 inet static

address 192.168.0.1

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

# Основной интерфейс выхода в Интеренет

auto eth0:1

iface eth0:1 inet static

address 172.16.0.2

netmask 255.255.255.0

network 172.16.0.0

broadcast 172.16.0.255

gateway 172.16.0.1

Подсеть доступа в Интернет настроена в диапазоне 172.16.0.0/24 для явного разделения. Для использования данного диапазона адресов, как второго для устройства eth0, выбрано виртуальное второе устройство eth0:1, так называемый alias[3]. Видно, что роутер, выполняющий роль NAT сервера и маршрутизатора для доступа в Интернет, имеет локальный адрес 172.16.0.1. Широкий диапазон, выделенный под обмен данными между сервером и роутером, задан с целью простой альтернативной настройки в будущем и избежания возможных конфликтов сети, так как этот диапазон редко используется в локальных сетях.

Для применения конфигурации выполнялась команда перезапуска демона:

$ sudo /etc/init.d/networking restart

  1. Указание внешних фильтрующих DNS серверов

Для настройки DNS сетевого подключения необходимо отредактировать файл /etc/resolv.conf. Для редактирования файлов применялось приложение gedit, которое может отсутствовать в определенных вариантах дистрибутива, поэтому более универсальным является редактор nano, не использующий GUI. Желательно заблаговременно удалить  имеющийся файл (или создать резервную копию путем переименования), а далее производить его редактирование:

$ sudo rm /etc/resolv.conf

$ sudo gedit /etc/resolv.conf

Для реализации фильтрации посещаемых сайтов было принято использовать DNS фильтрацию, так как программное обеспечение для российской аудитории семейства ОС Linux построено на организации proxy сервера, что требует ручной настройки параметров сети и снижает эффективность применения сервера, как устройства администрирования. Для фильтрации использовался сторонний сервис Rejector.ru [4], сервера которого и должны быть указаны в редактируемом файле:

# Без фильтра использовать nameserver 172.16.0.1

nameserver 95.154.128.32

nameserver 91.196.139.174

Значения IP адресов, занесенных в данный текстовый файл, не изменяются в зависимости от пользователя.

При перезагрузке сервера возникла проблема обновления файла /etc/resolv.conf менеджером сети (Network Manager), что потребовало установки запрета на имение файла[5]. Данная мера является достаточно опасной, так как можно получить в дальнейшем неожиданные результаты при использовании сторонних инструментов. Для фиксации файла применялась команда

$ sudo chattr +i /etc/resolv.conf

  1. Настройка NAT & DHCP сервера

Дальнейшие функции по обеспечению сети заключаются в настройке DNS и DHCP сервера [6]. Обеспечение их работы будет основано на использовании пакетов dnsmasq [7,8]. По умолчанию данные пакеты не включены в стандартный набор инструментов, что потребовало его установку:

$ sudo apt-get install dnsmasq

Настройка данного пакета достаточно проста и заключается в указании диапазона адресов DHCP сервера. Для настройки используется следующий файл конфигурации /etc/dnsmasq.conf:

$ sudo gedit /etc/dnsmasq.conf

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

# Адрес обслуживающего сервера

listen-address=192.168.0.1

# Количество запоминаемых IP адресов абонентов

cache-size=300

# Диапазон выделяемых IP адресов (без статически указанных) и их время жизни

dhcp-range=192.168.0.101,192.168.0.250,24h

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

$ sudo /etc/init.d/dnsmasq restart

  1. Включение маршрутизации

Включение режима работы, в котором сервер выполняет роль маршрутизатора, включается путем указания параметра net.ipv4.ip_forward значение которого устанавливается равным 1 в конфигурационном файле /etc/sysctl.conf.

$ sudo gedit /etc/sysctl.conf

Кардинальное изменение текста может привести к серьезным неблагоприятным последствиям, так как в данном случае происходит тонкая настройка параметров ядра [9], поэтому желательно создать резервную копию. В файле настроек необходимо раскомментировать следующую строчку для обеспечения маршрутизации:

net.ipv4.ip_forward=1

Для изменения текущего состояния ядра без перезагрузки системы можно перезагрузить систему или единовременно применить команду:

$ sudo sysctl -p

Последним штрихом настройки сети являются правила перенаправления пакетов. Данные правила необходимо указывать при загрузке системы, поэтому их целесообразно указать для автоматического выполнения при загрузке системы [10,11]. Для этого был отредактирован файл /etc/rc.local.

$ sudo gedit /etc/rc.local

В данном файле необходимо указать следующие команды управления межсетевым экраном. Успешность выполнения проверяется по возвращаемому значению выполняемого сценария. Ответственность за возвращаемое значение, равное по умолчанию 0, ложится на плечи редактирующего файл. Команды выполнятся от пользователя root, поэтому необходимо указывать имя учетной записи, от имени которой происходит выполнение. В рассматриваемом случае была создана учетная запись serveruser, которая использовалась при администрировании сервера. В итоге до выхода из сценария (exit 0) были добавлены следующие строки:

sudo –u serveruser -H iptables -P FORWARD ACCEPT

sudo –u serveruser -H iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE

Проверка работоспособности производилась путем выполнения следующей команды:

$ sudo /etc/init.d/rc.local start

  1. Управление системой фильтрации

Для использования услуг выборочной фильтрации выбран сервис Rejector.ru, который является клоном сервиса OpenDNS и рассчитан на русскоязычную аудиторию. Удобство сервиса заключается в лаконичности предоставляемых услуг: простая настройка параметров фильтрации, а так же сбор статистики заблокированных ресурсов. Неоспоримым преимуществом является возможность пользователю сообщить администратору о неверно категоризированном ресурсе.

  1. Категоризация фильтрации

Регистрация на сайте сервиса дает возможность настроить параметры фильтрации. Набор правил применяется для определенной сети, которую необходимо создать. Для создания сети на странице, располагающейся в меню Панель Управления > Сети, была создана сеть с динамическим IP адресом под названием namewebs118 и идентификатором idwebs118 (рисунок 1).

Рисунок 1. Создание параметров сети.

После создания была предоставлена возможность отредактировать текст страницы запрета. E-mail администратора был убран с целью предотвращения попытки использования адреса ненадлежащим образом недовольными пользователями. Текст страницы получился следующим:

Ой, сайт НЕ связан с процессом обучения!

Доступ к ресурсу заблокирован!


Отправить запрос на открытие сайта администратору

%user_query_form%

В результате страница содержала запись, представленную на рисунке 2:

Рисунок 2. Пользовательские сети.

Параметры фильтрации настраиваются на странице Панель Управления > Фильтр. Из предложенных вариантов работы был выбран Индивидуальный Фильтр (рисунок 3). Выбор категории запрещает пользователям просматривать ресурсы данной категории.

Рисунок 3. Категории индивидуальной фильтрации.

На данном этапе основные настройки фильтрации можно считать завершенными. Все запросы пользователей относительно неверной категоризации ресурсов будут высланы на E-mail, указанный при регистрации на сервисе.

  1. Интеграция сервиса и сервера

Кажущаяся сложность фильтрации заключается в использовании динамического внешнего IP адреса локальной сети, которая не относится к владельцам постоянного внешнего IP адреса. Нами рассмотрена задача указания IP адреса системе Rejector.ru для конкретного пользователя. Для этого был создан сценарий следующего вида [12]:

#!/bin/bash

# Пареметры пользователя сервиса Rejector.ru

username=ваш_логин # E-mail

passwd=ваш_пароль # Пароль

ipname=ваш_адрес_сети # IP адрес сети

log_dir= $HOME # Каталог вывода результатов выполнения

log_file=rejectorupd.log #Файл вывода результатов

date >> $log_dir/rejectorupd.log

/usr/bin/curl -i -m 60 -k -u $username:$passwd "http://updates.rejector.ru/nic/update?hostname=ipname" -silent >> $log_dir/$ log_file

echo -e "\n" >> $log_dir/$ log_file

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

$ sudo apt-get install curl

В результате выполнения сценария в текстовый файл, в данном случае ~/rejectorupd.log, выводится информация о результатах выполнения. Положительный результат будет в случае содержания слова good в конце каждой записи.

Выполнение данного сценария можно привязать к определенным промежуткам времени при помощи демона Cron [13]. Для этого данный сценарий помещался в домашнюю папку под название rejectorUpdate.sh. Настройка выполнения данного сценария производится путем редактирования файла конфигурации демона Cron:

$ crontab -e

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

5 * * * * bash rejectorUpdate.sh

Для работы от имени суперпользователя должна быть использована другая команда (не применялась в данной работе):

$ sudo crontab -e -u root

Выводы

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

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

Литература

[1] http://ru.wikipedia.org/wiki/Ethernet

[2] http://help.ubuntu.ru/wiki/настройка_сети_вручную

[3] http://www.opennet.ru/docs/HOWTO-RU/mini/IP-Alias.html

[4] http://rejector.ru

[5] http://ru.wikipedia.org/wiki/Chattr

[6] http://dobroserver.ru/ubuntu-router

[7] http://thekelleys.org.uk/dnsmasq/doc.html

[8] http://en.wikipedia.org/wiki/Dnsmasq

[9] http://debian.telenet.ru/doc/sysctl.conf

[10] http://blog.denisiuk.org/2010/01/etcrclocal.html

[11] https://help.ubuntu.com/community/RcLocalHowto

[12] http://forum.rejector.ru/archive/index.php/t-74.html

[13] http://help.ubuntu.ru/wiki/cron


По теме: методические разработки, презентации и конспекты

Альт Линукс. Настройка сервера терминалов и контентной фильтрации

Личный опыт по настройке и управлению сервером терминалов, вариантов создания контентной фильтрации....

Применение ИКТ в управлении школой

применение ИКТ в управлении школой...

Презентация. Применение математической статистики в школе.

Презентация. Применение математической статистики в школе....

Выступление на семинаре "Система контентной фильтрации в школе"

В статье рассказано о практическом внедрении системы контентной фильтрации в школе....

Методическая разработка Тема: «Применение фитнес технологий в школе»

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

Здоровьесберегающие технологии и их применение в образовательном процессе школы

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

Статья: методика применения интерактивных практикумов в школе

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