На маршрутизаторе vyatta интегрирован прокси-сервер squid, к которому можно применить запрещающие списки (squidguard blacklist, бесплатно скачиваемые с squidguard.org), распределенные по категориям.
Настройка довольно проста. Если вы хотите просто прокси-сервер, без URL-фильтрации, то можно ничего не скачивать. Достаточно включить squid (по умолчанию включается в прозрачном режиме на порту 3128)
[edit]
edit service webproxy
[edit service webproxy]
set listen address {IP} [port {#PORT}] [disable-transparent]
[edit service webproxy]
commit
указав параметр “port” можно задать явно ТСР-порт из диапазона 1024-65535
Для непрозрачного прокси надо указать слово “disable-transparent”. В этом случае пользователи смогут подключаться к Интернету минуя прокси, по обычному 80 порту, если его не заблокировать правилами МСЭ. Если не указывать “disable-transparent”, то пользователи смогут выходить в Интернет только через настроенный порт (по умолчанию 3128).
Можно по желанию добавить URL-фильтрацию при помощи Squidguard blacklist (squidguard.org). Если vyatta видит Интернет, то достаточно сказать ей, что надо скачать базы (ссылка на скачивание по ftp уже есть в скрипте):
vyatta@vyatta:~$ update webproxy blacklists
Начальная загрузка и инициализация требует весьма существенных затрат времени и грузит железку. На тестовом маршрутизаторе vyatta (1266 Mhz, 256 MB оперативной памяти) этот процесс занял около 5 минут при загрузке процессора около 95%.
Далее можно включить сервис и настроить автообновление. Помните, что для корректной работы этого сервиса желательно задать ДНС-сервер самому маршрутизатору.
[edit]
edit service webproxy
[edit service webproxy]
set url-filtering squidguard
[edit service webproxy]
edit url-filtering squidguard
[edit service webproxy url-filtering squidguard]
set auto-update {daily|weekly|monthly}
[edit service webproxy url-filtering squidguard]
Указать списки всегда разрешенных (manual whitelist) и всегда запрещенных хостов (manual blacklist), которые можно настроить вручную (в качестве URL указывается шаблон текста):
[edit service webproxy url-filtering squidguard]
set local-block {URL}
[edit service webproxy url-filtering squidguard]
set local-ok {URL}
и список блокируемых категорий (эти категории задаются squidguard blacklist). Самих категорий много.
[edit service webproxy url-filtering squidguard]
set block-category {ads|adult|…|webmail}
[edit service webproxy url-filtering squidguard]
commit
Если происходит обращение на запрещенный сайт, то пользователя автоматически перенаправляют на «заглушку» (по умолчанию www.google.com). Страницу, конечно, можно поменять. Если надо логгировать совпадения с конкретным blacklist, то надо не просто включить блокировку, но и указать явно, что хочется логгировать эти совпадения.
Посмотреть лог самого webproxy можно командой (выдает много текста, но постранично)
:~$ show webproxy log
Ради интереса включил одну категорию ($porn) и пробежался по ссылкам, которые выдал гугл на запросы:
«Найти $(искомое)»
«Find $(искомое)»
Сайты с русским поиском были заблокированы процентов на 50-60 (из первых 40 ссылок), сайты с английским поиском были заблокированы с существенно эффективнее – 80-85% (из первых 40 ссылок). Наверняка, если включить больше категорий «взрослого» контента, результат был бы лучше.
Метки: proxy, squid, squidguard, vyatta
Опубликовано: Vyatta
Подскажите, пожалуйста, есть ли возможность аутентификации пользователей, так же как в обычном squid?
Насколько я знаю, туда легко прикручивается РАДИУС, ибо это и есть самый обычный СКВИД.
А планирует ли Vyatta реализацию нативной поодержки авторизации в LDAP/AD?
Не знаю.
Знаю, что лучше всего спросить Даниила Батурина (dbaturin в нашем блоге и форуме).
Он — разработчик. Если он не знает — никто не знает