LINUX.ORG.RU
ФорумAdmin

Squid ограничить доступ для пользователей

 , , ,


0

2

Добрый день, форумчане!

Вопрос следующий:

Есть прокси-сервер squid, c basic аутентификацией, 4 учетных записи.

Фактически пользователей много, которые будут подключаться под этими 4 учетками. Как сделать так, чтоб если один пользователь авторизовался например под уз TEST-1, то второй уже не смог авторизоваться под этой же уз и ждал пока первый сам не выйдет или не вылетит по таймауту. и желательно сделать таймаут 3-5 минут.

учетки примерно формата TEST-1 TEST-2 TEST-3 TEST4

и желательно под каждой сделать доступ только одного человека или с одного ip в один момент времени

Если с таймаутом все более менее понятно, то со входом беда, одновременно сразу несколько могут авторизоваться под одной уз(

Сейчас параметры аутентификации в конфиге примерно такие:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/test

auth_param basic children 1 startup=1 idle=1

auth_param basic realm test-provisioning

auth_param basic credentialsttl 5 minutes

authenticate_ttl 5 minutes

authenticate_ip_ttl 1 minutes

Заранее спасибо;)

Ответ на: комментарий от mky

Спасибо конечно, но не работает(

Пробовал и по этому шаблону и по своему типу:

acl block max_user_ip -s 1 acl user proxy_auth TEST-1 REQUIRED http_access deny block http_access allow user

И все равно несколько человек могут авторизоваться под одной уз в один момент времени(

Еще вопрос небольшой.

У сквида в конфиг чувствителен к порядку параметров в строчках?

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

Посмотрите логи, может squid'у какой параметер в конфиге не нравится и он его игнорирует, допустим, хочет ″minute", без ″s″ на конце и увеличивайте «authenticate_ip_ttl».

к порядку параметров в строчках

Смотря каких. acl не важно в каком порядке описывать, а http_access применяются в указаном порядке. https://wiki.squid-cache.org/SquidFaq/OrderIsImportant

p.s. Используйте теги для оформления поста, чтобы всё в одну строку не сливалось. Под формой ввода сообщения две ссылки на описание разметки поста, а над формой выбор разметки.

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

В логах все ок. Даже фиксирует попытку авторизации под одним логином с другого ip.

на данный момент вроде как работает, но раз через раз. Авторизация все равно проходит, но сквид как то непонятно работает. Иногда сразу закрывает соединение, если на втором пк авторизоваться и попробовать что-то открыть, иногда открывает страницу, если обновить страницу, то снова сбрасывает соединение. В общем я уже ничего не понимаю)

Сейчас конфиг такой:

http_port 3128

auth_param basic program /usr/lib64/squid/basic_ncsa_auth

/etc/squid/TEST

auth_param basic concurrency 1

auth_param basic realm TEST-provisioning

auth_param basic credentialsttl 5 minutes

acl block_ip max_user_ip -s 1

acl user proxy_auth «/etc/squid/TEST»

acl user1 proxy_auth TEST1 REQUIRED

acl user2 proxy_auth TEST2 REQUIRED

acl user3 proxy_auth TEST3 REQUIRED

acl user4 proxy_auth TEST4 REQUIRED

acl user5 proxy_auth TEST5 REQUIRED

acl user6 proxy_auth TEST6 REQUIRED

acl host1 url_regex ^http://192.168.0.1/

acl host2 url_regex ^http://192.168.1.1/

acl host3 url_regex ^http://192.168.10.1/

acl host4 url_regex ^http://192.168.31.1/

acl host5 url_regex ^http://192.168.88.1/

acl host6 url_regex ^http://192.168.100.1/

authenticate_ip_ttl 5 minutes

deny_info TCP_RESET block_ip

http_access deny user1 block_ip

http_access deny user2 block_ip

http_access deny user3 block_ip

http_access deny user4 block_ip

http_access deny user5 block_ip

http_access deny user6 block_ip

http_access deny user block_ip

http_access allow user1 host1

http_access allow user2 host2

http_access allow user3 host3

http_access allow user4 host4

http_access allow user5 host5

http_access allow user6 host6

http_access deny all

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

"

Иногда сразу закрывает соединение, если на втором пк авторизоваться и попробовать что-то открыть, иногда открывает страницу

Это похоже на поведение ″max_user_ip″ без опции ″-s″. Возможно, ошибка в исходом коде squid'а.

mky ★★★★★ ()
Ответ на: " от mky

Похоже так и есть. Такая ситуация только в CentOS 7. Там последняя версия сквида 3.5.20. Настроил тот же конфиг на CentOS 8 с версией сквида 4.4 и все четко работает.

r4w3e5 ()