Главная » Просмотр файлов » ВКР_Плотникова_24Б

ВКР_Плотникова_24Б (1209280), страница 5

Файл №1209280 ВКР_Плотникова_24Б (Разработка модуля протоколирования данных пользователя в открытых беспроводных сетях) 5 страницаВКР_Плотникова_24Б (1209280) страница 52020-10-04СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Рисунок 4.1.2.2 – Отличия механизмов работы iptables и firewalld

Настройки брандмауэра хранятся в скрипте first.sh, который лежит в корневой папке сервера. При запуске либо перезагрузке сервера запускается данный скрипт. Текст скрипта first.sh:

#!/bin/bash

echo "*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

#bind

-A INPUT -j ACCEPT -p udp -m state --state NEW -m udp --dport 53

#httpd

-A INPUT -j ACCEPT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443

#ssh

-A INPUT -j ACCEPT -p tcp -m state --state NEW -m tcp --dport 22

#samba

-A INPUT -j ACCEPT -p udp -m state --state NEW -m udp -m multiport --dports 137,138

-A INPUT -j ACCEPT -p tcp -m state --state NEW -m tcp -m multiport --dports 139,445

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

# Интерфейс eno16777736 смотрит во внешнюю сеть

*nat

-A PREROUTING -i eno33554960 -p tcp -m multiport --dports 80 -j REDIRECT --to-port 80

-A PREROUTING -i eno33554960 -p tcp -m multiport --dports 443 -j REDIRECT --to-port 443

-A POSTROUTING -o eno16777736 -j MASQUERADE

COMMIT" > /etc/sysconfig/iptables

systemctl reload iptables

exit 0

Для того, чтобы внести IP-адрес пользователя в список разрешенных в iptables, используется скрипт allowHost.sh, который запускается веб-приложением при прохождении всех условий. Текст скрипта allowHost.sh:

#!/bin/bash

#Добавляет разрешающее правило из iptables

#Скрипт принимает 2 параметра

#1 - ip адрес

#2 - Mac адрес (необязательно)

if [ -z "$2" ]

then

iptables -I FORWARD 1 -s $1 -j LOG -m state --state NEW

iptables -I FORWARD 2 -s $1 -j ACCEPT

iptables -t nat -I PREROUTING 1 -s $1 -j ACCEPT

else

iptables -I FORWARD 1 -s $1 -m mac --mac $2 -j LOG -m state --state NEW

iptables -I FORWARD 2 -s $1 -m mac --mac $2 -j ACCEPT

iptables -t nat -I PREROUTING 1 -s $1 -m mac --mac $2 -j ACCEPT

fi

exit 0

По истечению времени, назначенного администратором, для удаления записи из iptables, используется скрипт deniedHost.sh.

Он запускается службой, работающей на сервере, которая «пробегает» по записям в таблице базы данных MySQL и проверяет текущее время и дату с датой и временем в таблице.

Текст скрипта deniedHost.sh:

#!/bin/bash

#Убирает разрешающее правило из iptables

#Скрипт принимает 2 параметра

#1 - ip адрес

#2 - Mac адрес (необязательно)

if [ -z "$2" ]

then

iptables -D FORWARD -s $1 -j LOG -m state --state NEW

iptables -D FORWARD -s $1 -j ACCEPT

iptables -t nat -D PREROUTING -s $1 -j ACCEPT

else

iptables -D FORWARD -s $1 -m mac --mac $2 -j LOG -m state --state NEW

iptables -D FORWARD -s $1 -m mac --mac $2 -j ACCEPT

iptables -t nat -D PREROUTING -s $1 -m mac --mac $2 -j ACCEPT

fi

exit 0

4.1.3 Теоретические и алгоритмические сведения о концепции проектирования MVC для веб-приложений

Для реализации данного программного модуля было решено разработать веб-приложение, расположенный на локальном сервере и обеспечивающий контролируемый доступ к ресурсам сети Интернет с обязательной регистрацией пользователей. Во время подключения к публичной сети Wi-Fi, должен срабатывать механизм, перенаправляющий пользователя на данный веб-приложение. Далее после ввода номера телефона, необходимо посылать через смс-шлюз сообщение на телефон пользователя, содержащее код авторизации. Код и номер телефона вносятся в отдельную таблицу в базе данных, содержащую пару номер телефона/код, чтобы в случае обрыва связи можно было восстановить доступ, посредством повторного ввода кода. После регистрации данные пользователя будут внесены в таблицу, содержащую в себе: номер телефона, MAC-адрес устройства, IP-адрес устройства в локальной сети предприятия, дату подключения и дату, по истечении которой доступ к сети Интернет будет ограничен, и потребуется повторный ввод номера телефона, а также идентификатор типа регистрации.

Из вышесказанного следует, что необходимо выбрать схему проектирования данного веб-приложения. Было решено взять за основу MVC (англ. Model-View-Controller – Модель-Представление-Контроллер) – конструкционный шаблон проектирования, который описывает способ построения структуры приложения, сферы ответственности и взаимодействие каждой части в данной структуре (рисунок 4.1.3.1).

Рисунок 4.1.3.1 – Визуальное представление устройства конструкционного шаблона проектирования MVC

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

Впервые данная концепция была описана Трюгве Реенскаугом в 1979 году, но для другого окружения. Шаблон, который мы будем использовать является адаптированной версией оригинального шаблона к веб-разработке.

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

  • к одной модели можно присоединить несколько представлений, при этом не затрагивая реализацию модели;

  • не затрагивая реализацию представлений, можно изменить реакции на действия пользователя – для этого достаточно использовать другой контроллер;

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

Важно отметить, что как представление, так и контроллер зависят от модели; однако модель не зависит ни от представления, ни от контроллера. Тем самым достигается назначение такого разделения: оно позволяет строить модель независимо от визуального представления, а также создавать несколько различных представлений для одной модели. Функции каждого элемента кратко рассмотрены на рисунке 4.1.3.2.


Рисунок 4.1.3.2 – Элементы конструкционного шаблона проектирования MVC

Контроллер управляет запросами пользователя (получаемые в виде запросов HTTP GET или POST, когда пользователь нажимает на элементы интерфейса для выполнения различных действий). Его основная функция – вызывать и координировать действие необходимых ресурсов и объектов, нужных для выполнения действий, задаваемых пользователем. Обычно контроллер вызывает соответствующую модель для задачи и выбирает подходящий вид.

Модель – это данные и правила, которые используются для работы с данными, которые представляют концепцию управления приложением. В любом приложении вся структура моделируется как данные, которые обрабатываются определённым образом.

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

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

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

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

Самое очевидное преимущество, которое мы получаем от использования концепции MVC – это чёткое разделение логики представления (интерфейса пользователя) и логики приложения.

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

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

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

Yii – это высокоэффективный, основанный на компонентной структуре PHP-фреймворк для быстрой разработки крупных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода –MVC-концепцию, и может существенно ускорить процесс разработки.

4.1.4 Система управления базами данных MySQL

MySQL – это свободная система управления реляционными базами данных.
Реляционная база данных хранит информацию в отдельных таблицах, а не в одном большом хранилище, благодаря чему достигается высокая производительность и гибкость. Часть "SQL" слова "MySQL" обозначает "Structured Query Language" ("Язык структурированных запросов"). SQL – наиболее общий стандартизованный язык доступа к базам данных; он соответствует стандарту ANSI/ISO SQL. Стандарт SQL впервые был принят в 1986 году и на настоящее время существует несколько его версий.

Разработку и поддержку MySQL осуществляет корпорация Oracle.

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

MySQL разработал Михаэль Видениус. MySQL является относительно небольшой и быстрой реляционной СУБД. Основные цели MySQL – быстродействие и ошибкоустойчивость.

Основные преимущества:

  • многопоточность. Поддержка нескольких одновременных запросов;

  • оптимизация связей с присоединением многих данных за один проход;

  • записи фиксированной и переменной длины;

  • ODBC драйвер в комплекте с исходником;

  • гибкая система привилегий и паролей;

  • до 16 ключей в таблице. Каждый ключ может иметь до 15 полей;

  • поддержка ключевых полей и специальных полей в операторе CREATE;

  • поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени;

  • интерфейс с языками C и perl;

  • основанная на потоках, быстрая система памяти;

  • утилита проверки и ремонта таблицы (isamchk);

  • все данные хранятся в формате ISO8859_1;

  • все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках;

  • псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице;

  • все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей;

  • легкость управления таблицей, включая добавление и удаление ключей и полей.

5 Руководство пользователя

При первом подключении к открытой сети Wi-Fi происходит переход на страницу авторизации (рисунок 5.1).

Рисунок 5.1 – Страница авторизации

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6525
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее