Оригинал этого документа расположен на сайте http://squid.opennet.ru
Наиболее часто задаваемые вопросы в форуме на squid.opennet.ru
Обновлено: 13.12.2005
1. Установка. Запуск. Основные настройки
1.1. При запуске squid -z получаю "Permission Denied". Почему ?
См. п.2.1.
1.2. У меня проблема - Squid не хочет запускаться при отсутствии связи с Интернет :( В лог пишет "DNS lookup faled". Как бороться ?
Запускать с ключом -D. Squid тестирует ДНС при запуске, если в данный момент связи с Интернет нет, то Squid завершает свою работу с указанным выше сообщением о ошибке. Ключ -D указывает прокси не производить тест DNS при запуске.
1.3. Как мне заставить мой прокси работать только через прокси провайдера ?
В squid.conf укажите:
-------------- файл squid.conf --------------
cache_peer адрес_прокси parent 3128 3130 no-query default
never_direct allow all
|
В этом случаю сквид будет работать только через указанный прокси, а не ходить напрямую.
1.4. Как сделать так, чтобы мой сквид сам ходил за объектом в инет, если его нет на прокси провайдера ?
В squid.conf укажите:
-------------- файл squid.conf --------------
cache_peer адрес_прокси_провайдера sibling 3128 3130
|
1.5. За что отвечает директива prefer_direct ?
Значение "on" указывает на приоритетность передачи запроса сквидом напрямую перед опросом родительского кеша.
2. Логи
2.1. Squid не создает (не пишет в) файлы access.log, cache.log. Почему ?
Чтобы Squid создавал эти файлы при первом запуске и мог в них писать, директория logs и сами файлы должны принадлежать пользователю/группе от которых стартует прокси. За это отвечают директивы
-------------- файл squid.conf --------------
cache_effective_user
cache_effective_group
|
в конфигурационном файле. По-умолчанию это nobody и nogroup. В общем случае необходимо сделать:
# chown -R nobody:nogroup /usr/local/squid
|
перед первым запуском. Это же касается и директории, где размещается ваш кеш.
2.2. Как перевести время в access.log в "нормальный" формат ?
Указать в squid.conf emulate_httpd_log on или использовать такой скрипт при разборе лога:
#!/usr/sbin/perl -p
s/^d+.d+/localtime $&/e;
|
2.3. Как мне убрать/показать в логе access.log клиентские IP ?
Настроить должным образом директиву client_mask:
-------------- файл squid.conf --------------
client_mask 255.255.255.0 #в логе только номер сети типа 192.168.0.0
client_mask 255.255.255.255 #в логе клиентский IP: 192.168.0.2, 192.168.0.3 etc
|
2.4. Как мне отключить store.log ?
За запись данных в store.log отвечает директива cache_store_log в squid.conf. Чтобы отключить store.log, укажите :
-------------- файл squid.conf --------------
cache_store_log none
|
3. Контроль доступа
3.1. Не могу разобраться с правилами построения ACL. Где можно посмотреть как это делать верно ?
Советую почитать отличную статью по этому поводу:
http://linuxnews.ru/docs/showdoc.php?id=4668&thread=4668
3.2. А у меня ACL не работает !!! Вот он: acl mmm src 192.168.0.10/255.255.255.0
Неверно указана маска. В данном случае верное значение - 255.255.255.255
3.3. Вроде верно указаны ACL и http_access, но результате я получаю Access Deny, почему ?
Внимательно посмотрите на ваши правила:
-------------- файл squid.conf --------------
acl all src 0.0.0.0/0.0.0.0
acl localnet 192.168.0.1-192.168.0.15/255.255.255.0.0
http_accsess deny all
http_access allow localnet
|
Порядок объявления http_access имеет большое значение, правила проверяются сверху вниз до первого совпадения, дальнейшая проверка правил расположенных ниже НЕ ПРОИЗВОДИТСЯ. В данном случае необходимо указать:
-------------- файл squid.conf --------------
http_access allow localnet
http_access deny all
|
3.4. Как мне заставить Squid обращаться к моим локальным сайтам напрямую ?
Все просто:
-------------- файл squid.conf --------------
acl local dstdomain .domain.com
always_direct allow local
|
3.5. Как ограничить количество одновременных http-сессий для клиента ?
К примеру, так:
-------------- файл squid.conf --------------
acl client src 10.10.10.2/255.255.255.255
acl limit maxconn кол-во сессий
http_access allow client !limit
|
3.6. Как запретить пользователям использовать ftp ?
-------------- файл squid.conf --------------
acl noftp proto FTP
http_access deny noftp
|
3.7. Как запретить конкретному IP-адресу ходит по определенному URL?
-------------- файл squid.conf --------------
acl special_client src 10.1.2.3
acl special_url url_regex ^http://www.squid-cache.org/Doc/FAQ/$
http_access deny special_client special_url
|
3.8. Как запрещать/разрешать доступ к прокси используя MAC-адреса ?
Контроль доступа по MAC-адресам работает в Linux и Solaris(вроде бы, но Солярки у меня нет, поэтому проверить не могу. Подскажите, кто пробовал). Для *BSD это работать не будет. Чтобы возпользоваться данной возможностью, ваш Squid должен быть собран с ключем --enable-arp-acl. Замечу сразу, что если у вас установлен готовый пакет (rmp/tgz etc), то скорее всего такой ключ при его сборке не использовался. Пересобираете Squid:
%./configure --enable-arp-acl [другие опции]
%make clean
%make;make install
|
в конфиг добавляете строки типа:
-------------- файл squid.conf --------------
acl ip1 src 192.168.0.1/255.255.255.255
acl mac1 arp 00:0F:01:00:03:FF
http_access allow mac1 ip1
http_access deny all
|
В результате доступ будет разрешен для MAC 00:0F:01:00:03:FF, если его IP - 192.168.0.1.
Но привязку IP-MAC правильнее делать с помощью arp:
----------- файл /etc/ether ---------
192.168.0.1 00:0F:01:00:03:FF
.............. и т.д. ..............
#arp -f /etc/ether
|
См. также http://squid.opennet.ru/FAQ/my/FAQrus-10.html#ss10.20
3.9. Как мне запретить использовать кому-либо мой прокси как parent ?
Используйте директиву miss_access:
-------------- файл squid.conf --------------
miss_access deny all
|
В таком случае пользователи смогут забирать только то, что уже есть у вас в кеше, т.е. прокси, использующий
ваш сквид как родительский, вынужден будет сам обращаться в инет за объектом.
4. Аутентификация пользователей
4.1. Где можно почитать по-русски про настройку аутентификации пользователей в Squid?
Загляните в FAQ:
http://squid.opennet.ru/FAQ/my/FAQ-23.html
http://squid.org.ua/FAQ/my/FAQ-19.html#ss19.6
http://squid.org.ua/FAQ/my/FAQ-19.html#ss19.7
4.2. Прошу прощения за дурацкий вопрос, но где взять ncsa_auth?
В исходных текстах вашего Squid сделать
% cd auth_modules/NCSA
% make
% make install
|
Модуль аутентификации будет установлен в ту же директорию что и бинарник самого Squid.
4.3. Как настроить аутентификацию пользователей по одному порту (3128) и разрешить прохождение пользователей без аутентификации по другому порту (8080) ?
Поднять два Squid-а. Иначе - никак.
4.4. Как сделать так, чтобы Squid разрешал запросы тольк от тех, кто заглогинился на PDC (Samba) ?
Воспользуйтесь модулем аунтентификации SMB. Подробный инструкции по его настройке см. здесь.
4.5. Возможно ли настроить аутентификацию пользователей, если мой Squid работает в режиме прозрачного прокси?
Нет, это работать не будет. Либо аутентификация, либо прозрачный прокси.
4.6. Если я настроил аутентификацию, то я смогу видеть имя пользователя в access.log?
Да. Имя пользователя заносится в access.log для каждого запроса.
5. Прозрачное проксирование
5.1. Как мне настроить прозрачный прокси на Linux ?
По-английски:
http://www.squid-cache.org/FAQ/FAQ-17.html#ss17.3
По-русски:
http://www.bog.pp.ru/work/squid.html#transparent
5.2. Поддерживает ли Squid wccp v.2 ?
Нет. Только v.1.
5.3. А можно прозрачно пропускать ftp-трафик через Squid ?
Нет. Squid прозрачно проксирует только http.
5.4. Я могу настроить прозрачный прокси на Windows ?
Нет. Также не работает поддержка WCCP, Async I/O и внешних вспомогательных программ/редиректоров.
6. Delay Pools
6.1. Где-нибудь есть русское описание настроек delay pools ?
Советую почитать отличную статью по этому поводу:
http://linuxnews.ru/docs/showdoc.php?id=4668&thread=4668
6.2. Использую delay pools. При рестарте прокси резко возрастает нагрузка в канале. Почему?
Все верно. При рестарте в пулы попадут только НОВЫЕ запросы. Все прежние запросы под органичение не попадают, отсюда и нагрузка.
7. Мониторинг и анализ журналов
7.1. Хочется прикрутить MRTG к Squid. Кто-нить это делал ?
Ответ см. на http://squid.opennet.ru/mrtg/.
8. Реклама. Редиректоры
8.1. Подскажите есть ли где-нибудь готовые URL "плохих" сайтов и банерных систем ?
Обратите внимание на редиректор SquidGuard. С ним вместе идет громадная база порнушных сайтов и прочей мишуры. Список российских банеродержателей можно найти на http://pail.pu.ru.
8.2. Мой редиректор иногда отказывается обрабатывать запросы! Почему ?
Гляньте в cache.log, скорее всего в данный момент все ваши дочерние процессы редиректора заняты. В этом случае просто увеличьте их кол-во в директиве redirect_children файла squid.conf.
8.3. Где можно посмотреть пример конфига для SquidGuard ?
См. здесь: http://www.squidguard.org/config/.
9. Как мне заставить работать через Squid мой любимый ...
9.1. ICQ-клиент (Windows)?
Пример: http://squid.opennet.ru/examples/icq.shtml.
9.2. Licq (*nux)?
Пример: http://squid.opennet.ru/exampl/licq.shtml.
9.3. Trillian ?
См. пример настройки на странице http://squid.opennet.ru/examples/trillian.shtml.
9.4. Total(Windows) Commander ?
См. пример настройки на странице http://squid.opennet.ru/examples/wc.shtml.
9.5. Хочется пользоваться системой портов во FreeBSD, а доступ только через прокси, как быть ?
Чтобы вы могли скачивать исходные тексты при установке порта, укажите в файле /etc/make.conf следующие переменные:
FETCH_ENV= FTP_PROXY=ftp://IP_адрес_прокси:порт_прокси
FETCH_ENV= HTTP_PROXY=http://IP_адрес_прокси:порт_прокси
|
10. Разное
10.1. А могу ли я забирать почту по POP3 с super-freemail.com через Squid ?
Нет. Squid не проксирует POP-сессии.
10.2. Как мне посмотреть с какими ключами configure собран мой Squid ?
Посмотрите в файл config.status, если остались исходники, из которых собирался Squid. Начиная с версии 2.5, опции можно посмотреть, использовав ключ -v :
% squid -v
Squid Cache: Version 2.5.STABLE3
configure options: --prefix=/var/squid/2.5 --enable-snmp
|
Вадим Веремеенко Copyright © 2002-2005