Понедельник, 29.04.2024, 21:24

Компьютерная помощь

Записки системного администратора

Меню сайта
Категории раздела
Компьютер [36]
Общекомпьютерные темы
Windows server [18]
Статьи по версиям windows для серверов.
Windows [30]
Статьи по версиям windows для рабочих станций.
Unix [65]
Статьи на тему unix-подобных систем. Linux, FreeBSD и т.п.
Видеомонтаж [10]
Статьи по нелинейному видеомонтажу
Программирование [9]
Заметки по программированию
Databases [10]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Вход на сайт

Поиск

Главная » Статьи » Unix

Организация офисной сети на Unix-подобной платформе (часть2). Настройка прокси сервера Squid

URL-фильтрация по спискам в SQUID

Прежде всего создадим файл списка. Располагаться он может в любом месте, но будет логично разместить его в конфигурационной директории squid - /etc/squid (или /etc/squid3 если вы используете squid3)

touch /etc/squid/blacklist

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

vk\.com
odnoklassniki\.ru

Обратите внимание, точка в RegExp является служебным симоволом и поэтому должна быть экранирована символом \ (обратный слеш).

В конфигурационном файле squid (/etc/squid/squid.conf) создадим acl список, в который включим хосты или пользователей, для которых будет производиться фильтрация.

acl url_filtred src 10.0.0.100-10.0.0.199

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

Затем подключим наш список:

acl blacklist url_regex -i "/etc/squid/blacklist"

Ключ -i указывает на то, что список нечувствителен к регистру. 

Теперь перейдем в секцию правил и перед правилом 

http_access allow localnet

укажем:

http_access deny blacklist url_filtred

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

Сохраним изменения и перезапустим squid:

service squid restart

Попробуем посетить сайт из списка, если все сделано правильно, то вы увидите сообщение squid о запрете доступа к данному ресурсу.

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

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

acl url_no_filtred src 10.0.0.127 10.0.0.100

и изменим запрещающее правило следующим образом:

http_access deny blacklist !url_no_filtred

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

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

my\.mail\.ru

Заблокирует доступ к социальной сети Мой мир, но не будет препятствовать доступу к Майл.ру

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

mail

то это приведет к блокировке всех ресурсов, у которых данное сочетание входит в доменное имя, т.е. и mail.ru и hotmail.com. Поэтому к составлению списков, особенно содержащих короткие простые сочетания, нужно подходить осторожно. 

Рассмотрим простой, но показательный пример. Допустим нужно заблокировать известный сайт auto.ru и его поддомены. Если мы, не долго думая, напишем

auto\.ru

То вместе с требуемым порталом будут заблокированы все сайты имеющие данное сочетание в имени, например abc-auto.ru. Есть о чем задуматься. Если с поддоменами все просто, достаточно написать 

\.auto\.ru

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

http\:\/\/(www\.)?auto\.ru

Теперь будут заблокированы только адреса начинающиеся с http://auto.ru, конструкция (www\.)? обозначает, что префикс www c точкой могут быть, а могут не быть. Зато другие сайты, содержащие auto.ru будут нормально открываться.

Напоследок рассмотрим еще одну ситуацию, как сделать, чтобы на заблокированом сайте были доступны некоторые страницы. Например, страничка компании в Вконтакте или вы хотите обезопасить определенные адреса от случайного попадания под фильтр в будущем. Для этого следует добавить к системе "белый" список. Создадим файл списка:

touch /etc/squid/whitelist

внесем в него нужные адреса, для примера разблокируем страничку Вконтакте новостного портала Утро.ру:

vk\.com\/na_utro_ru

Подключим лист:

acl whitelist url_regex -i "/etc/squid/whitelist"

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

http_access allow whitelist
http_access deny blacklist url_filtred

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

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

http://interface31.ru/tech_it/2013/09/squid-nastraivaem-url-filtraciyu-po-spiskam.html

Категория: Unix | Добавил: admin (07.10.2014)
Просмотров: 1705 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: