Squid3 авторизация через Activ Directory и блокировка по пользователю
Squid3 авторизация через AD и блокировка по пользователю
И на мою голову прилетела эта задача, статья будет короткой со ссылкой на другой блог автора по которому все делалось но были некоторые изменения.
Вначале рекомендую посмотреть в этой статье какие изменения делались мной, а потом прочитать и сделать так как написано у автора применяя мои изменения, т.к. некоторые моменты в статье у автора у squid3 изменены или отсутствуют.
Статья по которой настраивал сквид k-max.name/linux/avtorizaciya-autentifikaciya-squid/, начинаем читать полностью но основная задача сделать как написано в пункте "Negotiate - метод аутентификации в squid" и затем вот эта k-max.name/linux/squid-auth-kerberos-ldap-grupp-active-directory/
Выполнить все как пишет автор с ссылками на другие статьи с некоторыми оговорками.
1. я не использовал группы для доступа, просто авторизация
2. нужно будет создать в компьютер с именем прокси сервера (об этом автор пишет в самом начале одной из статей), это нужно для обмена ключика между AD и прокси сервером.
3. смотрите внимательно на конфигурационный файл сквида и те пути которые указаны у автора, в squid3 на debian 8 они другие (исполняемые файлы другие, смотри на мои ремарки)
4. блокировки я делал через файлы.
Как в итоге выглядит файл squid.conf у меня
1 2 3 4 5 6 7 8 9 |
</p> <p>acl SSL_ports port 443<br /> acl Safe_ports port 80 # http<br /> acl Safe_ports port 21 # ftp<br /> acl Safe_ports port 443 # https<br /> acl Safe_ports port 70 # gopher<br /> acl Safe_ports port 210 # wais<br /> acl Safe_ports port 1025-65535 # unregistered ports<br /> acl Safe_ports port 280 # http-mgmt<br /> acl Safe_ports port 488 # gss-http<br /> acl Safe_ports port 591 # filemaker<br /> acl Safe_ports port 777 # multiling http<br /> acl CONNECT method CONNECT<br /> http_access deny !Safe_ports<br /> http_access deny CONNECT !SSL_ports<br /> http_access allow localhost manager<br /> http_access deny manager<br /> http_access allow localhost</p> <p>#squid basic аутентификация (пользователи создаются чере htpasswd /etc/squid3/squidusers username)<br /> #auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/squidusers<br /> #acl lan proxy_auth REQUIRED</p> <p># указание, какой хелпер использовать с каким SPN<br /> auth_param negotiate program /usr/lib/squid3/negotiate_kerberos_auth -s HTTP/proxy.office.local@MYCOMPANY.LOCAL -d<br /> # сколько параллельных потоков запускать для обслуживания аутентификации клиентов<br /> auth_param negotiate children 10<br /> # указывает поддерживать связь, а не обрывать, когда браузер опрашивает схемы аутентификации<br /> auth_param negotiate keep_alive on<br /> acl lan proxy_auth REQUIRED</p> <p>#блокировка запрещенных сайтов для всех<br /> acl badsites dstdomain "/etc/squid3/badsites"<br /> http_access deny badsites</p> <p>#блокировка сайтов для уникальных юзверей Group1<br /> acl username proxy_auth "/etc/squid3/username_group1_deny"<br /> acl badsites_group1_deny dstdomain "/etc/squid3/badsites_group1_deny"<br /> http_access deny username badsites_group1_deny</p> <p>#разрешить доступ из lan<br /> http_access allow lan</p> <p>cache_mem 300 MB<br /> http_access deny all<br /> http_port 3128<br /> coredump_dir /var/spool/squid3<br /> refresh_pattern ^ftp: 1440 20% 10080<br /> refresh_pattern ^gopher: 1440 0% 1440<br /> refresh_pattern -i (/cgi-bin/|\?) 0 0% 0<br /> refresh_pattern . 0 20% 4320<br /> visible_hostname = proxy</p> <p> |
Грабли на которые натыкался и не понимал как squid должен понять откуда брать krb5.keytab.
Вот в этой статье http://www.k-max.name/windows/active-directory-as-kdc-nfsv4/ пункт 2.5. "Настройка клиента Kerberos для аутентификации через keytab". Не забудьте его выполнить осмысленно, в соответствии с задачей по AD
Далее, обратите внимание (ну лично я обратил, т.к. делал все быстро и не особо вчитывался), в статье k-max.name/linux/avtorizaciya-autentifikaciya-squid/ , пункт 3. "Настройка squid на проверку подлинности через Kerberos в домене Windows 2008 R2." файла и папки "/etc/default/squid3" у меня не было, нужно было создать.
Файлы которые используются у меня:
badsites (как правильно писать блокировки)
1 2 3 |
</p> <p>.mail.google.com<br /> .accounts.google.com<br /> .auth.mail.ru<br /> .e.mail.ru<br /> .passport.yandex.ru<br /> .mail.yandex.ru<br /> .vk.com<br /> .vk.ru<br /> .facebook.ru<br /> .facebook.com</p> <p> |
badsites_group1_deny (блокировка для группы пользователей 1 - для примера)
1 2 3 |
</p> <p>.myip.ru<br /> .rabota.ru</p> <p> |
username_group1_deny (пользователи группы 1 для которых запрещены сайт из группы 1 - для примера, как точно блокировать подбирал методом тыка, но говорят что нужно указывать полностью с доменом)
1 2 3 |
</p> <p>Administrator<br /> administrator<br /> Administrator@MYCOMPANY.LOCAL</p> <p> |
Свежие комментарии