Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Серверные службы Linux

Управление доступом к интернет с помощью SafeSquid

Оригинал: Controlling Internet access with SafeSquid
Автор: Cory Buford
Дата: 5 сентября 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 1 октября 2008

Фильтрующие прокси призваны ограничивать доступ в интернет пользователям или группам по определенным критериям. Они должны уметь блокировать нежелательное содержимое сайтов по ключевым словам, URL-адресу, DNS-имени, MIME и изображениям. Они должны аутентифицировать пользователей, вести журнал их действий, подробно записывая все посещаемые URL-адреса, а также обеспечивать защиту от вирусов и злоумышленников с помощью надежного антивирусного сервера. Собрать все эти функции воедино довольно сложно, но разработчикам SafeSquid это удалось.

SafeSquid - это разработка компании Office Efficiencies India Private Limited (OEIPL). Изначально программа разрабатывалась в качестве фильтрующего плагина к популярному прокси-серверу Squid. Однако OEIPL решили разрабатывать собственный прокси-сервер с открытым кодом, который полностью воплощает все возможности Squid и имеет встроенную поддержку фильтрации нежелательного содержимого и защиты от злоумышленников и вирусов. Программа имеет функции проксирования HTTP и FTP, включая предупреждающую загрузку и обратное проксирование; локальную и PAM-аутентификацию через LDAP или Active Directory; фильтрацию содержимого (по ключевым словам, URL, порнографическим изображениям, MIME-типу, заголовкам или категориям веб-сайтов); защиту от нежелательного содержимого - с помощью антивирусных средств Clam AntiVirus, Sophos, Kaspersky или Internet Content Adaptation Protocol; избыточность на основе кластера; подробные отчеты.

Последняя свободная версия имеет номер 4.2.2RC8.9B, в то время как коммерческие редакции основаны на версии 4.1.1. Я несколько раз попытался скачать пробную версию коммерческой редакции, однако меня постоянно перекидывало на одну и ту же страницу, поэтому я просто решил скачать текущую версию. Как написано в комментариях к релизу, ее можно считать стабильной, кроме того в ней решены многие проблемы версии 4.1.1.

Свободная версия носит еще одно название - SafeSquid Free Composite 20, которое означает, что в каждый момент к прокси может быть подключено не более 20 уникальных пользователей. Редакция Standard разделяется на подредакции Plus, Server Message Block (SMB), Enterprise и Advanced. Все они поддерживают до 4000 пользователей одновременно и различаются лишь в функциональности и цене. Также разработчики SafeSquid предоставляют услугу cProfile, в которой веб-сайты классифицируются по их содержимому - новости, веб-почта, сайты для взрослых, нелегальные сайты, спортивные, хакерские и так далее. Цена зависит от количества пользователей и длительности подписки. Еще есть продвинутые коммерческие дополнения, такие как фильтр порнографических изображений.

Установка SafeSquid

Итак, пробуем. Скачайте tar-архив версии SafeSquid Free Composite 20 4.2.2RC8.9B. Для оптимальной работы нужен компьютер не ниже классе Pentium III с 512 Мб памяти. Для 100 пользователей желательно увеличить объем памяти до 1 Гб. И еще убедитесь, что ваша система удовлетворяет остальным системным требованиям SafeSquid.

Извлеките содержимое архива и следуйте инструкции по установке. Нужно будет ввести имя своего хоста (важно, чтобы оно разрешалось используемым вами DNS-сервером). Также необходимо ввести точный адрес для входа в административную консоль SafeSquid. К примеру, если у вашего сервера есть имя hostname, тогда нужно ввести http://hostname, а не IP-адрес, и входить в админку по этому адресу. Если имени хоста нет или оно не может быть разрешено, тогда введите IP-адрес и уже его используйте для входа в административную консоль. Если вы здесь ошибетесь, то потом не сможете войти в консоль и, к примеру, поменять IP-адрес или имя хоста на правильное значение. В этих и других вопросах вам помогут на форуме SafeSquid.

После завершения установки запускайте службу SafeSquid, с помощью команды /etc/init.d/safesquid start.

Сначала я испробовал SafeSquid в качестве прокси. Запустив службу и убедившись, что порт 8080 прослушивается (его, кстати, можно изменить в процессе установки), я установил параметры прокси в веб-браузере на 192.168.100.30:8080. Попробовал открыть страницу Google, но получил ошибку "Proxy Server Refused Connection". Проблема оказалась в файрволле на прокси-сервере. Когда я открыл порт 8080, другие рабочие станции смогли беспрепятственно ходить в интернет.

Ограничиваем доступ по содержимому

Настроив прокси на веб-браузере, отправляйтесь на http://safesquid.cfg/, чтобы войти в админку SafeSquid. В меню Config вы увидите выпадающий список групп настроек. Чтобы ограничить доступ в интернет пользователям, сначала выберите Access Restriction. По умолчанию стоит глобальная настройка Deny, т.е. никто не сможет ходить в интернет через этот прокси-сервер. Однако сейчас же включена политика по умолчанию Allow, дающая всем доступ в интернет, так что то глобальная настройка пока не срабатывает. Нужно будет удалить политику Allow и заменить ее правилами для конкретных пользователей, которым стоит давать доступ. Таким образом показывается, что полезно отвергать все запросы, которые не прошли все проверки на Allow.

Чтобы добавить пользователя в список разрешенных, нужно создать новую политику типа Allow. Укажите имя политики, ее описание, сетевой адрес (или диапазон адресов), к которому будет применяться политика. Также укажите имя пользователя, пароль и профиль. К примеру, у вас есть инженерное подразделение, которые должны иметь доступ к инженерным сайтам, тогда полезно создать профиль, в котором будут прописаны ограничения на сайты, отличные от инженерных, и добавлять эту строку для всех членов инженерного подразделения. Программа может создать свою собственную локальную базу данных, содержащую пользователей и группы, либо в процессе аутентификации полагаться на существующие сервера LDAP или Active Directory. В каждой политике указываются применяющиеся в ней фильтры (такие как упомянутый ранее фильтр порнографических картинок). Можно даже создать свой собственный фильтр, но это требует определенных навыков, времени и терпения. Эти фильтры можно также использовать для ограничения доступа к самой админке SafeSquid (т.е. по сути определения, кто из пользователей администратор).

Если в вашей организации мало пользователей, тогда создавать политику для каждого - дело нехлопотное, однако в больших корпорациях просто необходимо интегрировать SafeSquid в механизм аутентификации LDAP или Active Directory, для этого нужно включить PAM. Интеграция - процесс хитрый, и состоит в настройке конфигурационного файла SafeSquid, хранящегося в /etc/pam.d/safequid - подробности можно прочитать на форуме. Если у вас нет службы каталога, тогда добавление пользователя в группу профиля, особенно когда нужно применить фильтр содержимого сразу к нескольким пользователям - это следующая по эффективности альтернатива. Как видите, политика доступа в SafeSquid определяется почти так же, как и на файрволле.

Создав пользователей, можно переходить к содержимому. Лучший способ контролировать доступ к содержимому - это воспользоваться cProfile, службой, классифицирующей веб-сайты по категориям в зависимости от их содержимого. Это что-то вроде интернет базы-данных, к которой обращается SafeSquid и определяет, в какую категорию попадает данный веб-сайт. Так как сайты уже разделены по категориям, вы просто определяете, какие категории следует блокировать или, наоборот, к каким стоит давать доступ. Нет нужды создавать свои собственные профили для фильтрации веб-сайтов (только если у вас есть столько терпения и времени...). Но если не хотите брать подписку, можно фильтровать по ключевым словам, заголовку, типу MIME, URL-адресу и доменному имени.

В моем случае я скачал с сайта SafeSquid профиль фильтра по ключевым словам, относящимся к порнографии, и загрузил их в конфигурацию SafeSquid через пункт Load Settings верхнего меню. Мой фильтр заполнился рядом слов и фраз, по которым следует блокировать сайт. Если хотите блокировать сайт по ключевым словам или другому содержимому, которых нет в существующих фильтрах - тогда нужно создать свой профиль фильтра. Это особенно актуально, когда вы не подписаны на cProfile. Моей основной задачей было ограничение доступа к порнографическому содержимому, поэтому я оставил скачанный фильтр без изменений и не расширял список слов.

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

Также можно создавать профили, блокирующие рекламные баннеры, тогда надо указать изображение, Flash-файл или HTML-шаблон, который будет вставлен вместо удаленного баннера. Если вас устраивает отображение ошибки 404 в вырезанных баннерах, тогда можно не беспокоиться. Я попробовал скачать пробную версию фильтра порнографических изображений, там нужно было запросить его по электронной почте, что я и сделал, но ответа от разработчиков SafeSquid я не получил.

В админке SafeSquid можно настроить антивирусную проверку, черные списки DNS, фильтрацию по типам файлов, внешнюю аутентификацию и многое другое. Вам нужно или подписаться на услугу cProfile, или тщательно настраивать конфигурационные файлы и профили.

Отчетов SafeSquid вполне достаточно - показываются блокированные URL-адреса, количество открытых страниц, кэш DNS, статистика по пользователям и IP-адресам, количество использованного трафика и общее состояние системы (нагрузка процессора, объем использованной памяти и т.д.). Однако в SafeSquid можно интегрировать внешние средства создания отчетов, такие как Webalizer или консольный Calamaris. На страницах документации SafeSquid можно найти полное описание процесса конфигурирования и даже найти видеоуроки.

Заключение

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

Простота управления SafeSquid, его непрерывная разработка и доработка, отличная поддержка на форуме - все это делает SafeSquid прокси "номер один" в моем списке. Хотя он не бесплатен в версии для более 20 пользователей, однако он стоит тех денег, и с легкостью опережает конкурентов. Функции SafeSquid сравнимы с функциями машин Unified Threat Management (UTM), стоимость которых достигает нескольких тысяч долларов. Предлагаемый вариант требует лишь среднего компьютера (около $200 за машину Pentium 4 с 1 Гб памяти), покупку редакции SafeSquid (цена зависит от функций и количества поддерживаемых пользователей) и подписки - все равно это будет намного меньше стоимости UTM. И обратите внимание, для небольших компаний с менее чем 20 пользователями SafeSquid обойдется бесплатно.