Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом.pdf
Скачиваний:
23
Добавлен:
23.03.2015
Размер:
1.25 Mб
Скачать

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