47897 (588506), страница 8
Текст из файла (страница 8)
Сервер Squid развивается в течение уже многих лет. Обеспечивает совместимость с большинством важнейших протоколов Интернета, а также с операционными системами. [15]
в качестве СУБД для баз данных был выбран MySQL
MySQL – свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания MySQL AB разрабатывает функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.
MySQL является решением для малых и средних приложений. Входит в LAMP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
Использование такой аппаратно программной платформы наиболее эффективно, надёжно и безопасно. А также позволяет достичь необходимого быстродействия системы, которое позволит, реагировать на запросы пользователей без каких бы то ни было задержек, что в свою очередь увеличивает эффективность работы как сотрудников организации, так и как следствие эффективность работы самого предприятия.
2.3 Описание программных модулей
Основным программным модулем системы является кэширующий HTTP прокси-сервер Squid, предназначенный для организации безопасного доступа сотрудников в интернет.
Принцип работы модуля очень прост: после запуска он начинает прослушивать стандартный порт прокси-сервера 3128. Для того чтобы пользователь мог получить доступ в интернет, ему необходимо вписать адрес HTTP прокси-сервер в настройках браузера.
HTTP прокси-сервер – это сервер, который обрабатывает HTTP запросы клиентов. Если клиенты имеет общую организацию или домен, или они проявляют подобие в просмотре документов, прокси-сервер может эффективно кэшировать запрошенные документы. Кэширование, которое перемещает документы из сети ближе к пользователям, разгружает сетевой трафик, снижает нагрузку на популярных серверах Web и уменьшает время, в течение которого конечные пользователи ждут запрашиваемые документы.
Прокси-сервер принимает запросы от клиентов. Когда это возможно и желательно, он генерирует ответ, основанный на документах, сохранённых в локальном КЭШе. Иначе, он направляет запрос удалённому серверу, а полученный ответ направляет клиенту, и если ответ был удачен, кэширует его. На рисунке 1.2 схематически показана работа кэширующего прокси-сервера.
Рис. 12. Передача информации через кэширующий proxy-сервер
Таким образом, proxy-сервер действует, и как сервер и как клиент. Он выступает в качестве сервера при приёмке HTTP запросов от клиентов, и клиентом по отношению к удалённым серверам, с которыми он устанавливает связь, когда не способен ответить на запрос, воспользовавшись данными из локального КЭШа.
Рассмотрим работу прокси-сервер более подробно. Когда прокси-сервер начинает работать, он находится в состоянии ожидания запросов от клиентов на специальный порт (по умолчанию 3128). После получения, для каждого запроса создаётся новый поток для обработки. Поток обработки анализирует запрос.
Если запрос должен извлечь документ (обозначается методом запроса «GET»), тогда, если выполняются все ниже перечисленные условия, то документ берётся из КЭШа и направляется клиенту, при этом число удачного использования кэша увеличивается на единицу (cache hit):
Необходимый документ имеется в КЭШе;
в запросе не указано, что документ нельзя взять из КЭШа (pragma «no cache» не задана в запросе);
в запросе не определена временная область «if-modified-since»;
Сервер, с которого запрашивается документ, не входит в список серверов, доступ к которым осуществляется без прокси-сервера.
Во всех остальных случаях запрос будет послан удалённому серверу, с которого запрашивается документ, или другому прокси-серверу, если таковой был определён. При этом число неудачного использования КЭШа (cache misses), будет увеличено на единицу.
Ответ от удалённого сервера передаётся клиенту. В добавление к этому в случае удачного ответа на запрос (что обозначается кодом 200 ответа удалённого сервера) и при условии, что сервер не находиться в списке серверов, доступ к которым осуществляется без прокси-сервера, найденный документ будет сохранён в КЭШе на локальном диске. При этом необходимо отметить, что всякий раз, когда получена новая версия кэшируемого документа (например, при ответе на запрос, содержащий поле «if-modified-since»), она заменяет более старую версию в КЭШе.
Статистика, накопленная в течении транзакции с удалённым сервером (время соединения, ширина пропускной полосы) используется для модификации статистической базы данных сервера. [16]. Благодаря кэшированию документов в значительной степени снижается количество потребляемого организацией трафика, как следствие экономятся финансовые средства предприятия.
Squid может выполнять следующие функции:
– Запрет доступа к различным не желательным сайтам
– ведение журнала посещённых сайтов
– ограничение скорости доступа в интернет и т.д.
Как и большинство программ для Linux, Squid не имеет графического интерфейса настройки. Настройка параметров работы прокси-сервера производится из текстового конфигурационного файла, располагающегося \etc\squid\squid.conf.
Пример конфигурационного файла Squid.
redirect_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf
acl student src 192.168.10.0/255.255.255.0
acl teacher src 192.168.0.0/255.255.255.0
http_access allow student
http_access allow teacher
http_port 192.168.0.1:3128
http_port 192.168.10.1:3128
в конфигурационном файле записываются директивы для программы, вот что значат приведённые выше директивы:
redirect_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf – здесь указана программа редиректор в данном случае это rejik – предназначенная для блокирования нежелательных сайтов.
acl student src 192.168.10.0/255.255.255.0 – директива создающая запись в акцес листе Squid с именем student, также указано что к этой записи относятся всем компьютеры находящиеся в указанной подсети то есть в подсети 192.168.10.0/255.255.255.0
acl teacher src 192.168.0.0/255.255.255.0 – директива создающая запись в акцес листе Squid с именем teacher, также указано что к этой записи относятся всем компьютеры находящиеся в указанной подсети то есть в подсети 192.168.0.0/255.255.255.0.
http_access allow student – директива, означающая, что записи student из акцесс листа разрешён доступ в интернет
http_access allow teacher – директива, означающая, что записи teacher из акцесс листа разрешён доступ в интернет
http_port 192.168.0.1:3128 – директива, означающая, что на сетевом интерфейсе с IP адресом 192.168.0.1 Squid будет прослушивать порт 3128
http_port 192.168.10.1:3128-директива означающая, что на сетевом интерфейсе с IP адресом 192.168.10.1 Squid будет прослушивать порт 3128
Принцип работы редиректора заключается в следующем
Squid позволяет в своей конфигурации указать внешнюю программу редиректор. Эта программа выполняет функцию фильтрования запросов клиентов.
Каждый раз, когда кто-то загружает файл через прокси-сервер, на стандартный вход редиректора передаются данные о запросе. Редиректор эти данные анализирует, при выполнении некоторых условий изменяет и выдает ответ на стандартный выход.
Например, чей-то браузер посылает запрос:
http://www.mp3.ru/pesna.mp3 10.1.1.10/- – GET
а редиректор, по замыслу администратора, меняет его на:
http:// 10.1.1.1/antimp3.mp3 10.1.1.10/- – GET
Табл. 4. Структура HTTP запроса
Запрос состоит из: | |
«http://www.mp3.ru/pesna.mp3» | запрашиваемый URL |
«10.1.1.10/–» | ip адрес клиента/(имя хоста клиента или «–») |
«–» | Логин клиента или «–» |
«GET» | метод запроса URL |
В результате этого пользователь получает не понравившийся ему файл из интернета, а mp3 с локального веб сервера.
Также можно все запрещённые сайты заменить веб страницей с локального веб сервера гласящей, что посещение данного сайта запрещено.
Настройка редиректора производится также как и настройка Squida то есть путём редактирования текстового файла расположенного /usr/local/rejik3/redirector.conf
пример конфигурационного файла:
error_log /usr/local/rejik3/redirector.err
change_log /usr/local/rejik3/redirector.log
allow_ip 192.168.10.200
ban_dir /usr/local/rejik3/banlists/banners
url http:// 192.168.10.1/ban/1x1.gif
ban_dir /usr/local/rejik3/banlists/mp3
url http://ya.ru/
ban_dir /usr/local/rejik3/banlists/js
url http:// 192.168.10.1/ban/js.js
описание директив:
error_log /usr/local/rejik3/redirector.err – путь к файлу, куда записываться ошибки работы редиректора
change_log /usr/local/rejik3/redirector.log-путь к файлу, куда записываться результаты работы редиректора
allow_ip 192.168.10.200 – данная директива означает что к компьютеру с указанным IP адресом не будут применятся ограничения.
ban_dir /usr/local/rejik3/banlists/banners – указание пути к базе с баннерами
url http:// 91.190.67.218/ban/1x1.gif – указание адреса перенаправления запроса в данном случае это страничка, находящаяся на внутрисетевом веб сервере
ban_dir /usr/local/rejik3/banlists/mp3 – указание пути к базе сайтов с музыкой
url http://ya.ru/ – указание адреса перенаправления запроса в данном случае это начальная страница поисковика Яндекс.
Кроме необходимости блокирования доступа к нежелательным сайтам также важен учёт потребляемого организацией трафика. Существует большой спектр программ, которые позволяют это сделать примерами могут служить SARG, Squid guard, Sams и lightsquid. На основании результатов полученных опытным путём решено было использовать lightsquid.
LighSquid – маленький и быстрый анализатор лога для прокси-сервера Squid, написан на Perl по мотивам SARG. Быстро устанавливается, не требует дополнительных модулей. В сравнении с SARG на диске занимает гораздо меньше места. Имеется web-интерфейс для просмотра статистики. Данные хранятся в файловой системе, не требует внешней БД. Статистика – общая с трафиком для каждого пользователя по дням и детальная, на какие сайты в какое время за день ходил пользователь.
Принцип работы анализатора логов Squid достаточно прост, программа проводит анализ файла журнала работы прокси-сервера Squid, а результат анализа представляется в виде таблиц и графиков, понятных человеку.
Пример журнала работы прокси-сервера Squid:
1255333973.625 242 192.168.0.5 TCP_CLIENT_REFRESH_MISS/200 3643 GEThttp:// 93.184.71.27/eset_upd/update.ver – DIRECT/93.184.71.27 application/oc$
1255333975.034 201 192.168.0.5 TCP_MISS/401 745 GET http:// 93.184.71.27/download/engine3/em002_32_n6.nup-DIRECT/93.184.71.27 text/html1255333975.316 277 192.168.0.5 TCP_MISS/200 21055 GEThttp:// 93.184.71.27/download/engine3/em002_32_n6.nup – DIRECT/93.18.71.27 application/oct$1255333984.551 214 192.168.0.5 TCP_MISS/200 426 POST http://ts08.eset.com/query/chsquery.php-DIRECT/89.202.157.208 text/html1255333984.702 150 192.168.0.5 TCP_MISS/200 426 POST http://ts08.eset.com/query/chsquery.php-DIRECT/89.202.157.208 text/html1255334019.418 51 192.168.0.5 TCP_MISS/200 57 CONNECT mrim.mail.ru:443 – DIRECT/94.100.178.25 1255334019.494 14 192.168.0.5 TCP_MISS/404 0 CONNECT obraz.foto.mail.ru:443 – IRECT/ – 1255334019.496 0 192.168.0.5 TCP_MISS/404 0 CONNECT obraz.foto.mail.ru:2041 – DIRECT/ – -1255334019.500 0 192.168.0.5 TCP_MISS/404 0 CONNECT obraz.foto.mail.ru:80 – DIRECT/ – -1255334020.027 46 192.168.0.5 TCP_MISS/200 263 CONNECT r.mail.ru:443 – DIRECT/94.100.179.186;
Как видно разобраться достаточно сложно, кто, что когда, во сколько скачивал и какие сайты посещал, после проведения lightsquidом анализа файла, данные представлены в удобном виде.