LINUX.ORG.RU
ФорумAdmin

Squid3


0

1
acl auth proxy_auth REQUIRED
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl localnet src 192.168.0.0/24
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

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

# TAG: acl 
acl _sams_50db9aabb813a proxy_auth "/etc/squid3/50db9aabb813a.sams" 

# TAG: http_access 
http_access allow _sams_50db9aabb813a  

http_access allow auth
http_access allow manager localhost
http_access allow localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

Подскажите. Вот при этих настройках никого из домена никуда не пускает. В access.log пишется ошибка 407

NOTE: proxy_auth requires a EXTERNAL authentication program to check username/password combinations (see auth_param directive).

redgremlin ★★★★★ ()

Причем ошибка вываливается не от squid, а стандартная IE (не может отобразить веб-страницу)

andreyd ()
Ответ на: комментарий от andreyd

Что ты плохо читал документацию. proxy_auth не занимается авторизацией, а лишь определяет список разрешенных пользователей. Способ и программу авторизации определяет auth_param.

redgremlin ★★★★★ ()
Ответ на: комментарий от redgremlin

И конструкция
http_access allow _sams_50db9aabb813a
http_access allow auth
не имеет смысла, потому что цепочка проходится до попадания в allow, deny или целиком. Т.е. те пользователи, которые не попали в _sams_.. идут дальше и попадают в allow auth, который REQUIRED, т.е. пропускает любое валидное имя.

redgremlin ★★★★★ ()
Ответ на: комментарий от redgremlin

Я немного не понял. Это был не весь конфиг просто. Вот весь если надо. Про конструкцию понял, сейчас исправлю

# created by SAMS _sams_ 2013-1-10 17:40:28
http_port 192.168.110.5:3128
icp_port 0
hierarchy_stoplist cgi-bin ?
cache_mem 128 MB
maximum_object_size 8092 KB
maximum_object_size_in_memory 512 KB
cache_dir ufs /usr/local/squid3/cache 512 16 256 
cache_access_log /usr/local/squid3/log/access.log
cache_log /usr/local/squid3/log/caches.log
cache_store_log /usr/local/squid3/log/store.log
cache_mgr admin@kinoforum.local
visible_hostname proxyserver
tcp_outgoing_address 192.168.110.5
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
redirect_program /usr/bin/samsredir
redirect_children 32

coredump_dir /usr/local/squid3/cache
pid_filename /usr/local/squid3/log/squid.pid

auth_param ntlm program /usr/lib/squid3/squid_ldap_auth -R -D "squid@kinoforum.local" -w 123 -b "dc=kinoforum,dc=local" -f "sAMAccountName=%s" 192.168.110.3 
auth_param ntlm children 20
auth_param ntlm keep_alive off

acl auth proxy_auth REQUIRED
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl localnet src 192.168.0.0/24
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

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

# TAG: acl 
acl _sams_50ee597c416af proxy_auth "/etc/squid3/50ee597c416af.sams" 

# TAG: http_access 
http_access allow _sams_50ee597c416af  

http_access allow auth
http_access allow manager localhost
http_access allow localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
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

andreyd ()
Ответ на: комментарий от andreyd

С LDAP не работал, но ман говорит, что

squid_ldap_auth
This helper allows Squid to connect to a LDAP directory to validate the user name and password of Basic HTTP authentication

Так что попробуй auth_param basic вместо auth_param ntlm, проверь в консоли, что

/usr/lib/squid3/squid_ldap_auth -R -D «squid@kinoforum.local» -w 123 -b «dc=kinoforum,dc=local» -f «sAMAccountName=%s» 192.168.110.3

работает (%s, естественно, на имя существующего юзера измени)

redgremlin ★★★★★ ()
Ответ на: комментарий от redgremlin

Вот тот хэлпер что у меня в конфиге, через консоль пишет OK, то есть я так понимаю что он работает. Кстати если я сменю авторизацию на ntlm, то проблема остается

andreyd ()
Ответ на: комментарий от andreyd

1) вместо /usr/lib/squid3/squid_ldap_auth подставь свой скрипт-заглушку и посмотри какие аргументы туда приходят от IE

2) если у вас AD то без TLS ничего не сработает

3) когда проверяшь хелперы squid через консоль, запускай их от имени владельца squid.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

Я нуп в линуксе, и этот прокси для меня первое творение, поэтому первые два пункта я вообще не понял. Что должно содержаться в скрипте, и что такое TLS?

andreyd ()

У тебя доступ на волю хромает, разрешил только машине(сервверу), а запретил всем. http_access allow localnet # разреши пользователям инета

stamp ()
Ответ на: комментарий от stamp
acl LocalNet src 192.168.0.0/24
http_access allow LocalNet   

Так? Я правильно понял?

andreyd ()
Ответ на: комментарий от andreyd

Да, но прочитав чуть дальше я пропустил важный момент. Авторизация проходит через LDAP сервер, а не по ip, так что одной этой строчкой не обойтись.
Пользователь(который squid -> «squid@kinoforum.local») ldap должен быть создан в корне AD

#проверка группы в домене c консоли

//$> /usr/local/libexec/squid/squid_ldap_auth -b "dc=kinoforum,dc=local" -D squid@kinoforum.local -w 123 -f "(&(objectClass=person)(sAMAccountName=%s))" -u sAMAccountName -h 192.168.110.3 -p 389
ентер
водишь пользователя и пароль
vasya vasya_password
и система должна ответить
Connected OK
или
ОК
Если что-то другое, то проверяй связь с LDAP сервером.

stamp ()
Ответ на: комментарий от stamp

промахнулся там где Вася


водишь пользователя и групу

vasya vasya_group

stamp ()
Ответ на: комментарий от stamp

Сейчас у меня нет возможности проверить, но связь с ldap сервером есть, и если нажать в sams «тестировать ответ PDC» (или что-то такое) то пользователей видно. Ну и мой хэлпер тоже вроде как работал. С группой не проверял, завтра проверю и отпишусь

andreyd ()
Ответ на: комментарий от andreyd

поэтому первые два пункта я вообще не понял.

по п.1: сделать скрипт а-ля :

#!/bin/bash
# журнал, создать заранее и пользователь squid должен иметь право на запись
LOG=/var/log/auth_helper_log.txt
APP=/usr/lib/squid3/squid_ldap_auth
# если журнал запрещенн - просто вызвать хелпер
if [ ! -w $LOG ] ; then
    exec $APP $@
fi

# сохранить полученные аргументы в журнал
echo "$@" >> $LOG
# выполнить целевой скрипт
OUT=`$APP $@`
# сохранить результат в журнал
ret=$?
if [ $ret -eq 0 ]; then
    echo "Ok" >> $LOG
else
    printf "Error %d" $ret >> $LOG
# сохранить выхлоп в журнал
echo -n "OUT:"
echo $OUT >> $LOG
echo $OUT
и подставить его вызов в конфиг сквида - пусть сохранит все попытки авторизации в журнал. скрипт не проверял - возможно есть ошибки

по п.2: TLS - механизм защиты канала (шифрование) в частности при связи ldap клиент/сервер. Настройки AD по умолчанию запрещают изменение пароля по нестойкому каналу, также ограничивается (или вовсе запрещается) частота проверок пароля средствами ldap - для этого служит керберос.

то есть если у вас ActiveDirectory - то используется ntlm/winbind механизм и соотв.хелперы в squid`е.

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

То есть, если у меня AD, то, мне лучше использовать ntlm авторизацию? Я просто уже грешил на ldap, но поменяв авторизацию на ntlm, сменив хелперы, и добавив пользователей из AD увидел ту же ошибку (ie не может отобразить страницу)

andreyd ()
Ответ на: комментарий от andreyd

мне лучше использовать ntlm авторизацию?

да

поменяв авторизацию на ntlm, сменив хелперы, и добавив пользователей из AD увидел ту же ошибку (ie не может отобразить страницу)

а вот тут уже надо разбираться - изучать журналы :)

что кстати значит «добавив пользователей из AD» - зачем и куда добавив ?

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

В том то и дело что в журналах все гладко, за исключением 407 ошибки в access.log

Ну я использую самс, и соответственно рулю пользователями от туда (если я делаю неправильно, то буду рад услышать как правильно)

andreyd ()
Ответ на: комментарий от andreyd

Ну я использую самс, и соответственно рулю пользователями от туда (если я делаю неправильно, то буду рад услышать как правильно)

неправильно. Если у вас есть централизованная база LDAP или AD - то вся рулёжка пользователями должна быть там.

а вот это

# TAG: acl 
acl _sams_50ee597c416af proxy_auth "/etc/squid3/50ee597c416af.sams" 

# TAG: http_access 
http_access allow _sams_50ee597c416af  

это sams добавил насколько я понимаю..а вы не думаете, что проблема выросла именно отсюда ??

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

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

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

andreyd ()
Ответ на: комментарий от andreyd

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

заведите новую тему..а то эта как-то про авторизацию, а у вас на самом деле другие проблемы - про фильтр контента и конкретный софт. Я так думаю, что в форуме есть достаточно людей обладающих актуальным опытом по вопросу «обрезать чё надо режиком» :)

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

ps. Жаль что не смог помочь. :( :(

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

Ну зато Вы толкнули меня в нужное русло. И на том спасибо)))

andreyd ()
Ответ на: комментарий от andreyd

Вот только что сменил авторизацию на ntlm и отключил редиректор и все заработало

andreyd ()
Ответ на: комментарий от stamp

Нашел изьян))) Как только сквид натыкается на http_access allow LocalNet, то он пускает всех с этой сети без разбору не аутентифицируя. Следовательно трафик не считается

andreyd ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.