ВКР_Плотникова_24Б (1209280), страница 3
Текст из файла (страница 3)
Таблица 3.3.1 – UserType – список типов пользователей
Наименование поля | Тип | Описание |
UserTypeID | int | Идентификатор типа пользователя |
UserTypeName | varchar | Название типа пользователя |
Таблица User (таблица 3.3.2) содержит информацию о пользователях, пользователям могут назначаться типы, имеет связь с таблицей UserType по полю UserTypeID.
Таблица 3.3.2 – User – список пользователей
Наименование поля | Тип | Описание |
id | int | Идентификатор пользователя |
username | varchar | Логин пользователя |
password | varchar | Пароль пользователя |
auth_key | varchar | Соль для хеширования пароля |
UserTypeID | int | Идентификатор типа пользователя |
Таблица AccessRules (таблица 3.3.3) содержит информацию о правилах доступа к сети Интернет.
Таблица 3.3.3 – AccessRules – список правил доступа
Наименование поля | Тип | Описание |
AccessRulesIP | varchar | IP адрес |
AccessRulesMAC | varchar | MAC адрес |
AccessRulesEndDate | datetime | Дата и время окончания действия правила |
Таблица AccessHistory (таблица 3.3.4) содержит информацию об истории разрешения доступа к сети Интернет, записям назначается тип авторизации (по телефону, по логину), имеет связь с таблицей AuthorizationType по полю AuthorizationTypeID.
Таблица 3.3.4 – AccessHistory – список истории доступов
Наименование поля | Тип | Описание |
AccessHistoryID | int | Идентификатор истории разрешений доступа к сети Интернет |
AccessHistoryIP | varchar | IP адрес |
AccessHistoryMAC | varchar | MAC адрес |
AccessHistoryKey | varchar | Ключ, по которому был получен доступ (логин, телефон) |
AuthorizationTypeID | int | Идентификатор типа авторизации |
AccessHistoryDate | datetime | Дата доступа к сети Интернет |
AccessHistoryEndDate | datetime | Дата окончания доступа к сети Интернет |
Таблица AuthorizationType (таблица 3.3.5) содержит информацию, о типах авторизации которые назначаются записям истории доступа.
Таблица 3.3.5 – AuthorizationType – список типов пользователей
Наименование поля | Тип | Описание |
AuthorizationTypeID | int | Идентификатор типа авторизации |
AuthorizationTypeIName | varchar | Название типа авторизации |
Таблица PhoneCode (таблица 3.3.6) содержит информацию о парах телефон-смс-код.
Таблица 3.3.6 – PhoneCode – список телефонов и смс-кодов
Наименование поля | Тип | Описание |
PhoneCodeID | int | Идентификатор пары телефон-код |
PhoneCodeNumber | varchar | Номер телефона |
PhoneCodeCode | int | СМС-код |
PhoneCodeDate | datetime | Дата и время создания |
3.4 Разработка диаграммы компонентов
Диаграмма компонентов позволяет определить состав программных компонентов, в роли которых может выступать исходный, бинарный и исполняемый код, а также установить зависимости между ними.
При разработке диаграмм компонентов преследуются цели:
-
спецификация общей структуры исходного кода системы;
-
спецификация исполнимого варианта системы.
Данная диаграмма обеспечивает согласованный переход от логического к физическому представлению системы в виде программных компонентов. Одни компоненты могут существовать только на этапе компиляции программного кода, другие – на этапе его исполнения. Диаграмма компонентов для веб-приложения NiksGate представлена на рисунке 3.4.1.
На представленной диаграмме все компоненты разделены на три взаимозависимых блока согласно шаблону проектирования: models, controllers, views. Блок models содержит в себе классы, описывающие модель базы данных. Блок controllers содержит в себе классы, которые обеспечивают связь между пользователем и системой. Блок views разделен на подразделы, каждый из которых содержит в себе элементы отображения данных (элементы пользовательского интерфейса).
Рисунок 3.4.1 – Диаграмма компонентов NiksGate
На представленной диаграмме все компоненты разделены на три взаимозависимых блока согласно шаблону проектирования: models, controllers, views. Блок models содержит в себе классы, описывающие модель базы данных. Блок controllers содержит в себе классы, которые обеспечивают связь между пользователем и системой. Блок views разделен на подразделы, каждый из которых содержит в себе элементы отображения данных (элементы пользовательского интерфейса).
3.5 Разработка диаграммы развертывания
Диаграмма развертывания применяется для представления общей конфигурации и топологии распределенной информационной системы, содержит сведения о распределении компонентов по отдельным узлам системы и каналах связи между аппаратными средствами.
Диаграмма развертывания для разрабатываемого веб-приложения представлена на рисунке 3.5.1.
Рисунок 3.5.1 – Диаграмма развертывания
База данных, необходимая для хранения и обработки данных веб-приложения, в также само веб-приложение, размещаются на сервере. Посетители сайта имеют к нему доступ через Интернет, используя браузер на своем компьютере, телефоне, планшете или любом другом устройстве, имеющем модуль Wi-Fi. Администратор также осуществляет доступ к веб- приложению посредством Интернет-соединения и используя браузер на своем ПК или телефоне.
3.6 Основные этапы создания веб-приложения
Разработка проекта на основе построенных моделей состоит из следующих этапов:
-
написание модели базы данных;
-
генерация базы данных на основе написанной модели в СУБД;
-
создание и редактирование элементов, обеспечивающих связь между пользователем и системой (контроллеров);
-
создание и редактирование элементов пользовательского интерфейса (представлений);
-
перенос базы данных на сервер;
-
перенос веб-приложения на сервер;
-
отладка и тестирование веб-приложения.
-
Практическая часть
-
Выбор программных средств
Исходные файлы веб-приложения должны располагаться на сервере, через который пользователи получают доступ к сети Интернет. Так же должны быть предустановлены:
-
Web-сервер Apache;
-
СУБД MySQL;
-
PHP версии 5.4.
4.1.1 Собственный сервер
Главным преимуществом создания собственного сервера является то, что здесь вы сам себе хозяин, который несет ответственность за сохранность и безопасность хранимых на серверах данных. Для крупных компаний и предприятий наличие собственной серверной – это необходимость, однако, необходимость, которая стоит немалых денег.
Для того чтобы создать свой собственный сервер, необходимо:
-
во-первых, закупить все необходимое оборудование, арендовать (выделить) отдельное помещение и переоснастить его;
-
во-вторых, нанять сотрудников, которые будут проводить комплексное обслуживание серверов;
-
в-третьих, необходимо постоянно заботится об их обновлении, создании надежных систем безопасности и т.д.
Кроме того, создание собственного сервера требует расходов на наличие:
-
статического IP-адреса, который большинство провайдеров предоставляют платно;
-
высокоскоростного Интернета: минимально допустимая скорость - это 10mbps, но нормой является100mbps;
-
постоянно включенного компьютера, что влечет за собой определенные расходы на электроэнергию и источник бесперебойного питания повышенной ёмкости на случай отключения электричества.
В качестве серверной операционной системы выбрана CentOS 7.
CentOS (англ. Community ENTerprise Operating System) –дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. Срок поддержки версий данной операционной системы составляет 10 лет. Каждая версия обновляется 1 раз в 6 месяцев для поддержки новых аппаратных средств.
Данный дистрибутив состоит из свободного программного обеспечения с открытым исходным кодом, основанном на исходных кодах Red Hat, поскольку это требуется в лицензии GPL и других. Разработчики CentOS используют это для создания окончательного продукта, очень близкого к Red Hat Enterprise. Дистрибутив CentOS доступен в виде дисков с бинарными пакетами только для платных подписчиков.
CentOS использует программу yum, что позволяет сократить количество времени, затрачиваемого на обслуживание сервера. Так же начиная с версии 7.0 используется пакетный менеджер dnf для скачивания и установки обновлений. В качестве репозитория для обновления используется – CentOS Mirror Network. Упрощенная процедура обновления, так же является существенным плюсом.
CentOS 7 – первый релиз данной операционной системы, после перехода команды CentOS в RedHat. Данная ОС стабильна и готова к корпоративному использованию, поскольку обладает широким функционалом.
Установка операционной системы осуществляется в соответствии с руководством пользователя, поставляемым производителем.
4.1.2 Разграничение доступа с использованием встроенных в операционную систему средств. Брандмауэр firewalld
Centos 7 в базовой комплектации идет с брандмауэром – firewalld.
Брандмауэр (межсетевой экран, фаервол) – это специализированное программное или аппаратное (или программно-аппаратное) средство, позволяющее разделить сеть на несколько частей и реализовать набор правил, определяющих условия прохождения сетевых пакетов из одной части в другую.
Межсетевые экраны, установленные в точках соединения с сетью Интернет, обеспечивают защиту внешнего периметра сети предприятия и защиту собственных Интернет-серверов, открытых для общего пользования, от несанкционированного доступа.
Механизмы защиты, реализуемые брандмауэрами:
-
фильтрация сетевого трафика;
-
шифрование (создание VPN – Виртуальной Приватной Сети);
-
трансляция адресов;
-
аутентификация (дополнительная);
-
противодействие некоторым сетевым атакам (наиболее
распространённым); -
управление списками доступа на маршрутизаторах (необязательно).
Основная функция межсетевого экрана – фильтрация сетевого трафика Она может осуществляться на любом уровне модели OSI. В качестве критериев может выступать информация с разных уровней: адреса отправителя/получателя, номера портов, содержимое поля данных.
Использование встроенного программного средства firewalld и его настроек позволит реализовать разграничение доступа пользователей к сети Интернет.
Если точнее, то firewalld – это служба для динамического управления межсетевым экраном с поддержкой доверительных зон сетевых соединений или интерфейсов. Строго говоря, firewalld – это не какой-то новый, разработанный с нуля фаервол, а всего лишь надстройка над iptables (точнее, он использует для работы iptables tool и управляет тем же сетевым фильтром netfilter), однако с ней были получены новые возможности и потеряны некоторые старые.
Рассмотрим теоретические сведения, структуру и особенности утилиты iptables для дальнейшего сравнения и описания надстройки firewalld.
Iptables – представляет собой утилиту командной строки для настройки интегрированного в ядро Linux межсетевого экрана, разработанного в рамках проекта netfilter. Обычно включена в дистрибутив операционной системы. Термин «iptables» также используется для обозначения самого межсетевого экрана Linux. С помощью данной утилиты администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Чтобы пользоваться данной утилитой необходимо обладать привилегиями суперпользователя (root). Она предназначена для работы с семейством протоколов IPv4. Для работы с семейством IPv6 существует отдельная версия утилиты – Ip6tables.