Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Операционные системы -> Linux -> DansGuardian - фильтрация web-запросов под Linux


DansGuardian - фильтрация web-запросов под Linux


Автор: Алексей Доля
Источник: www.fcenter.ru
Вы, наверное, уже не раз читали на нашем сайте статьи, посвященные так называемой контентной безопасности (content security). Речь шла и о фильтрации web-запросов, и об анализе содержимого web-страниц, и о фильтрации потоков e-mail. Однако почти всегда мы останавливались на продуктах и технологиях, реализованных в основном под Windows.

В данной статье мы решили обратиться к теме контентной безопасности, но уже под Linux. В качестве обсуждаемого продукта был выбран DansGuardian. Это очень известное решение с открытым исходным кодом и бесплатное для домашних пользователей, школ, библиотек, университетов и т.д. О DansGuardian нам расскажет его создатель - Дэниэль Бэррон (Daniel Barron).

Алексей Доля: Расскажите немного о себе, пожалуйста.

Дэниэль Бэррон: Мне 28 лет, я вырос в Кингстоне-на-Халле (Kingston Upon Hull), в Великобритании. Окончил университет в Манчестере. Увлекаюсь садоводством, электроникой, люблю готовить и пешие прогулки, обожаю японскую анимацию и, конечно, компьютеры. Я очень горжусь своим садом, который уже почти превратил в японский. Подумываю над тем, чтобы выучить японский язык.


Фотография, которую вы видите выше, была снята рядом с Хамберским Мостом (Humber Bridge). Этот мост и до наших дней остается самым длинным монолитным мостом в мире. За время, прошедшее с момента снятия фотографии, я отрастил длинные волосы и стал толще!
Сейчас я работаю техническим директором в SmoothWall Ltd. Программированием занимаюсь уже более 19 лет, в IT-отрасли работаю более 9 лет. После окончания университета я получил диплом по вычислительной химии (Computer Aided Chemistry) и пошел работать администратором Novell в многонациональную инженерную компанию. Там мне в основном пришлось обслуживать MoD-сервера. Через некоторое время я возглавил отдел, занимающийся сетями, исследованиями и разработкой. Фактически я прокладывал курс, по которому двигалась компания. Я могу смело утверждать, что в разработке каждого продукта и каждого решения, которые выпускала компания, я участвовал лично.
Используя свой компьютер на базе British RISC OS, я управлял разработкой нескольких проектов (включая всю мою работу в SmoothWall). Одним из самых заметных проектов является DansGuardian.


Алексей Доля: Что натолкнуло вас на идею создания такого продукта?

Дэниэль Бэррон: Когда я работал в Beebug Computers в Великобритании, меня попросили найти какой-нибудь web-фильтр, с открытым исходным кодом и бесплатный. На тот момент был единственный качественный коммерческий web-фильтр - IGear. Но он был просто сверхдорогим. Остальные фильтры типа squidGuard и NetNanny осуществляли только URL-фильтрацию, чего явно недостаточно. Мне удалось отыскать лишь одно приложение с открытым исходным кодом, которое вроде бы делало то, что мне надо. Это был Active Guardian. Довольно быстро выяснилось, что Active Guardian имеет очень много багов, работает очень медленно, а на современных браузерах отказывается работать вообще. Так что я решил научиться программировать под UNIX (в моем случае - Linux), а также выучить С++ и писать программы самому. В октябре 2000 года я начал читать книги по разработке Linux-приложений на С++, а к январю 2001 года почувствовал себя достаточно сильным, чтобы написать первую версию своей программы. С тех пор я внес очень много улучшений в свою программу, расширил её возможности и повысил эффективность.


Алексей Доля: Вы назвали продукт в свою честь? :)

Дэниэль Бэррон: Что-то типа того. В тот момент у меня был замечательный скрипт под названием DansLinux.sh - он превращал мой обычный Red Hat 5.2 в брандмауэр, proxy, почтовый сервер с кэшированием DNS и т.д. Это была моя версия Linux. Рабочее название для web-фильтра было просто шуткой - это была моя версия Active Guardian - DansGuardian. Но имя прижилось, остальное - история.


Алексей Доля: Расскажите подробнее о DansGuardian в плане его возможностей?

Дэниэль Бэррон: DansGuardian - это "движок" для фильтрации web-контента. Я написал и отладил его сам. Продукт используется во многих компаниях по всему миру и имеет довольно широкую базу пользователей. Его основная задача - фильтрация web-страниц на основании анализа их содержимого (картинок, URL, типов файлов и т.д.). Программа справляется со своей задачей очень хорошо, возможно, даже лучше всех.


Алексей Доля: Какие технологии и алгоритмы применяются в DansGuardian?

Дэниэль Бэррон: Обычные web-фильтры типа Cyber Patrol, squidGuard, Net Nanny и т.д. используют очень длинный список плохих web-сайтов. Если вы попытаетесь открыть один из этих сайтов, то фильтр его заблокирует. Таким образом, доступ к ресурсам сети фильтруется по web-адресам.
Интернет - очень быстро меняющаяся среда. Даже такие гиганты web-поиска как Google, Altavista или Yahoo часто не знают даже половины всех существующих ресурсов. Все это приводит к крайне низкой эффективности фильтрации по web-адресам: сайты часто меняют свое содержание или местоположение, да и новые страницы растут, как грибы после дождя. То есть, URL-фильтрация недостаточна. Необходимо проверять каждую запрашиваемую страницу на предмет наличия в ней опасного содержимого, например, богохульства, информации о неприкрытой агрессии, порнографии и т.д. Доступ к подобным ресурсам должен быть заблокирован. Это и называется контентной фильтрацией.
В то время как другие фильтры, использующие базу данных URL, быстро выходят из строя, DansGuardian применяет механизмы динамической фильтрации, быстро адаптируясь к новым web-страницам.
DansGuardian использует следующие алгоритмы: DFA (Детерминированный конечный автомат), бинарный поиск и быстрый поиск. Все они реализованы мною на С++, то есть я отказался от использования довольно медленных библиотек. В результате DansGuardian получился действительно очень быстрым. Как говорят его пользователи, DansGuardian в несколько раз быстрее IGear, а это, между прочим, один из ближайших конкурентов.



Доступ запрещен!

Алексей Доля: Вы не могли бы подробнее остановиться на алгоритмах? Хотелось бы понять, как именно продукт анализирует страницы.

Дэниэль Бэррон: Упс, я, кажется, упустил еще и быструю сортировку. Что касается алгоритмов, то подробнее о работе DansGuardian можно почитать здесь: http://dansguardian.org/?page=dgflow. Я же дам лишь краткую справку.
Quick Search (подробнее). Алгоритм представляет собой линейный проход по тексту и его постоянное сравнивание с конкретной заданной строкой. Алгоритм очень быстрый, он не возвращается каждый раз к точке предыдущего сравнения, а строит специальную таблицу сравнений.

Binary Search (подробнее). Для работы алгоритма необходим список отсортированных объектов. Алгоритм "заглядывает" в середину и проверяет, есть ли там что-нибудь похожее на то, что он ищет. Если да, то алгоритм проверяет одну из оставшихся половин таким же образом. Предположим, вы осуществляете поиск по телефонной книге. В самом худшем случае вам потребуется Ln(O)+1 итераций (O - число записей в телефонной книге). То есть, если в книге будет 1 млн. записей, то вам потребуется 15 итераций.

Quick Sort (подробнее). Это применение стратегии "разделяй и властвуй", как и в предыдущем случае. Только этот алгоритм намного более сложен для понимания, чем обычный бинарный поиск.

DFA (Детерминированный конечный автомат, подробнее). Алгоритм работает следующим образом: строится матрица всех интересующих фраз, а потом текст "пропускается" через эту матрицу. Вы можете осуществлять одновременный поиск более чем 1500 фраз одновременно. С помощью быстрого поиска (Quick Search) вам пришлось бы проверять фразы по одной.
Мне всегда казалось, что таблицу сравнений из алгоритма быстрого поиска (Quick Search) можно как-то применить к алгоритму DFA. Это сделало бы его еще более эффективным. Недавно кто-то сказал мне, что эта идея уже реализована.


Алексей Доля: Есть ли какой-нибудь способ протестировать эффективность и надежность вашего продукта?

Дэниэль Бэррон: Конечно - посмотрите на него в деле! Просто попробуйте получить доступ к каким-нибудь "плохим" ресурсам и убедитесь, что продукт их блокирует. Сравните мой продукт с URL-фильтрами, например, squidGuard или N2H2. Если вы хотите использовать коммерческую версию DansGuardian, то попробуйте Corporate Guardian. Еще один способ убедиться в том, что продукт действительно стоящий - это поговорить с его пользователями.


Алексей Доля: Кого бы назвали самым сильными конкурентом DansGuardian? Может быть Squid?

Дэниэль Бэррон: Squid - это proxy, который DansGuardian использует чаще всего. Это ни в коем случае не конкурент. Proxy необходим для того, чтобы DansGuardian мог работать.
Лучшими альтернативами DansGuardian являются SmoothGuardian или Corporate Guardian. Это полностью коммерческие версии, выпускаемые SmoothWall Ltd. и использующие тот же "движок", что и DansGuardian. Они имеют преимущества: компания-продавец гарантирует выход патчей, поддержку, интерфейс пользователя для работы через сеть, программы для просмотра журнала и создания отчетов, легкую инсталляцию и т.д. Все это написал тоже я :).
DansGuardian нужно инсталлировать и компилировать самому, точно также надо руками редактировать конфигурационные файлы. DansGuardian подойдет сетевым администраторам Unix, а версии, выпускаемые SmootWall - тем администраторам, у которых нет времени на конфигурирование решения и которые хотят получить продукт работающий сразу после того, как его вытащили из коробки. Именно поэтому скриншоты DansGuardian не могут похвастаться красивым и стильным GUI.



Конфигурационный файл DansGuardian

DansGuardian является своего рода базой и платформой для тестирования. В то время как Smooth/Corporate Guardian - это все же стабильные версии. Обе версии стоят друг друга. Примерно так же как и SmoothWall Express (свободный GPL-брандмауэр) и SmoothWall Corporate Server (коммерческий брандмауэр).
Единственный фильтр, который, на мой взгляд, подошел достаточно близко к Guardian, это IGear. Но он стоит очень много денег и работает значительно медленнее. Все остальные фильтры довольно бесполезны, они способны фильтровать лишь web-адреса страниц.


Алексей Доля: Над чем вы сейчас работаете? Какие новые возможности DansGuardian стоит ждать в будущих версиях?

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


Алексей Доля: DansGuardian можно бесплатно скачать с вашего сайта. Как вы тогда зарабатываете деньги?

Дэниэль Бэррон: Немного не так. Огромное количество людей ошибочно полагают, что GPL-программы являются бесплатными. Это не тот случай. Я позволяю каждому отдельному пользователю скачать продукт и попробовать его. Но коммерческие пользователи должны платить за продукт. Я также позволяю скачивать продукт организациям, не предназначенным для извлечения прибыли, то есть школам, библиотекам и т.д. Собственно и домашним пользователям тоже. Я также прошу пользователей о денежных пожертвованиях. В целом, я не зарабатываю больших денег от платы за использование DansGuardian и так ни разу и не получил пожертвование. Удивительно, как много людей просто переписывают чью-то работу и получают бесплатную поддержку, без какой бы то ни было отдачи. Тем не менее, тех денег, что я зарабатываю, хватает, чтобы не бросить эту работу!
Вы правы в том, что я не останавливаю никого и не мешаю скачивать DansGuardian, но я надеюсь на человеческую честность.
Так как каждый должен платить налоги со своих доходов, я и Джейд (Jade) учредили компанию "DrGuardian". Джейд занимается ей в свободное время. Единственная задача компании - просто существовать. Таким образом, мы платим налоги правительству и ведем абсолютно легальную деятельность. Я бы мог просто задекларировать дополнительный доход, но, имея компанию, я могу покупать аппаратное обеспечение и не платить подоходный налог. Что касается всего остального, то Джейд также получает зарплату в компании (так как тратит на нее времени больше, чем я). Это также позволяет сэкономить немного на налогах. Все абсолютно легально! :) Это хороший опыт для Джейд, которая хочет получить работу бухгалтера.
Зарабатываю на жизнь я работой в SmoothWall Ltd, которая выпускает все коммерческие версии DansGuardian. Я также являюсь директором компании. У меня остается достаточно свободного времени, чтобы бесплатно помогать пользователям и писать новое ПО. Мне нравится быть ближе к обществу.



Типовая картинка, запрещающая доступ к сайту


Алексей Доля: Я слышал, вы женитесь в этом году, не так ли? Удачи вам!

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


Алексей Доля: Спасибо за интервью! Успехов вашей семье и DansGuardian!
 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.