Модификация Web-интерфейса управления пользователями прокси-сервера

Модификация системы управления пользователями прокси-сервера SQUID. Выбор средств разработки программного обеспечения. Структура базы данных MySQL. Построение web-интерфейса. Авторизация в системе управления пользователями, страница администрирования.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 23.07.2011
Размер файла 456,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа

по направлению "Прикладная информатика"

МОДИФИКАЦИЯ WEB-ИНТЕРФЕЙСА УПРАВЛЕНИЯ ПОЛЬЗОВАТЕЛЯМИ ПРОКСИ-СЕРВЕРА

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

1 Постановка задачи

1.1 Поставленные цели

1.2 Выбор средств реализации

2 Реализация поставленных целей

2.1 Подготовка прокси-сервера

2.1.1 Структура базы данных MySQL

2.2 Построение web-интерфейса

2.2.1 Структура web-интерфейса

2.2.2 Авторизация в системе управления пользователями

2.2.3 Страница администрирования

3 Анализ полученных результатов

ЗАКЛЮЧЕНИЕ

СПИСОК ЛИТЕРАТУРЫ

ВВЕДЕНИЕ

прокси сервер модификация интерфейс

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

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

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

богатая функциональность;

бесплатность, открытый исходный код;

проксирование и кэширование большого числа протоколов, таких как HTTP, FTP и других;

поддержка прозрачного проксирования;

гибкая система контроля доступа пользователей.

Одним из основных недостатков прокси-сервера SQUID является то, что он не имеет встроенных утилит для анализа и визуализации статистики пользователей. Вся статистика пользователей записывается в так называемый лог-файл, но его анализ вручную достаточно сложен. Целью данной работы является создание системы для работы со статистикой пользователей, которая представляет собой средства для сбора и визуализации статистики пользователей и использует для этого web-интерфейс. Это должно во многом упростить работу администраторов, использующих прокси-сервер SQUID.

Постановка задачи

1.1 Поставленные цели

Основной задачей данной работы стала модификация системы управления пользователями прокси-сервера SQUID. Данная система была написана ранее Долгушиным Дмитрием Сергеевичем в качестве бакалаврской работы. Модификация должна реализовывать следующую функциональность:

Модуль по работе с пользователями должен поддерживать группы для более явного разделения пользователей.

Модуль по работе со статистикой должен реализовывать функции по сбору групповой статистики, учёту общего трафика группы.

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

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

1.2 Выбор средств реализации

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

операционная система Ubuntu 10.10 с ядром Linux 2.6.35-23. Выбор данного дистрибутива был связан с тем, что Ubuntu имеет достаточно широкую поддержку сообщества, подробную документацию и относительную простоту использования, перед другими дистрибутивами;

прокси-сервер SQUID версии 2.7, являющийся основой существующей web-системы

Apache версии 2.2.16 является на данный момент последней стабильной версией web-сервера. Выбор Apache в качестве web-сервера был обусловлен тем, что он считается одним из самых надёжных и гибких в конфигурации web-серверов;

система управления базами данных MySQL версии 5.1.49. Выбор в качестве средства хранения информации базы данных был обусловлен скоростью доступа к данным и удобством реализации доступа к ним. Для администрирования СУБД MySQL используется web-интерфейс phpmyadmin;

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

язык разметки HTML с использование каскадных таблиц стилей CSS как основного средства построения web-интерфейса:

JavaScript-фреймворк jQuery версии 1.4.1 для взаимодействия с функционалом системы через технологию Ajax.

Использование данных средств реализации позволяет в полном объеме выполнить все поставленные цели.

2. Реализация поставленных целей

2.1 Подготовка прокси-сервера

2.1.1 Структура базы данных MySQL.

Система управления хранит свои данные, такие как статистика пользователей, список пользователей и настройки системы, в базе данных MySQL. База данных состоит из четырёх таблиц:

“defaults” хранит информацию о текущих настройках системы, таких как размер квоты на трафик и время хранения лога в базе данных;

“users” хранит информацию о пользователях, их привилегиях в системе, их принадлежности к той или иной группе, а также объеме потраченного трафика;

“groups” хранит информацию о существующих группах;

“log” хранит всю статистику пользователей прокси-сервера.

Таблица “defaults” имеет следующую структуру:

“id” - идентификатор опции;

“option” - название опции;

“value” - значение опции.

Таблица “users” имеет следующую структуру:

“id” - идентификатор пользователя;

“groupa” - идентификатор группы;

“admin” - характеризует привилегии пользователя. Если поле имеет значение “1”, то пользователь имеет привилегии администратора;

“banned” - характеризует состояние пользователя в системе. Если поле имеет значение “1”, то пользователь заблокирован в системе;

“traffic” - показывает суммарный объем трафика пользователя.

Таблица “log” имеет следующую структуру:

“date” - дата доступа;

“site” - имя запрашиваемого ресурса;

“login” - имя пользователя;

“traffic” - объем трафика.

Таблица “groups” имеет следующую структуру:

“id” - идентификатор группы, используемый в таблице “users”;

“name” - название группы.

Для создания структуры базы данных MySQL необходимо в phpmyadmin выполнить файл “squid.sql”. В файле “config.php”, который находится по адресу ”/var/www/php/”, необходимо указать настройки данных MySQL, такие как сервер и название базы данных, имя и пароль пользователя базы данных.

2.2 Построение web-интерфейса

2.2.1 Структура web-интерфейса

Для начала работы с web-интерфейсом необходимо установить и настроить web-сервер Apache. После этого следует разместить файлы web-интерфейса в корневую папку сайта, определенную web-сервером. По умолчанию данная папка находится по адресу “/var/www/”. Затем необходимо через браузер зайти на сайт, адрес которого определен web-сервером.

Web-интерфейс имеет следующую структуру:

“index.php” - главный файл системы. В нем реализованы страницы входа в систему, статистики пользователя и администрирования. После того как выполнен вход в систему, скрипт проверяет переменные сеанса и возвращает соответствующую страницу.

“/php/loginup.php” - файл авторизации пользователей;

“/php/config.php” - файл настройки соединения с базой данных MySQL;

“/php/admin.php” - файл, реализующий функционал для страницы администрирования. В нем содержатся функции для сбора статистики, блокирования и разблокирования пользователей, управления привилегиями, создания новых пользователей, переименования пользователей, создания и переименования групп;

“/php/user.php” - файл, реализующий функционал для страницы статистики пользователя. Содержит такие функции, как сбор статистики и подсчет трафика пользователя;

“/php/statistic.php” - файл, реализующий функционал для сбора статистики;

“/php/passwdgenerator.php” - генерация пароля для нового пользователя;

“/js/jquery-1.4.1.min.js” - фреймворк jQuery;

“/js/jquery-ui-personalized-1.5.3.packed.js” - файл jQuery UI, содержащий функционал по созданию пользовательских интерфейсов jQuery;

“/js/ui.datepicker-ru.js” -получение диапазона дат с использованием календаря на jQuery;

“/js/jquery-init.js” - файл инициализации jQuery, содержащий обработчики событий и реализующий загрузку php-скриптов по технологии Ajax;

“/css/style.css” - основной стиль системы управления;

“/css/tabs.css” - стиль вкладок для страницы администрирования;

“/css/ui.datepicker.css” - стиль календаря на jQuery.

2.2.2 Авторизация в системе управления пользователями

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

Иллюстрация 1

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

подсказка пользователю о необходимости авторизации;

поле ввода логина;

поле ввода пароля;

кнопка входа в систему.

После того как логин и пароль были введены, следует нажать на кнопку “Войти”. Пользователь будет перенаправлен на страницу авторизации, на которой происходит следующее:

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

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

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

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

2.2.3 Страница администрирования

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

личная статистика;

статистика пользователей;

добавить пользователя;

группы;

статус пользователей;

настройки.

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

Вкладка “Статистика пользователей” отражает полную статистику пользователей прокси-сервера. Вешний вид данной вкладки показан на иллюстрации 2.

Иллюстрация 2

Структура вкладки “Статистики пользователей”:

панель фильтрации пользователей:

таблица статистики пользователей;

суммарный трафик пользователей;

Панель фильтрации пользователей позволяет отображать пользователей по следующим группам

отображать всех;

отображать заблокированных;

отображать администраторов:

отображать разрешенных пользователей;

отображать лишь конкретную группу

В файле “jquery-init.js” находится обработчик события смены пользовательской группы, который осуществляет вызов скрипта “admin.php” с помощью технологии Ajax. При этом скрипту передается номер вкладки, что позволяет вызвать нужную функцию.

Суммарный трафик вычисляется отдельно для каждой группы пользователей. Данная вкладка является основным средством мониторинга состояния прокси-сервера, объемом потребляемой статистики.

Добавление новых пользователей происходит на соответствующей вкладке, которая выглядит, как показано на иллюстрации 3.

Иллюстрация 3

Вкладка “Добавление пользователей” имеет следующую структуру:

подсказка пользователю;

поле ввода имени нового пользователя;

пометка об особых правах добавляемого пользователя;

Выбор группы добавляемого пользователя;

Кнопка отправки запроса создания.

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

необходимо задать имя нового пользователя, а также его привилегии в системе. Для создания пользователя с привилегиями администратора, необходимо поставить соответствующую галочку;

необходимо задать группу нового пользователя, по умолчанию это группа «default»;

после нажатия кнопки “>>”, обработчик события добавления пользователя вызывает соответствующую функцию из скрипта “admin.php”;

выполняется проверка на корректность введенного имени. Если пользователь с таким именем уже существует, то будет выведено соответствующее сообщение об ошибке;

в случае, когда введенное имя корректно, для него генерируется пароль, состоящий из 8 символов. Для этого вызывается функция из скрипта “passwdgenerator.php”;

все изменения сохраняются в базу данных MySQL, и пользователю сообщается об успешном выполнении скрипта.

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

В модификации добавлена возможность управления группами. Вкладка «Группы» выглядит, как показано на иллюстрации 4:

Иллюстрация 4

Вкладка «Группы» имеет следующую структуру:

Подсказка пользователю

Поле ввода имени новой группы

Список для выбора переименовываемой группы

Результат операции

Процесс добавления новой группы происходит по следующей схеме:

· необходимо ввести название новой группы

· после нажатия кнопки «Добавить» обработчик события добавления группы вызывает соответствующую функцию из скрипта «admin.php»

· после проверки введенного имени на существование новая группа соответственно добавляется или не добавляется в базу данных MySQL, и пользователю сообщается результат выполнения скрипта

Процесс переименования группы не отличается особой сложностью от добавления новой:

· необходимо ввести новое название группы

· из выпадающего списка существующих групп выбрать группу, которую требуется переименовать

· после нажатия кнопки «Переименовать» обработчик события переименования вызывает соответствующую функцию из скрипта «admin.php»

· после проверки введенного имени на существование группа соответственно переименовывается или остается прежней в базе данных MySQL, и пользователю сообщается результат выполнения скрипта

После добавления новой группы администратор немедленно может приступить к присвоению ей пользователей и просмотру статистики этой группы.

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

Иллюстрация 5

Вкладка “Статус пользователей” имеет следующую структуру:

подсказка пользователю;

фильтр выводимых пользователей по группам

имя пользователя

статус особых привилегий

статус доступа к прокси-серверу

кнопка переименования пользователя

кнопка смены пароля пользователя

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

Для того чтобы внести изменение в текущий статус пользователя, необходимо кликнуть по изменяемому статусу левой кнопкой мыши.

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

Аналогичным образом можно поменять текущее состояние пользователя. Если пользователь был заблокирован в системе, то он получит доступ в сеть Интернет, иначе пользователь будет заблокирован.

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

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

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

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

На вкладке настройки можно поменять некоторые переменные системы, такие как размер квоты по трафику и время хранения статистики в базе.

3 Анализ полученных результатов

В ходе работы были разработаны скрипты, реализующие следующую функциональность:

группировка пользователей, вывод групповой статистики

Переименование групп и пользователей, смена пароля пользователей.

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

1. Отдельная динамическая страница с личной информацией и статусами для каждого пользователя.

2. Поле ввода под именем каждого пользователя и соответствующая кнопка рядом.

3. Всплывающее окно.

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

А также, были модифицированы основные скрипты системы, чтобы быть более корректными, удовлетворяющими новым задачам:

Модифицирован скрипт добавления пользователя для поддержки групп.

Модифицирован скрипт вывода статистики пользователей для поддержки фильтрации по группам.

Модифицирован скрипт вывода статуса пользователей для поддержки фильтрации по группам.

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

ЗАКЛЮЧЕНИЕ

Целью данной работы была модификация существующей системы управления пользователями прокси-сервера SQUID. Модифицированная система управления пользователями упрощает работу с большим количеством пользователей, особенно разделенных по различным отделам или приоритету. К ним относятся:

визуальное разделение различных групп.

Подсчет общего трафика затраченного группой.

Изменение таких важных атрибутов пользователя как логин и пароль.

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

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

Бибо Б., Кац И. “jQuery. Подробное руководство по продвинутому JavaScript”, Санкт-Петербург “Символ-Плюс”, 2009.

Гутманс Э., Баккен С., Ретанс Д. “PHP5. Профессиональное программирование”, Санкт-Петербург “Символ-Плюс”, 2006.

Коггзолл Д. “PHP5. Полное руководство”, Москва “Вильямс”, 2006.

Томсон Л., Веллинг Л. “Разработка Web-приложений на PHP и MySQL”, Москва “ДиаСофтЮП”, 2003.

Мальчук Е.В. “HTML и CSS. Самоучитель”, Москва “Вильямс”, 2008.

Размещено на Allbest.ru


Подобные документы

  • Подготовка прокси-сервера. Структура базы данных MySQL. Формат файла статистики "access.log". Контроль заблокированных пользователей. Построение web-интерфейса, структура. Авторизация в системе управления пользователями. Анализ полученных результатов.

    курсовая работа [815,4 K], добавлен 23.06.2011

  • Настройка списка контроля доступа для компьютерной сети, выходящей в интернет через прокси-сервер Squid. Использование и типы прокси-серверов, описание их архитектуры. Списки контроля доступа, идентификация, настройка конфигурации и запуск серверов.

    курсовая работа [1,3 M], добавлен 26.08.2010

  • Сетевые операционные системы, их характеристика и виды. Функции программного обеспечения локальной компьютерной сети. Структура и функции прокси-сервера и межсетевого экрана. Базы данных в локальных сетях, электронная почта, системы удаленного доступа.

    курсовая работа [43,9 K], добавлен 21.07.2012

  • Обзор технологической платформы для разработки клиентского веб-интерфейса. Выбор платформы базы данных, языка разработки, фреймворка на стороне сервера и клиента. Создание схемы данных MySQL. Работа пользователя и оператора с программным продуктом.

    курсовая работа [4,1 M], добавлен 17.07.2012

  • Разработка интерфейса и программного обеспечения виртуальной библиотеки. Проектирование структуры экранов и навигационной системы. Построение прототипа пользовательского интерфейса. Тестирование и модификация прототипа. Экспертная оценка разработки.

    курсовая работа [41,2 K], добавлен 19.12.2010

  • Организация корпоративного файлового сервера, выполняющего функции прокси-сервера на базе ОС Linux. Процесс его реализации. Выбор оптимальной аппаратно-программной платформы. Расчёт сметы затрат на выполнение объёма работ по созданию FTP-сервера.

    дипломная работа [2,0 M], добавлен 06.07.2012

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

    реферат [27,5 K], добавлен 10.01.2011

  • Задачи и особенности консоли управления Microsoft, ее преимущества и типы оснасток. Внешний вид пользовательского интерфейса консоли, порядок ее создания и установка опций. Настройка панели задач. Управление пользователями и группами в системе Windows XP.

    презентация [684,2 K], добавлен 20.12.2013

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

    дипломная работа [1,9 M], добавлен 12.03.2013

  • Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.

    курсовая работа [355,8 K], добавлен 26.09.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.