@ArseniyBuh
эникей в госконторе

Как настроить squid чтобы он не запрещал выходить в интернет внесенным в конфиг AD группам?

Доброго времени суток! Суть проблемы: тестовая машина в домене (винда) не ходит в интернет. На тестовой машине прописан прокси-сервер 10.47.143.178 (тоже пока тестовый), на котором стоит freebsd 12.1. При этом в браузере сначала выдается окно авторизации, в него ввожу данные учетной записи, пробую авторизоваться и в итоге появляется надпись следующего содержания: Ошибка. Доступ к кэшу запрещен. Скрины данной ошибки прикреплены к посту.
5ea57fe154f5e775550047.jpeg
5ea57f9dafb23137381517.jpeg
Как мне кажется вся проблема в сквиде версии 4.10, а точнее в конфиге сквида. Вот этот конфиг:
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 50

auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol-squid-2.5-basic
auth_param basic children 50

auth_param basic realm TESTPROXY
auth_param basic credentialsttl 2 hours

external_acl_type nt_group %LOGIN /usr/local/libexec/squid/wbinfo_group.pl
acl testgroup external nt_group testgroup

acl LimitedInternet external nt_group LimitedInternet
acl http_proto port 80
acl SiteAllow dstdomain .mail.ru .yandex.ru
#http_access allow test http_proto
http_access allow testgroup SiteAllow
http_access deny all

http_port 3128
#hierarchy_stoplist cgi-bin
coredump_dir /usr/local/etc/squid/cache
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
Сразу скажу, что конфиг данный был срисован со старого сквида еще 3 версии, не помню точно какой. Пробовал гуглить аналогичный конфиг для версии сквида 4.10, но так ничего и не нашел. Как видно по конфигу аутентификация осуществляется при помощи сетевого протокола NTLM.
Просмотрел логи squid. Вот что выдается в access.log при попытке с тестовой машины клиента при попытке зайти на яндекс:
1587222517.160 1 10.47.143.211 TCP_DENIED/407 4524 GET yandex.ru - HIER_NONE/- text/html
1587222517.172 2 10.47.143.211 TCP_DENIED/407 4889 GET yandex.ru - HIER_NONE/- text/html
1587222517.236 61 10.47.143.211 TCP_DENIED/407 5205 GET yandex.ru testsquid HIER_NONE/- text/html
1587222519.614 12 10.47.143.211 TCP_DENIED/407 4665 GET yandex.ru testsquid HIER_NONE/- text/html
1587222521.731 24 10.47.143.211 TCP_DENIED/407 4665 GET yandex.ru testsquid HIER_NONE/- text/html
1587222523.063 25 10.47.143.211 TCP_DENIED/407 4665 GET yandex.ru testsquid HIER_NONE/- text/html
1587222523.142 17 10.47.143.211 TCP_DENIED/407 4667 GET testproxy.fkp47.local:3128/squid-internal-static/i... testsquid HIER_NONE/- text/html
1587222523.166 17 10.47.143.211 TCP_DENIED/407 4765 GET testproxy.fkp47.local:3128/squid-internal-static/i... testsquid HIER_NONE/- text/html
1587222524.046 17 10.47.143.211 TCP_DENIED/407 4765 GET testproxy.fkp47.local:3128/squid-internal-static/i... testsquid HIER_NONE/- text/html
1587222525.363 23 10.47.143.211 TCP_DENIED/407 4765 GET testproxy.fkp47.local:3128/squid-internal-static/i... testsquid HIER_NONE/- text/html
1587222526.252 18 10.47.143.211 TCP_DENIED/407 4765 GET testproxy.fkp47.local:3128/squid-internal-static/i... testsquid HIER_NONE/- text/html
1587222527.089 28 10.47.143.211 TCP_DENIED/407 4765 GET testproxy.fkp47.local:3128/squid-internal-static/i... testsquid HIER_NONE/- text/html
А вот что выдается в cache.log:
2020/04/19 19:39:18 kid1| Starting new helpers
2020/04/19 19:39:18 kid1| helperOpenServers: Starting 1/5 'wbinfo_group.pl' processes
2020/04/19 19:39:18 kid1| ipcCreate: /usr/local/libexec/squid/wbinfo_group.pl: (2) No such file or directory
2020/04/19 19:39:18 kid1| WARNING: nt_group #Hlpr4527164 exited
2020/04/19 19:39:18 kid1| Too few nt_group processes are running (need 1/5)
2020/04/19 19:39:18 kid1| Starting new helpers
2020/04/19 19:39:18 kid1| helperOpenServers: Starting 1/5 'wbinfo_group.pl' processes
2020/04/19 19:39:18 kid1| ipcCreate: /usr/local/libexec/squid/wbinfo_group.pl: (2) No such file or directory
2020/04/19 19:39:18 kid1| WARNING: nt_group #Hlpr4527165 exited
2020/04/19 19:39:18 kid1| Too few nt_group processes are running (need 1/5)
2020/04/19 19:39:18 kid1| Starting new helpers
2020/04/19 19:39:18 kid1| helperOpenServers: Starting 1/5 'wbinfo_group.pl' processes
2020/04/19 19:39:18 kid1| ipcCreate: /usr/local/libexec/squid/wbinfo_group.pl: (2) No such file or directory
2020/04/19 19:39:18 kid1| WARNING: nt_group #Hlpr4527166 exited
2020/04/19 19:39:18 kid1| Too few nt_group processes are running (need 1/5)
Соответственно вопрос: что не так с синтаксисом конфига для squid, где закралась ошибка. И стоит ли использовать squid 4.10, возможно нужно использовать более раннюю версию.
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 2
Проблема вполне на поверхности -
/usr/local/libexec/squid/wbinfo_group.pl: (2) No such file or directory

Нужно найти (да, хоть поиском через find) где этот файл конкретно располагается в этой версии, либо использовать его от более старой версии. Не думаю что он менялся когда-либою. Ну и поправить путьв конфиге. Должно будет завестись.

P.S. Использование NTLM для авторизации - крайне устаревший способ аутентификации/авторизации. Лучше мигрировать на Kerberos.
Ответ написан
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
Пардон, вот это классический пример того, что бывает, когда вместо вникания в суть - ограничиваемся копипастом :)

Авторизация в сквиде - это отдельная тема десятка статей :) Она делается не менее чем тремя способами, но актуален в настоящее время только один - через negotiate_kerberos_auth. Там довольно длинная процедура, я ее уже плохо помню, была статья в "Системном администраторе", давненько правда, еще в 2012 году. Статья называлась "Squid + AD - samba"
Создается учетка в AD
К ней вяжется принципал через ktpass (это виндовая команда)
Этот принципал указывается в конфиге сквида и получается что-то типа:
auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -k /etc/proxy.keytab -s HTTP/fat.zhopa.ruchka@ZHOPA.RUCHKA
auth_param negotiate children 30 startup=0 idle=1
auth_param negotiate keep_alive on

Если нужно рулить еще и группами (а иначе зачем wbinfo_group.pl?) - то в том же Системном администраторе в прошлом году незадолго до того, как ему сдохнуть - была статья про управление группами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы