LINUX.ORG.RU
ФорумAdmin

squid. Доступ не авторизированным пользователям и выкидывание окна авторизации


1

1

Доброго времени суток. Поставили на работе одну задачку. Сам пока не нагуглил решение.

Куплен доступ к одному программному продукту, где доступ идет через обычный браузер. Там даже не https, а http соединение. Тока авторизация по логину и паролю. Вообщем те, кому интернет у нас разрешен, сидят на сквиде с авторизацией в АД. Там все нормально и вопросов нет (изначально был вопрос только в том, что бы трафик не считался пользователям, но это все решено уже давно еще по другому подобному случаю. Я даже кажется здесь и нашел решение). Но это всего порядка 300-500 человек. Есть еще порядка такого же (даже больше) количества народа, которым инет запрещен. Но вот этим программным продуктом (сайтом) какой-то части из них тоже придется пользоваться. (сразу поправка - это уже на другом сквиде, который на шлюзе находится и авторизация там basic, а не АД - изначально это был боевой сервак, потом купили новое железо для нового сквида, а этот остался в качестве шлюза и почтовика и плюс для нескольких банковских прог, которые не умеют по керберосу авторизироваться - ну это предыстория. Надеюсь не сильно запутанно объяснил)

Вроде по той же идеологии создан так же файлик nonauth и создан акл для этого правила, типа если сайт находится в этом файле, то он идет без авторизации (я сейчас дома и точно не напишу его, но что-то типа httpaccess allow all nonauth - вообщем это правило находится выше всех и к тем сайтам, которые в этом файле, к ним имеют доступ все у кого прописан этот прокси (политиками домена, тем кому разрешен доступ в инет прописывается новый прокси с керберосом, кому инет не разрешен - старый прокси с «бэйсиком»). Ладно, как бы все работает, любому туда «безинетному» (по тем, кто с «инетом» вопросов никаких - как и задумывалось там трафик не считается и никаких проблем) доступ разрешен, как бы все работает, но есть одно но, с которым просто достанут потом. Время от времени вылазет окно с запросом авторизации. Спокойно жмешь отмену и все работает. По логам выяснил, что это бывает, когда сайт обращается к запрещенным урлам. из того, что вспомню, это какие-то кликнет и мц.яндекс.ру и какие-то еще гугловские маячки и кликосчиталки, как я понял. По логам отслеживал, добавлял в исключения для браузера - несколько минут нет окна авторизации (изначально через несколько кликов было), но когда список перевалил за 20, то понятно дело, что это не дело. Вот и задумался, может на уровне сквида как-то сделать можно, что бы не вылезало для них окно авторизации, но при этом они только сайтом http://www.sait.ru могли пользоваться. Какие части конфига нужны, завтра с работы могу скинуть. Хотя там в принципе все настроено по обычным мануалам. Только что групп пользователей и правил доступа с десяток и тех и тех

★★★

сразу после allow добавить deny для запрещеных юзеров, чтобы они не доходили до авторизации

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

так у меня так и сделано. Для этих сайтов вообще перед всеми правилами стоит. Но сайт начитает долбиться на эти «маячки» время от времени и вылазиет окно авторизации, вместо того, что бы просто не пустить и все. Ладно, завтра скину как аклы и акцесссы выглядят

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

хм... не совсем понял. у меня там allow для всех на эти сайты, а дальше пошили правила по группам, кому что разрешенно, кому запрещенно. Ладно, что бы не гадать, завтра конфиг правил кину

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

по именам компов просто не реально. Их (без инета) больше 500 и плюс еще есть текучка кадров. Получится, что я только и буду заниматься тем, что добавлять и удалять компы из списка.

Вообщем вот часть конфига, которая у меня отвечает за авторизацию (если тут присутствуют acl для которых нет http_access, не обращайте внимания - просто видимо пропустил, когда копировал. Основная проблема, что

http_access allow all notauth

отрабатывает нормально, но на сайте есть банеры и маячки и на них срабатывает запрет и вылазит окно авторизации. Те, кто работа с авторизацией работает (acl password proxy_auth REQUIRED) то у них лишних запросов авторизации нет. Если это запрещенный сайт, то не пускает просто, если маячки там или банеры, то просто squid их молча рубит и все

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
auth_param basic program /usr/local/squid/libexec/ncsa_auth /etc/shadow

acl https_ports port 443 8420 5222 8000 5061 3000 1935
acl safe_ports port 80 81 85 1935 3000 5080 5435 8000 8080 8081 8088 8100 8101 8136 8585 8889 9091 9443
acl ftp_ports port 21 20
acl ibank_ports port 80 443 4033 4433 8443 9080 9091 9443 1024-65535

acl CONNECT method CONNECT

acl blockedusers proxy_auth «/usr/local/squid/etc/group/blockedusers»
acl temp_block proxy_auth «/usr/local/squid/etc/group/temp_block»
acl admins_ip src «/usr/local/squid/etc/group/admins_ip»
acl ecxeption_ip src «/usr/local/squid/etc/group/ecxeption_ip»
acl users_ip src «/usr/local/squid/etc/group/users_ip»
acl bed_ip src «/usr/local/squid/etc/group/bed_ip»
acl admins proxy_auth «/usr/local/squid/etc/group/admins»
acl ecxeption proxy_auth «/usr/local/squid/etc/group/ecxeption»
acl avir_ip src «/usr/local/squid/etc/group/avir_ip»
acl users proxy_auth «/usr/local/squid/etc/group/users»
acl slowusers proxy_auth «/usr/local/squid/etc/group/slowusers»
acl downloadusers proxy_auth «/usr/local/squid/etc/group/downloadusers»
acl icqusers proxy_auth «/usr/local/squid/etc/group/icqusers»
acl httpsusers proxy_auth «/usr/local/squid/etc/group/httpsusers»
acl arjusers proxy_auth «/usr/local/squid/etc/group/arjusers»
acl mediausers proxy_auth «/usr/local/squid/etc/group/mediausers»
acl execusers proxy_auth «/usr/local/squid/etc/group/execusers»
acl bankusers proxy_auth «/usr/local/squid/etc/group/bankusers»
acl bankusers_ip src «/usr/local/squid/etc/group/bankusers_ip»
acl microsoft-gr proxy_auth «/usr/local/squid/etc/group/microsoft-gr»
acl ecxeption_soc-gr proxy_auth «/usr/local/squid/etc/group/ecxeption_soc»
acl password proxy_auth REQUIRED

##############
# Списки URL #
##############
acl notauth url_regex -i «/usr/local/squid/etc/url/notauth»
acl bedmailurl url_regex -i «/usr/local/squid/etc/url/bedmailurl»
acl microsofturl url_regex -i «/usr/local/squid/etc/url/microsofturl»
acl socblockurl url_regex -i «/usr/local/squid/etc/url/socblockurl»
acl bannersurl url_regex -i «/usr/local/squid/etc/url/bannersurl»
acl bankurl url_regex -i «/usr/local/squid/etc/url/bankurl»
acl bankurl_ip url_regex -i «/usr/local/squid/etc/url/bankurl_ip»
acl avirurl_ip url_regex -i «/usr/local/squid/etc/url/avirurl_ip»
acl icqurl url_regex -i «/usr/local/squid/etc/url/icqurl»
acl arjurl url_regex -i «/usr/local/squid/etc/url/arjurl»
acl mediaurl url_regex -i «/usr/local/squid/etc/url/mediaurl»
acl execurl url_regex -i «/usr/local/squid/etc/url/execurl»
acl blockedurl url_regex -i «/usr/local/squid/etc/url/blockedurl»
acl ecxeptionurl url_regex -i «/usr/local/squid/etc/url/ecxeptionurl»
acl httpsurl url_regex -i «/usr/local/squid/etc/url/httpsurl»


# эта строка разрешает любым пользователям
# ходить на сайты указанные в notauth
http_access allow all notauth

http_access allow bankusers_ip bankurl_ip ibank_ports CONNECT
http_access allow bankusers_ip bankurl_ip ibank_ports

http_access allow admins_ip CONNECT
http_access allow admins_ip
http_access allow ecxeption_ip CONNECT
http_access allow ecxeption_ip
http_access allow users_ip !blockedurl !bannersurl !arjurl !execurl !mediaurl safe_ports

http_access allow admins CONNECT password
http_access allow admins password
#
http_access allow ecxeption CONNECT password
http_access allow ecxeption password
#
http_access allow bankusers bankurl ibank_ports CONNECT password
http_access allow bankusers bankurl ibank_ports password

http_access deny temp_block
deny_info ERR_TEMP temp_block

http_access deny blockedusers
deny_info ERR_QUOTA blockedusers

http_access deny bedmailurl
deny_info ERR_SOC bedmailurl

http_access deny socblockurl
deny_info ERR_SOC socblockurl
#
http_access allow icqusers icqurl CONNECT https_ports password
http_access allow httpsusers !icqurl CONNECT https_ports password
http_access allow users httpsurl CONNECT https_ports password
http_access deny users CONNECT
http_access allow users httpsurl password
http_access allow microsoft-gr microsofturl password
#http_access allow ecxeption_soc-gr socblockurl password
http_access allow arjusers !socblockurl !blockedurl !bannersurl !execurl !mediaurl safe_ports password
http_access allow mediausers !socblockurl !blockedurl !bannersurl !arjurl !execurl safe_ports password
http_access allow execusers !socblockurl !blockedurl !bannersurl !arjurl !mediaurl safe_ports password
http_access allow users !blockedurl !bannersurl !arjurl !execurl !mediaurl safe_ports password

redirect_program /usr/local/bin/redirector
redirect_children 5
redirector_bypass on

http_access deny all



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

Нет решения. Как только squid дойдет до любого http_access правила с acl proxy_auth — он запросит имя/пароль.

Чтобы этого избежать надо не допустить проверки имени пользователя, а для этого надо найти (создать) иной критерий.

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

вот к сожалению и не приходит в голову, как создать иной критерий. До этого, когда я только создавал эти правила, то там никаких левых запросов на другие сайты не было. Соответственно и не было никаких окошек авторизации. А тут вот такая засада вышла...

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

по именам компов просто не реально. Их (без инета) больше 500 и плюс еще есть текучка кадров. Получится, что я только и буду заниматься тем, что добавлять и удалять компы из списка.

Автоматизируй. Юзеры виндовые с их компами в AD вероятно. Занеси всех запрещенных юзеров в AD-группу, периодически вытаскивай этот список юзеров и по нему вытаскивай соотв. список компов (имена или адреса)

Это список компов подсовывай squid'y — никакой ручной работы.

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

не, не подходит вариант никак. Те, кому доступ разрешен, добавляются в группу InternetUsers и политиками прилетает, что бы они ходили через другой сервак, который именно через керберос настроен. Тем, кому инет не разрешен политикой прилетает ходить именно через старый сервак. Одна из причин, к примеру я нахожусь за таким «без инетным» компом и мне срочно нужна инфа с инета. Спокойно ввожу логин с паролем свой, который на старой прокси и спокойно ищу что мне нужно. Если де он уже будет авторизован как запрещенный, то такой номер не пройдет. Либо еще один велосипед изобретать придется. Потом вручную перебирать все эти 500+ компов - тоже не вариант. Особенно когда за неделю у нас с десяток пользователей может смениться и соответственно имена компов тоже. Айпишки перебирать? Так из-за такого количества народу (порядка 1000+) у нас срок жизни адреса выдаваемых по DHCP еще то удовольствие. Человек ушел в отпуск, вернулся, а в инет выйти не может. Это если бы была небольшая контора, компов 50-100, то можно было бы какой-нибудь более простой способ, типа такого смотреть. У меня как бы другой работы хватает, кроме того, что бы вручную мониторить, кто уволился, кто пришел, кто комп сменил. Ну это так, первое, что в голову пришло, почему не вариант переводить тех, кто не имеет инета с бэйсик авторизации на сервак с авторизацией в АД. Так, если подумать, то еще с десяток причин найдется, почему в моем варианте это не подходит

Ладно, раз готового решения нет, буду думать, что еще можно придумать в такой ситуации

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

Все, решение найдено, хотя не совсем полное и не там, где искал. Жаль, что не на уровне сервака. Плагин для браузера Ghosterey, который спокойно режет все эти жучки да маячки

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