Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

10.20 Могу ли я устанавливать acl-лы, основанные на mac-адресах, а не на ip?

Да, для некоторых операционных систем. В Squid это называется ``ARP ACLs'' и поддерживается на Linux, Solaris и возможно для BSD вариантов.

ЗАМЕЧАНИЕ: Squid может определить MAC-адрес клиента только для своей подсети. Если клиент находится в другой подсети, Squid не сможет найти его MAC-адрес.

Чтобы использовать контроль доступа по ARP (MAC), вам прежде всего необходимо скомпилировать Squid c поддержкой этой возможности. Это делается при помощи конфигурационной опции --enable-arp-acl:

% ./configure --enable-arp-acl ...

% make clean

% make

Если src/acl.c не компилируется, значит возможно ARP ACL не поддерживается вашей системой .

Если все откомпилировалось, вы можете добавить несколько строк ARP ACL в ваш squid.conf:

acl M1 arp 01:02:03:04:05:06

acl M2 arp 11:12:13:14:15:16

http_access allow M1

http_access allow M2

http_access deny all

10.21 Отладка acl

См. 10.9 Я установил собственные контроли доступа, но они не работают! Почему? и 11.20 Отладка Squid.

10.22 Могу ли я ограничить количество соединений для клиента?

Да, используйте ACL типа maxconn совместно с http_access deny. К примеру:

acl losers src 1.2.3.0/24

acl 5CONN maxconn 5

http_access deny 5CONN losers

Учитивая вышеописанную конфигурацию, когда клиент, чей IP-адрес находится в сети 1.2.3.0/24, попытается установить 6 или более соединений за одни раз, Squid вернет сообщение о ошибке. Пока вы не используете возможности deny_info, сообщение о ошибке будет звучать как ``access denied.''

ACL типа maxconn требует использования client_db . Если вы отключили client_db (к примеру, использовав client_db off) то ACL maxconn не будет работать.

Заметьте, что ACL типа maxconn достаточно специфичен из-за использования сравнения "меньше чем". ACL считается совпавшим, когда количество установленных соединений большевеличины, которую вы указали. Исходя из этого вы вряд ли захотите использовать ACL типа maxconn в http_access allow.

Заметьте также, что вы вы должны объявлять maxconn совместно с типом пользователя (ident, proxy_auth) раньше, чем объявляется тип по IP-адресу.

10.23 Я пытаюсь запретить доступ к foo.Com, но это не срабатывает.

В Squid-2.3 мы изменили схему, по которой Squid определяет совпадение поддоменов. Есть разница между .foo.com и foo.com. В первом случае описано соответствие любого домена в foo.com, во втором - это только точное соответствие ``foo.com'' . Т.е., если вы хотите запретить bar.foo.com, вы должны указать

acl yuck dstdomain .foo.com

http_access deny yuck

10.24 Я хочу изменить или создать собственное сообщение о ошибке.

Вы можете изменять существующие сообщения об ошибках как описано в Пользовательские сообщения об ошибках. Вы также можете создавать новые сообщения о ошибках и использовать их совместно с опцией deny_info.

К примеру, предположим, что вы хотите, чтобы ваши пользователи видели специальное сообщение, когда их запрос совпадает с вашим списком порно. Прежде всего создайте файл с именем ERR_NO_PORNO в директории /usr/local/squid/etc/errors. Этот файл должен содержать нечто подобное:

<p>

Our company policy is to deny requests to known porno sites. If you

feel you've received this message in error, please contact

the support staff (support@this.company.com, 555-1234).

Далее, установите следующий контроль доступа:

acl porn url_regex "/usr/local/squid/etc/porno.txt"

deny_info ERR_NO_PORNO porn

http_access deny porn

(остальные опции http_access ...)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]