- •АННОТАЦИЯ
- •СОДЕРЖАНИЕ
- •ВВЕДЕНИЕ
- •1 ОБЗОР ЛИТЕРАТУРЫ И ПОСТАНОВКА ЗАДАЧИ
- •2 ТЕХНИЧЕСКОЕ ОПИСАНИЕ ПРОЕКТА
- •2.1 План разработки проекта
- •2.2 Процесс выгрузки дампа реестров
- •Рисунок 1
- •Рисунок 2
- •2.3 Разбор дампа реестров
- •2.4 Ограничение доступа
- •Рисунок 3
- •Рисунок 4
- •2.5 Описание интерфейсов программного обеспечения
- •Рисунок 5
- •Рисунок 6
- •Рисунок 7
- •Рисунок 8
- •Рисунок 9
- •Рисунок 10
- •Рисунок 11
- •2.6 Требования к начальной настройке
- •3 ЭКОНОМИЧЕСКОЕ ОПИСАНИЕ ПРОЕКТА
- •3.1 Сетевое планирование
- •3.2 Построение сетевого графика, расчет его параметров и вероятностных характеристик
- •Таблица 1 – Перечень работ
- •Рисунок 12
- •Таблица 2 – Расчет сетевого графика
- •3.3 Анализ сетевого графика
- •Таблица 3
- •3.4 Смета затрат на разработку проекта
- •Таблица 4
- •Таблица 5
- •Таблица 6
- •Таблица 7
- •Таблица 8
- •Таблица 9
- •Таблица 10
- •Таблица 11
- •3.5 Анализ технико-экономической эффективности
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- •ПРИЛОЖЕНИЕ А
2.4 Ограничение доступа
Ограничения доступа происходит на оборудовании фирмы «Mikrotik» управляемое операционной системой «RouterOS». Ограничения доступа производится соответственно с рекомендациями «Роскомнадзора». Для предварительной настройки используется API RouterOS. Для C♯ существует готовый класс MK предоставляющий возможность работать с устройствами Mikrotik. Для этого необходимо чтобы соответствующая служба – API, была включена на устройстве. Это можно осуществить командой:
/ip service set api disabled=no port=8782
Аналогичные действия можно осуществить через WinBOX (приложение для настройки устройств Mikrotik) – рисунок 3.
Пример организации взаимодействия с оборудованием Mikrotik:
//Подключаемся к 192.168.0.1 на порт 8728
MK mikrotik = new MK("192.168.0.1", 8728);
//Авторизируемся на устройстве
if (mikrotik.Login("логин", "пароль"))
{
//Отправляем команды mikrotik.Send("/system/script/add"); mikrotik.Send("=name=install");
mikrotik.Send("=source=тут команды команды команды", true);
//Ждем ответа mikrotik.Read();
//Закрывем соединение mikrotik.Close();
}
8782 – это номер порта посредством которого и происходит взаимодействие. В примере представлено создание скрипта install на устройстве.
В команды предварительной настройки устройства входит создание трех скриптов – install, uninstall и registry. Выполнение скрипта uninstall, install.
Создание расписания для выполнения скрипта registry.
23
Рисунок 3
Создание скрипта uninstall посредством команд API:
/system/script/add
=name=uninstall
=source=
#отключение прокси сервера
/ip proxy set enabled=no
#удаление правила фаервола для NAT перенаправления на прокси-сервер
/ip firewall nat remove [find comment=registry]
#удаления DNS записи хоста registry.net
/ip dns static remove [find comment=registry]
#удаление списка ip адресов запрещенных ресурсов
/ip firewall address-list remove [find comment=registry]
#удаление правил прокси-сервера для запрещенных ресурсов
/ip proxy access remove [find comment=registry]
#удаление расписания выполнения скрипта registry /system scheduler remove registry
24
#удаления файла с правилами
/file remove registry.rsc
#удаление скрипта install /system script remove install
#удаление скрипта registry /system script remove registry
Выполнение скрипта uninstall посредством команд API:
/system/script/run
=number=uninstall
Создание скрипта install и registry посредством команд API выглядит аналогично созданию скрипта uninstall. Вот команды в скрипте install:
#создание правила фаервола для NAT перенаправления пакетов к прокси
#адрес назначения которых есть в списке адресов запрещенных ресурсов
#перенаправляются пакеты предназначенные для портов 80(http) и 443(https) /ip firewall nat add action=redirect chain=dstnat protocol=tcp dst-
port=80,443 dst-address-list=registry to-ports=8080 disabled=no comment=registry
#ставим правило в начало, для исполнения его в первую очередь
/ip firewall nat move [find comment=registry] destination=0
#включаем прокси на порту 8080
/ip proxy set enabled=yes port=8080
#вносим в DNS запись. Привязывая адрес registry.net и IP ПК
#на котором стоит программно-аппаратный комплекс
/ip dns static add name=registry.net address=192.168.0.200 disabled=no comment=registry
Выполнение скрипта install посредством команд API выглядит аналогично выполнению скрипта uninstall.
Команды в скрипте registry:
#скачиваем с ПК на котором стоит программно-аппаратный комплекс
#файла с правилами
/tool fetch url=http://registry.net/registry.rsc
#удаление списка ip адресов запрещенных ресурсов
/ip firewall address-list remove [find comment=registry]
#удаление правил прокси сервера для запрещенных ресурсов
/ip proxy access remove [find comment=registry]
#импортируем правила из скаченного файла
/import file=registry.rsc
#удаления файла с правилами
25
/file remove registry.rsc
Постановка скрипта registry на запуск по расписанию:
#добавление нового расписания
/system/scheduler/add
#имя расписания
=name=registry
#включаем
=disabled=no
#имя скрипта выполняемого по расписанию
=on-event=registry
#выполнять каждый час
=interval=01:00:00
Использование прокси-сервера и скачивание правил по расписанию выигрывает по сравнению с использованием L7 правил и отправкой правил через API RouterOS, в следствии того, что требует меньше ресурсов оборудования. В тоже время данный подход требует наличие WEB-сервера, с которого по расписанию будут браться настройки. По этой причине был реализован простой WEB-сервер. Основные задачи, который он выполняет:
-отдача файла с настройками ограничения – registry.rsc;
-предоставление странички-заглушки с информацией о решении, на основе которого ограничен доступ – рисунок 4.
Файл с настройками представляет собой текстовый файл с правилами для прокси-сервера и адресом для предварительного отбора пакетов.
Пример правил:
#домену eu.iit.csu.ru соответствует ip адрес 195.54.14.133
#добавляем данный ip адрес в список registry
/ip firewall address-list add address=195.54.14.133 list=registry comment=registry
#добавляем правило для прокси-сервера перенаправлять с
#url eu.iit.csu.ru/course/index.php на #registry.net/eu.iit.csu.ru/course/index.php
/ip proxy access add action=deny dst-host="eu.iit.csu.ru" path="/course/index.php" redirect-to="registry.net/eu.iit.csu.ru/course/index.php" comment=registry
26