Доброго времени суток!
Попытался поставить sams-1.0.4 на fedora 12
Все вроде делал штатно, как уже делал не один десяток раз.
Запускаем мозиллу идем на http://localhost/sams вводим дефолтный пароль админа.
Далее пытаемся в дереве слева выбрать "WEB interface settings" получаем не измененый фрейм справа. Такое же поведение, когда выбираем "SAMS administration" - справа ничего не отображается.
В логах апача появляются след. ошибки:
[Fri Dec 04 23:29:12 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: domainuser in /usr/local/share/sams/lframe.php on line 61, referer: http://localhost/sams/
[Fri Dec 04 23:29:12 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: gauditor in /usr/local/share/sams/lframe.php on line 62, referer: http://localhost/sams/
[Fri Dec 04 23:29:12 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: domainuser in /usr/local/share/sams/main.php on line 339, referer: http://localhost/sams/
[Fri Dec 04 23:29:12 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: gauditor in /usr/local/share/sams/main.php on line 340, referer: http://localhost/sams/
[Fri Dec 04 23:29:12 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: domainuser in /usr/local/share/sams/tray.php on line 140, referer: http://localhost/sams/
[Fri Dec 04 23:29:12 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: gauditor in /usr/local/share/sams/tray.php on line 141, referer: http://localhost/sams/
[Fri Dec 04 23:29:25 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: domainuser in /usr/local/share/sams/tray.php on line 140, referer: http://localhost/sams/lframe.php
[Fri Dec 04 23:29:25 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: gauditor in /usr/local/share/sams/tray.php on line 141, referer: http://localhost/sams/lframe.php
[Fri Dec 04 23:29:25 2009] [error] [client 127.0.0.1] PHP Fatal error: Cannot redeclare GetHostName() in /usr/local/share/sams/src/webconfigtray.php on line 25, referer: http://localhost/sams/lframe.php
[Fri Dec 04 23:31:26 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: domainuser in /usr/local/share/sams/tray.php on line 140, referer: http://localhost/sams/lframe.php
[Fri Dec 04 23:31:26 2009] [error] [client 127.0.0.1] PHP Notice: Undefined index: gauditor in /usr/local/share/sams/tray.php on line 141, referer: http://localhost/sams/lframe.php
[Fri Dec 04 23:31:26 2009] [error] [client 127.0.0.1] PHP Fatal error: Cannot redeclare GetHostName() in /usr/local/share/sams/src/configtray.php on line 20, referer: http://localhost/sams/lframe.php
По сравнению с рабочей системой на федора 11 - пакеты php установлены одинаковы.
Пробывал вместо мозиллы - оперу - результат тот же.
Ядро - 2.6.31.6-145.fc12.i686.PAE
php-5.3
Апач httpd-2.2.13
mysql-server-5.1.39
статью http://sams.nixdev.net/wiki/rhel4 - смотрел
Прошу помощи
Спасибо за помощь и за терпение!!! Вроде заработало то, что мне надо :)
Кстати, сквид подходит и 3.1 -- вовсе не нужно самостоятельно собирать 3.0
> Там в конце стоит http_access deny all.
да, прошу прощенья, это я перепутал немного
> Почему раньше самс добавлял строчку
> acl _sams_4b7e68f5b542e proxy_auth "/etc/squid/4b7e68f5b542e.sams"
> ,а сейчас добавляет
> acl _sams_4b7e68f5b542e src "/etc/squid/4b7e68f5b542e.sams" ?
> Причём, раньше файл 4b7e68f5b542e.sams был заполнен списком пользователей, а сейчас он пустой.
Похоже на то, что в шаблоне пользователей тип авторизации стал ip, а у пользователей не заполнено поле ip address. Поменяйте тип авторизации в шаблоне.
>PS А разве последний http_access не должен быть allow all ?
>Насколько я помню, если squid не нашел подходящее правило, то он выполняет действие, >ОБРАТНОЕ последнему.
Несколько примеров конфига просмотрел, прежде, чем этот написать. Там в конце стоит http_access deny all. Я, конечно, новичок в сквиде, но обычно же составляются в порядке приоритета. То, что надо разрешить, ставим выше, а ниже запрещаем все прочие действия. Получается, что разрешено только то, что не запрещено.
Поставил. Вот скриншот веб настроек:

Squid.conf теперь вот такой вид имеет:
# created by SAMS _sams_ 2010-3-9 15:23:31
# TAG: http_port
http_port 3128
visible_hostname 192.168.199.177
hierarchy_stoplist cgi-bin ?
# squid не будет кешировать динамически генерируемые страницы (поисковые сервера, некоторые другие серверы и чаты), а будет напрямую перенаправлять запрос серверу
coredump_dir /var/spool/squid
# Указываем куда сбрасывать core
# TAG: cache_mem (bytes)
cache_mem 64 MB
# сколько оперативной памяти сквид может забрать под свои нужды.
maximum_object_size 2000 KB
# максимальный размер объектов, которые будут сохранены на диск. По умолчанию стоит 4096 килобайт.
maximum_object_size_in_memory 1000 KB
# максимальный размер объектов, которые будут сохранены в кэше. По умолчанию стоит 4096 килобайт.
# TAG: cache_dir
cache_dir ufs /var/spool/squid 3000 16 256
# указывает сквиду, где сохранять кешируемые файлы. Указывает отдать под кеш 3000 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го уровня.
# TAG: cache_access_log
# TAG: cache_log
# TAG: cache_store_log
# TAG: ftp_user
# в этих строках мы указываем сколько времени в минутах объект в кеше считается свежим и какой процент объектов оставлять с последнего обновления
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# TAG: redirect_program
redirect_program /etc/squid/redirector.sams
# TAG: redirector_access
# TAG: auth_param
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="EGARANT\\Пользователи домена"
# auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="EGARANT\\Пользователи домена"
# auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# TAG: acl
acl _sams_4b7e68f5b542e src "/etc/squid/4b7e68f5b542e.sams"
acl _sams_4b7e68f5b542e_time time MTWHFAS 00:00-23:59
acl _sams_chat url_regex "/etc/squid/chat.sams"
acl _sams_porno url_regex "/etc/squid/porno.sams"
acl manager proto cache_object
# назначить протоколу кеширования объектов название manager
acl localhost src 127.0.0.1/32 192.168.199.177/32
# адрес роутера
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
# удалённые адреса
acl localnet src 192.168.0.0/16
# адресное пространство локальной сети
acl SSL_ports port 443
acl Safe_ports port "/etc/squid/allowports.txt"
# разрешённые порты
acl Safe_protocols proto "/etc/squid/allowprotocols.txt"
# разрешённые протоколы
acl zapreturl url_regex "/etc/squid/zapreturl.txt"
acl zapretdomain dstdom_regex "/etc/squid/zapretdomain.txt"
# определение запретных доменов и сайтов с запретным содержимым
acl CONNECT method CONNECT
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
# Запрет всех портов, кроме разрешённых
http_access deny !Safe_protocols
# Запрет всех протоколов, кроме разрешённых
http_access deny CONNECT !SSL_ports
# Запрет всех SSL портов, кроме разрешённых
http_access deny to_localhost
# TAG: http_access
http_access allow _sams_4b7e68f5b542e !_sams_chat !_sams_porno _sams_4b7e68f5b542e_time
http_access allow localhost
# разрешить доступ с роутера
http_access deny all
# запретить всё остальное
# TAG: delay_pools
Почему раньше самс добавлял строчку
acl _sams_4b7e68f5b542e proxy_auth "/etc/squid/4b7e68f5b542e.sams"
,а сейчас добавляет
acl _sams_4b7e68f5b542e src "/etc/squid/4b7e68f5b542e.sams" ?
Причём, раньше файл 4b7e68f5b542e.sams был заполнен списком пользователей, а сейчас он пустой.
Из-за этого не работает авторизация пользователей.
теги проставлены нормально. осталось только в веб интерфейсе проверить что стоит "обрабатывать логи SQUID". и там-же указано что редиректор встроенный в squid/
PS А разве последний http_access не должен быть allow all ?
Насколько я помню, если squid не нашел подходящее правило, то он выполняет действие, ОБРАТНОЕ последнему.
Редиректор использую встроеный SQUID.
squid конф такой:
# created by SAMS _sams_ 2010-3-5 12:51:32
# TAG: http_port
http_port 3128
visible_hostname 192.168.199.177
hierarchy_stoplist cgi-bin ?
# squid не будет кешировать динамически генерируемые страницы (поисковые сервера, некоторые другие серверы и чаты), а будет напрямую перенаправлять запрос серверу
coredump_dir /var/spool/squid
# Указываем куда сбрасывать core
# TAG: cache_mem (bytes)
cache_mem 64 MB
# сколько оперативной памяти сквид может забрать под свои нужды. По умолчанию стоит 8 мегабайт, что хватит лишь при очень слабой загрузке.
maximum_object_size 2000 KB
# максимальный размер объектов, которые будут сохранены на диск. По умолчанию стоит 4096 килобайт.
maximum_object_size_in_memory 1000 KB
# максимальный размер объектов, которые будут сохранены в кэше. По умолчанию стоит 4096 килобайт.
# TAG: cache_dir
cache_dir ufs /var/spool/squid 3000 16 256
# указывает сквиду, где сохранять кешируемые файлы. Указывает отдать под кеш 3000 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го уровня.
# TAG: cache_access_log
# TAG: cache_log
# TAG: cache_store_log
# TAG: ftp_user
# TAG: redirect_program
# TAG: redirector_access
# в этих строках мы указываем сколько времени в минутах объект в кеше считается свежим и какой процент объектов оставлять с последнего обновления
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# TAG: auth_param
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="EGARANT\\Пользователи домена"
# auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="EGARANT\\Пользователи домена"
# auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# TAG: acl
acl _sams_4b7e68f5b542e proxy_auth "/etc/squid/4b7e68f5b542e.sams"
acl _sams_4b7e68f5b542e_time time MTWHFAS 00:00-23:59
acl _sams_chat url_regex "/etc/squid/chat.sams"
acl _sams_porno url_regex "/etc/squid/porno.sams"
acl manager proto cache_object
# назначить протоколу кеширования объектов название manager
acl localhost src 127.0.0.1/32 192.168.199.177/32
# адрес роутера
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
# удалённые адреса
acl localnet src 192.168.0.0/16
# адресное пространство локальной сети
acl SSL_ports port 443
acl Safe_ports port "/etc/squid/allowports.txt"
# разрешённые порты
acl Safe_protocols proto "/etc/squid/allowprotocols.txt"
# разрешённые протоколы
acl zapreturl url_regex "/etc/squid/zapreturl.txt"
acl zapretdomain dstdom_regex "/etc/squid/zapretdomain.txt"
# определение запретных доменов и сайтов с запретным содержимым
acl CONNECT method CONNECT
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
# Запрет всех портов, кроме разрешённых
http_access deny !Safe_protocols
# Запрет всех протоколов, кроме разрешённых
http_access deny CONNECT !SSL_ports
# Запрет всех SSL портов, кроме разрешённых
http_access deny to_localhost
# TAG: http_access
http_access allow _sams_4b7e68f5b542e !_sams_chat !_sams_porno _sams_4b7e68f5b542e_time
http_access allow localhost
# разрешить доступ с роутера
http_access deny all
# запретить всё остальное
# TAG: delay_pools
Возможно, я тэги не там расставил. И если я правильно понимаю, то squid.conf всё равно надо будет самому дописывать...
А так вобще, у меня есть рабочий конфиг, который работает и без SAMS. С помощью SAMS я только хочу рулить квотами и статистикой...
Мало информации. Особенно "кое что" никак не проливает свет на проблему.
Что конкретно появляется в squid.conf и какой редиректор выбран в настройках прокси?
Логи как-то помогают в решении вопроса?
Добавил тэги. Кое что начало подставляться в squid.conf. Пользователей видит. Шаблоны пользователей сделал. Пользователей к шаблонам привязал. Но что ещё надо сделать, чтоб заработали квоты и статистика?
тэги стоят в squid.conf?
http://www.permlug.org/node/5528
вытянул из репов F11 рпм-ку squid-3.0.STABLE20-2.fc11.src.rpm. Раздраконил, собрал из её спека свою рпм-ку под F12 squid-3.0.STABLE20-2.fc12.i386.rpm. Поставилась. Сквид заработал. Однако САМС ведёт себя как и раньше: никакие его настройки не влияют на сквид, и в squid.conf ничего (кроме строчки # created by SAMS _sams_ 2010-2-27 14:39:17) не записывается...
Как быть?
Такая-же проблема...
Есть ли хоть какие варианты ее решения?
Переход на squid версии 3.0 помог?
Спасибо за внимание
Т.е. хочешь сказать, что твой squid.conf для 3.0 из F11 не подойдёт для 3.1 из F12 ?? O_o
Как так может быть? Зачем же тогда вобще тут выложили сборку для F12, если она не рабтает со свидом 3.1?...
Может, всё ж таки есть какое-то другое решение...
Думаю из-за того, что штатный конфиг сквиды 3.1 в федоре 12 очень мал. Включает только acl. САМС просто не находит нужных тегов.
Я пересобрал рпм сквиды 3.0 из репо федоры 11. Пока так.
Здравствуйте! Подсажите, почему все введённые настройки через веб управление никак не отображаются в squid.conf ? Соответственно, что, каких бы я регулярных выражений, запретов доступа по URL или ещё чго прочего ни позаводил бы -- всё это не работает.
Fedora 12 i386, SAMS ставил, скачав готовую rpm-ку от сюда http://nixdev.net/release/sams/packages/Fedora_12/i386/
таким образом заработало, только он не показывает данные о памяти и данные о файловой системе
в /usr/local/share/sams/srs эта функция в следующих файлах на строках:
15:configtray.php
100:configtray.php
20:webconfigtray.php
114:webconfigtray.php
надо GetHostName заменить на что-нибудь, например на GetHostName_ и все будет ок
> достаточно переопределить описанную функцию GetHostName() и все вроде работает штатно
просветите - как это сделать. Не силен в php
Сам отвечу на эту проблему.. достаточно переопределить описанную функцию GetHostName() и все вроде работает штатно
Столкнулся с аналогичной проблемой.. так же пока не нашел решения...(