Репозиторий не мой. Просто его так назвали. Я так думаю, ответа Вы не получите, ибо squid тут наверное вообще никто не использует.
Резюме - смотрите как собирается пакет и читайте его исходники.
Вот еще встретил проблемму -
читал тут - http://www.bog.pp.ru/work/squid.html#delaypool
Прижать любителей MP3:
acl multimedia urlpath_regex -i \.mp3$ \.mpeg$ \.avi$ \.mov$
delay_pools 1
delay_class 1 1
delay_access 1 allow multimedia
delay_access 1 deny all
delay_parameters 1 16000/64000
и не работает, пишет что ошибка в строках, начиная с delay....
итого выдает при запуске сквида 5 строк с ошибками.
Я так полагаю, что наш сквид собран без поддержки резания канала?
что делать?
Устанавливал из репозитария Олега.
Если он действительно не поддерживает урезание скорости, то может, кто-нить соберет в новый репозитарий версию с этой резалкой?
Репозиторий не мой. Просто его так назвали. Я так думаю, ответа Вы не получите, ибо squid тут наверное вообще никто не использует.
Резюме - смотрите как собирается пакет и читайте его исходники.
К oleo нужно обращаться. чтобы скомпилировал с поддержкой delay_pools. "Просто" squid ведь как-то компилирует.
Я попробовал в лоб нативно - не получилось. А времени разбираться нет.
Долго шарил по форуму и обнаружил, что все ссылки по squid, что мне попадались, содержат два утверждения:
1. "нафига здесь такая штука, это же не сервак"
2. "ну ты поищи ... (подставить ссылку по вкусу), там точно все есть"
Я ярый фанат squid. Я не использую его, как кэширующий прокси (для этого у меня стоит BFilter), а чаще всего я использую его для получения дополнительного IP для скачивания пор..., нужных статей
Имея большой опыт подъема свида под FreeBSD я решил забацать его и тут, благо в списке пакетов он есть.
Итак, первое:
ставим сам squidPHP Code:
ipkg install squid
Далее, заходим в /opt/etc/squid
и находим там squid.conf
Привожу здесь минимально необходимый рабочий конфиг
и к нему небольшие коментарии:PHP Code:
auth_param basic program /opt/libexec/ncsa_auth /opt/share/passwords/users
auth_param basic children 1
auth_param basic realm Authorized users only. Squid PROXY
auth_param basic credentialsttl 2 hours
acl MY proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow MY
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_port 3128
hierarchy_stoplist cgi-bin ?
cache_dir ufs /opt/var/squid/cache 20 16 256
cache_swap_low 97
cache_swap_high 100
access_log /opt/var/squid/logs/access.log squid
pid_filename /opt/var/squid/logs/squid.pid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
header_access From deny all
header_access Referer deny all
header_access User-Agent deny all
header_access Cache-Control deny all
header_access Via deny all
header_access X-Forwarded-For deny all
cache_effective_user nobody
cache_effective_group nobody
visible_hostname home.elist.ws
icon_directory /opt/share/squid/icons
error_directory /opt/share/squid/errors/Russian-1251
cachemgr_passwd 456789 all
coredump_dir /opt/var/squid/cache
auth_param basic program /opt/libexec/ncsa_auth /opt/share/passwords/users - как Вы понимаете, второй путь может быть любым, но там должен лежать файлик (users) с паролями в формате htaccess. Права на него нужно ставить так, чтобы непревелигированный пользователь (nobody) смог его прочитать.
auth_param basic realm Authorized users only. Squid PROXY - текст, который выводится в шапке запрос пароля. Может быть любым на Ваше усмотрение.
cache_dir ufs /opt/var/squid/cache 20 16 256 - очень важная строка, разберем поподробнее:
/opt/var/squid/cache - путь к кэшу. Может вести куда угодно, НО не на fat или ntfs партиции.
20 - размер кэша в Мб. Выбирается на Ваш вкус и возможности.
access_log /opt/var/squid/logs/access.log squid - место, куда пишется лог-файл доступа к ресурсам. Собственно его можно анализировать - кто и куда лазил за пор... статьями. ВНИМАНИЕ! Не забывайте его ротировать, дабы размер его не принял катастрофические величины.
visible_hostname home.elist.ws - поменяйте на свой хост или IP.
cachemgr_passwd 123 all - пароль на доступ кэшменеджера к управлению кэшем и свидом. Поствьте свой, но я вообще не рекомендую пользоваться кэшменеджером - глючный и небезопасный.
Первый запуск производить squid -z для формирования дерева директорий в кэше.
Для автоматического запуска squid при старте не забудте добавить в post-mount строчку
а для того, чтобы squid принимал запросы извне не забудьте добавить в post-firewall строчкиPHP Code:
/opt/etc/init.d/S80squid start
В итоге все сводится к классическому Linuxовому правилу "Конфиг всему голова"PHP Code:
iptables -A INPUT -p 'tcp' --dport 3128 -j ACCEPT
iptables -t nat -A PREROUTING -i vlan1 -p 'tcp' --dport 3128 -j DNAT --to-destination $4:3128
З.Ы. Для настройки squid в качестве кэширующего прокси для локальной сети следует разобраться в комбинации
192.168.0.0/255.255.0.0 - диапазон Вашей "внутренней" сети.PHP Code:
acl home src 192.168.0.0/255.255.0.0
http_access allow home
Т.е. первое правило определяет сеть для безаппеляционного доступа, а второе этот доступ разрешает. Таким образом пользователям "внутренней" сети не придется вводить пароль для доступа к кэшу/
Не оъясняю маленькую засаду с порядком правил - хочу посмотеть, воспользовался ли кто моей инструкцией
Last edited by Сhemist; 19-02-2008 at 19:33.
о тогда вопрос к ярому сквидоводу, давно завязал со сквидом поэтому не могу вспомнить чего не хватает, у меня над сквидом еще пара проксей но CONNECT для HTTPS не запрещен, а засада вот такая если svn ломится через моего сквидато получает облом (код ошибки напишу позже, лог на работе) если говорю svn-у использовать вышестоящую проксю то все ок. Т.е., что то накосячил с HTTPS, HTTP работает без проблем.
Ну и естественнно без опции never_direct оно вообще не работает ибо сверху прокси.
Вопрос: чего еще поковырять? чтобы https заработал нормально?
точно помну в прошлый раз я это дело победил, но тогда было шибко нужно, а сейчас вроде как не очень, но заранее благодарен за совет.
vim имеет два режима - бибикать и все портить (с) не мое
Возможно вся проблема в том, что по умолчанию в конфиге squid стоят такие строчки
Т.е. коннект по этому порту закрыт дважды (!). Я не проверял это, но как вариант - попробуй.PHP Code:
acl SSL_ports port 443
acl Safe_ports port 443 # https
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
Спасибо автору! Сделал как написано, всё вроде работает. В "засаду" пока не попал или может не понял что попал
Кстати, а что это за кэшманагер? Для чего он нужен и как его вырубить, раз уж он глючный?
Сhemist, хорошая статья, побольше бы таких.
Если бы еще к ней добавить примеры вариантов ограничения доступа к прокси, авторизации и шейпинга - было бы вообще замечательно.
Last edited by Reyter; 14-03-2008 at 06:57.
В данном случае описан вариант ограничения доступа и авторизации (согласитесь, в данном случае это одно и тоже) для "домашнего" использования. Зачем забивать головы настройкой автоматической авторизации пользователей из корпоративной сети по записям в локальном домене, если для этого существуют другие сайты и другие статьи. Поиск по слову squid рулит!
vaspupkin, извини конечно, но я не могу ответить на твой вопрос А послать почитать ФАК по Unix-системам как-то рука не поднимается.
Как раз религия говорит - помоги ближнему своему, направь его к свету, но дай пару раз стукнуться лбом, чтобы знал элементарные вещи и учился пользоваться поиском.
Читать тут. Ключевые слова: htaccess и установка прав доступа.
Сдаюсь...
А всего-то хотел перенаправить лог на USB HDD в /tmp/harddisk/squid/logs
Файл /opt/share/passwords/user
Права на файлCode:nobody:x:99:99:nobody:/:/tmp/harddisk/var/squid/nologin
Настройка /opt/etc/squid/squid.confCode:[admin@WL500GP root]$ ls -la /opt/share/passwords/users -rw-r--r-- 1 admin root 56 Mar 19 11:58 /opt/share/passwords/users
Права на /tmp/harddisk/var/squidCode:auth_param basic program /opt/libexec/ncsa_auth /opt/share/passwords/users
Сквид сбрасывается после старта. Лог пишется не на диск, а в /opt/var/squid/logs с ошибкойCode:[admin@WL500GP root]$ ls -la /tmp/harddisk/var/squid drwxr-xr-x 4 admin root 4096 Mar 19 10:11 . drwxr-xr-x 3 admin root 4096 Mar 19 09:36 .. drwxr-xr-x 2 admin root 4096 Mar 19 10:11 cache drwxr-xr-x 2 admin root 4096 Mar 19 09:36 logs
Что не так делаю?Code:FATAL: Cannot open '/tmp/harddisk/var/squid/logs/access.log' for writing. The parent directory must be writeable by the user 'nobody', which is the cache_effective_user set in squid.conf.