18 Декабрь 2017, 23:06

Цитата дня:

Теория- это когда ты знаешь все, но ничего не работает. Практика - это когда все работает, но никто не знает почему.


SQUID ошибка авторизации

Автор Aleksandr, 23 Декабрь 2016, 13:17

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

Aleksandr

Добрый день!
Настроил SQUID на доменную авторизацию. Все работает но в Access.log очень много TCP_DENIED/407.
1482301524.029      0 10.1.1.5 TCP_DENIED/407 4700 GET http://www.e1.ru/ - HIER_NONE/- text/html
1482301529.853      1 10.1.1.5 TCP_DENIED/407 4004 CONNECT rs.mail.ru:443 - HIER_NONE/- text/html
1482301530.779    922 10.1.1.5 TCP_DENIED/407 8608 CONNECT rs.mail.ru:443 iv@local HIER_NONE/- text/html
1482301537.221  13183 10.1.1.5 TCP_MISS/200 198710 GET http://www.e1.ru/ iv@local FIRSTUP_PARENT/10.1.1.9 text/html

Конфиг
Конфиг

dns_nameservers 10.1.1.2
cache_dir ufs /var/cache/squid 15000 16 256
auth_param negotiate program /etc/squid/negotiate_kerberos_auth -s HTTP/proxy.domain.local
auth_param negotiate children 1000 startup=120 idle=10
auth_param negotiate keep_alive on
external_acl_type Inet ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet1 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet1 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet2 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet2 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet3 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet3 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet4 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet4 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet5 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet5 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet6 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet6 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet7 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet7 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet8 ttl=3600 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet8 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
external_acl_type Inet9 ttl=300 negative_ttl=60 ipv4 %LOGIN /etc/squid/ext_kerberos_ldap_group_acl -a -i -g Inet9 -b "DC=domain,DC=local" -D domain.local -S dc.domain.local
authenticate_cache_garbage_interval 1 hour
authenticate_ttl 1 hour
acl CONNECT method CONNECT
acl PURGE method PURGE
acl SSL_ports port 443
acl Safe_ports port 80  # http
acl Safe_ports port 8080
acl Safe_ports port 443  # https
http_access deny !Safe_ports
acl to_ipv6 dst ipv6
acl bl url_regex -i "/etc/squid/blacklist/blacklist"
acl bl1 url_regex -i "/etc/squid/blacklist/blacklist1"
acl bl2 url_regex -i "/etc/squid/blacklist/blacklist2"
acl bl3 url_regex -i "/etc/squid/blacklist/blacklist3"
acl bl4 url_regex -i "/etc/squid/blacklist/blacklist4"
acl in url_regex -i "/etc/squid/blacklist/in"
acl mmedia url_regex -i "/etc/squid/blacklist/mmedia.acl"
acl bc url_regex -i "/etc/squid/blacklist/bc"
acl tf url_regex -i "/etc/squid/blacklist/tf"
acl ip url_regex -i "/etc/squid/blacklist/ip.acl"
tcp_outgoing_address 1.1.1.3 !to_ipv6
acl inet_domain_ip dst 10.2.4.1/32
acl inet_domain_url dstdomain .domain.ru
acl adm_domain_ru dstdomain .ext.ru
acl one_ip max_user_ip -s 1
acl Inet external Inet
acl Inet1 external Inet1
acl Inet3 external Inet3
acl Inet4 external Inet4
acl Inet2 external Inet2
acl Inet5 external Inet5
acl Inet6 external Inet6
acl Inet7 external Inet7
acl Inet8 external Inet8
acl Inet8_ts_net src 10.4.1.1/28
acl Inet8 external Inet8

acl nt_group proxy_auth REQUIRED
cache deny bankclient local-servers
http_access allow localhost manager
http_access deny manager
http_access allow local-servers
http_access allow PURGE localhost
http_access deny ip !Inet8
http_access deny black_list !Inet8
http_access deny black_list1 !Inet8
http_access deny black_list2 !Inet8
http_access deny black_list3 !Inet8
http_access deny black_list4 !Inet8
http_access deny webmail !Inet5
http_access allow adm_domain_ru
#http_access allow Inet8 Inet8_ts_net
#http_access deny Inet8
http_access allow Inet1 in
http_access allow Inet3 bc
http_access allow Inet8
http_access allow Inet5
http_access allow Inet
http_access allow inet_domain_ip
http_access allow inet_domain_url
http_access allow Inet2 in
http_access allow Inet7 tf
http_access allow adm_domain_ru
http_access deny one_ip
http_access deny PURGE
http_access deny all
deny_info [iurl=http://1.1.1.3:81/block.html]http://1.1.1.3:81/block.html[/iurl] Inet8
deny_info [iurl=http://1.1.1.3:81/block.html]http://1.1.1.3:81/block.html[/iurl] Inet9
error_directory /etc/squid/errors
http_access allow localhost manager
never_direct allow all
delay_pools 3
delay_class 1 1
delay_class 2 2
delay_class 3 2
delay_access 1 allow Inet
delay_access 1 deny all
delay_access 1 deny all
delay_access 1 allow Inet1
delay_access 1 deny all
delay_access 1 allow Inet5
delay_access 1 deny all
delay_access 1 allow Inet7
delay_access 1 deny all
delay_access 1 allow Inet6
delay_access 1 deny all
delay_access 2 allow Inet3
delay_access 1 deny all
delay_access 2 allow Inet2
delay_access 1 deny all
delay_access 3 allow inet_domain_url
delay_access 1 deny all
delay_parameters 1 -1/-1 10000/20000
delay_parameters 2 -1/-1 -1/-1
delay_parameters 3 -1/-1 10000/20000
access_log stdio:/var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log stdio:/var/log/squid/store.log
debug_options ALL,1 33 ,2
http_port 1.1.1.3:8080
http_port 127.0.0.1:8080

coredump_dir /var/cache/squid
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
client_lifetime 1 hour
icp_access allow all
httpd_suppress_version_string on
cache_mem 1024 MB
cache_peer 10.0.0.1 parent 8080 3130 weight=15 no-query default
always_direct deny all
dns_v4_first on
uri_whitespace allow
request_header_max_size 20 KB
cache_effective_user squid
cache_effective_group nogroup
visible_hostname proxy.domain.local
logfile_rotate 3

В чем может быть причина?

Уваров А.С.

Для начала уберите весь блок с http_access и поставьте:

acl nt_group proxy_auth REQUIRED
http_access deny !nt_group
http_access allow localnet
http_access deny all


Только не забудьте прописать прежде acl localnet, таким образом все, кто прошел аутентификацию получат доступ к интернет.
Ошибок 407 быть при этом не должно. Затем пробуем по одной добавлять группы и смотрим.

Aleksandr

 
Только не забудьте прописать прежде acl localnet, таким образом все, кто прошел аутентификацию получат доступ к интернет.Ошибок 407 быть при этом не должно. Затем пробуем по одной добавлять группы и смотрим
Подскажите пожалуйста в acl localnet, что прописать?

Уваров А.С.

Подскажите пожалуйста в acl localnet, что прописать?
Диапазон вашей локальной сети.

Aleksandr

Убрал  блок  http_access
прописал
acl localnet src подсеть
acl nt_group proxy_auth REQUIRED
http_access deny !nt_group
http_access allow localnet
http_access deny all
После этого перестали открываться страницы, в Access.log denied.

Уваров А.С.

Включайте дебаг с опциями:
debug_options ALL,1 33,2 28,9
и смотрите в cache.log какое именно правило блокирует, их осталось ровно два:
http_access deny !nt_group
если не проходит аутентификация
или
http_access deny all
если вы неправильно прописали localnet
Либо перепишите правила как:
acl nt_group proxy_auth REQUIRED
http_access allow nt_group
http_access deny all

Aleksandr

Сделал такое правило. Прокси блокирует.


cache.log
2016/12/27 19:14:20.536 kid1| 28,4| FilledChecklist.cc(66) ~ACLFilledChecklist: ACLFilledChecklist destroyed 0x7ffe04f5e000
2016/12/27 19:14:20.536 kid1| 28,4| Checklist.cc(197) ~ACLChecklist: ACLChecklist::~ACLChecklist: destroyed 0x7ffe04f5e000
2016/12/27 19:14:20.542 kid1| 28,3| Checklist.cc(70) preCheck: 0x7efc6f55de78 checking slow rules
2016/12/27 19:14:20.542 kid1| 28,5| Acl.cc(138) matches: checking http_access
2016/12/27 19:14:20.542 kid1| 28,5| Checklist.cc(400) bannedAction: Action 'DENIED/0is not banned
2016/12/27 19:14:20.542 kid1| 28,5| Acl.cc(138) matches: checking http_access#1
2016/12/27 19:14:20.542 kid1| 28,5| Acl.cc(138) matches: checking !nt_group
2016/12/27 19:14:20.543 kid1| 28,5| Acl.cc(138) matches: checking nt_group
2016/12/27 19:14:20.543 kid1| 33,2| client_side.cc(737) setAuth: Adding connection-auth to local=1.1.1.3:8080 remote=1.1.1.5:57516 FD 13 flags=1 from new Negotiate handshake request
2016/12/27 19:14:20.543 kid1| 28,3| AclProxyAuth.cc(119) checkForAsync: checking password via authenticator
2016/12/27 19:14:20.543 kid1| 28,4| Acl.cc(70) AuthenticateAcl: returning 2 sending credentials to helper.
2016/12/27 19:14:20.543 kid1| 28,3| Acl.cc(158) matches: checked: nt_group = -1 async
2016/12/27 19:14:20.543 kid1| 28,3| Acl.cc(158) matches: checked: !nt_group = -1 async
2016/12/27 19:14:20.543 kid1| 28,3| Acl.cc(158) matches: checked: http_access#1 = -1 async
2016/12/27 19:14:20.543 kid1| 28,3| Acl.cc(158) matches: checked: http_access = -1 async
2016/12/27 19:14:20.602 kid1| 28,5| InnerNode.cc(94) resumeMatchingAt: checking http_access at 0
2016/12/27 19:14:20.603 kid1| 28,5| Checklist.cc(400) bannedAction: Action 'DENIED/0is not banned
2016/12/27 19:14:20.603 kid1| 28,5| InnerNode.cc(94) resumeMatchingAt: checking http_access#1 at 0
2016/12/27 19:14:20.603 kid1| 28,5| InnerNode.cc(94) resumeMatchingAt: checking !nt_group at 0
2016/12/27 19:14:20.603 kid1| 28,5| Acl.cc(138) matches: checking nt_group
2016/12/27 19:14:20.603 kid1| 28,7| UserData.cc(22) match: user is iv@DOMAIN.LOCAL, case_insensitive is 0
2016/12/27 19:14:20.603 kid1| 28,7| UserData.cc(28) match: aclMatchUser: user REQUIRED and auth-info present.
2016/12/27 19:14:20.603 kid1| 28,4| Acl.cc(344) cacheMatchAcl: ACL::cacheMatchAcl: miss for 'nt_group'. Adding result 1
2016/12/27 19:14:20.603 kid1| 28,3| Acl.cc(158) matches: checked: nt_group = 1
2016/12/27 19:14:20.603 kid1| 28,3| InnerNode.cc(97) resumeMatchingAt: checked: !nt_group = 0
2016/12/27 19:14:20.603 kid1| 28,3| InnerNode.cc(97) resumeMatchingAt: checked: http_access#1 = 0
2016/12/27 19:14:20.603 kid1| 28,5| Checklist.cc(400) bannedAction: Action 'DENIED/0is not banned
2016/12/27 19:14:20.603 kid1| 28,5| Acl.cc(138) matches: checking http_access#2
2016/12/27 19:14:20.603 kid1| 28,5| Acl.cc(138) matches: checking all
2016/12/27 19:14:20.603 kid1| 28,9| Ip.cc(95) aclIpAddrNetworkCompare: aclIpAddrNetworkCompare: compare: 1.1.1.5:57516/[::] ([::]:57516)  vs [::]-[::]/[::]
2016/12/27 19:14:20.603 kid1| 28,3| Ip.cc(539) match: aclIpMatchIp: '1.1.1.5:57516' found
2016/12/27 19:14:20.603 kid1| 28,3| Acl.cc(158) matches: checked: all = 1
2016/12/27 19:14:20.603 kid1| 28,3| Acl.cc(158) matches: checked: http_access#2 = 1
2016/12/27 19:14:20.603 kid1| 28,3| InnerNode.cc(97) resumeMatchingAt: checked: http_access = 1
2016/12/27 19:14:20.603 kid1| 28,3| Checklist.cc(63) markFinished: 0x7efc6f55de78 answer DENIED for match
2016/12/27 19:14:20.603 kid1| 28,3| Checklist.cc(163) checkCallback: ACLChecklist::checkCallback: 0x7efc6f55de78 answer=DENIED
2016/12/27 19:14:20.603 kid1| 28,5| Gadgets.cc(83) aclIsProxyAuth: aclIsProxyAuth: called for all
2016/12/27 19:14:20.603 kid1| 28,9| Acl.cc(99) FindByName: ACL::FindByName 'all'
2016/12/27 19:14:20.603 kid1| 28,5| Gadgets.cc(88) aclIsProxyAuth: aclIsProxyAuth: returning 0
2016/12/27 19:14:20.603 kid1| 28,8| Gadgets.cc(51) aclGetDenyInfoPage: got called for all
2016/12/27 19:14:20.603 kid1| 28,8| Gadgets.cc(70) aclGetDenyInfoPage: aclGetDenyInfoPage: no match
2016/12/27 19:14:20.604 kid1| 28,4| FilledChecklist.cc(66) ~ACLFilledChecklist: ACLFilledChecklist destroyed 0x7ffe04f5e030
2016/12/27 19:14:20.604 kid1| 28,4| Checklist.cc(197) ~ACLChecklist: ACLChecklist::~ACLChecklist: destroyed 0x7ffe04f5e030
2016/12/27 19:14:20.604 kid1| 28,4| FilledChecklist.cc(66) ~ACLFilledChecklist: ACLFilledChecklist destroyed 0x7ffe04f5e030
2016/12/27 19:14:20.604 kid1| 28,4| Checklist.cc(197) ~ACLChecklist: ACLChecklist::~ACLChecklist: destroyed 0x7ffe04f5e030






Уваров А.С.

В acl localnet src что именно указано? Потому как ваш клиент проходит аутентификацию, но не попадает в localnet, после чего ему вполне закономерно отказывают в доступе.

Aleksandr

В acl localnet src что именно указано? Потому как ваш клиент проходит аутентификацию, но не попадает в localnet, после чего ему вполне закономерно отказывают в доступе.
Я сделал такое правило
acl nt_group proxy_auth REQUIRED
http_access allow nt_group
http_access deny all
Без acl localnet src

Уваров А.С.

И доступа нет? Тогда у вас не работает аутентификация.

Aleksandr

И доступа нет? Тогда у вас не работает аутентификация.
Да доступа нет.
но со старым конфигом авторизация работает.

Уваров А.С.

Давайте сначала не будем путать авторизацию с аутентификацией.

То, что я вам предложил - минимальный вариант, если он не работает, то надо включать дебаг и разбираться. Чудес не бывает и никто вам "волшебной" опции, чтобы сразу все заработало не подскажет.

sm0ke

Доброе утро!
У меня аналогичная проблема: в логах большое количество TCP_DENIED/407 (т.е. как и у топикстартера - выход в интернет есть)
1493704470.284      1 10.71.2.18 TCP_DENIED/407 4133 CONNECT ya.ru:443 - HIER_NONE/- text/html
1493704470.668      3 10.71.2.18 TCP_DENIED/407 4161 CONNECT yastatic.net:443 - HIER_NONE/- text/html
1493704470.668      2 10.71.2.18 TCP_DENIED/407 4161 CONNECT yastatic.net:443 - HIER_NONE/- text/html
1493704470.669      1 10.71.2.18 TCP_DENIED/407 4161 CONNECT yastatic.net:443 - HIER_NONE/- text/html
1493704470.671      0 10.71.2.18 TCP_DENIED/407 4161 CONNECT mc.yandex.ru:443 - HIER_NONE/- text/html
1493704471.133      1 10.71.2.18 TCP_DENIED/407 4149 CONNECT yandex.ru:443 - HIER_NONE/- text/html
1493704471.544      1 10.71.2.18 TCP_DENIED/407 4161 CONNECT mc.yandex.ru:443 - HIER_NONE/- text/html
1493704471.562      1 10.71.2.18 TCP_DENIED/407 4185 CONNECT www.tns-counter.ru:443 - HIER_NONE/- text/html
1493704472.124   1800 10.71.2.18 TCP_TUNNEL/200 13454 CONNECT ya.ru:443 admin@DOMEN.LAN HIER_DIRECT/87.250.250.242 -
1493704472.124   1451 10.71.2.18 TCP_TUNNEL/200 6560 CONNECT yastatic.net:443 admin@DOMEN.LAN HIER_DIRECT/178.154.131.216 -


При минимальном конфиге squid
acl nt_group proxy_auth REQUIRED
http_access deny !nt_group
http_access allow localnet
http_access deny all

ситуация не меняется.

Добавил в squid.conf debug_options ALL,1 33,3 28,9 , но не очень понимаю, на что обратить в расширенном логе внимание?
Подскажите, пожалуйста. Заранее спасибо!

Уваров А.С.

Обратите внимание, что у вас блокируются в основном запросы к вспомогательным ресурсам по HTTPS, при этом запросы с явной аутентификацией проходят - TCP_TUNNEL/200.

Ловить такие вещи лучше в отсутствие активности. Запускаете браузер и анализируете логи на предмет того, кто именно обратился, как  и на каком правиле был получен запрет. Вполне возможно, что это как-раз таки нормальная картина для имеющегося у вас набора правил.

Вверх