Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Samba+Squid+AD+ntlm () / 5 сообщений из 5, страница 1 из 1
14.01.2012, 13:29
    #37614411
zhum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Samba+Squid+AD+ntlm ()
Добрый день!
Установлен на SUSE Linux Enterprise Server 11 PATCHLEVEL=1, прокси сервер Squid Version 2.7.STABLE5.
Задача стоит:
1. Настроит авторизацию пользователей интернет через домен Active Directory(AD), причем без ввода пароля. Т.е. зашел в домен под своим логином, запустил браузер а там интернет.
2. Разграничить доступ пользователей через группы в AD. Т.е. вхождение пользователя в определенную группу в AD определяет их уровень доступа.
3. Авторизация из нескольких отдельно живущих доменов (отдельные домены). Хотя это маловероятно, но если есть возможность нужно сделать.

Руководствуясь статями http://www.lissyara.su/articles/freebsd/programms/squid+ad ,
http://www.lissyara.su/articles/freebsd/programms/squid+ad+group_access
1. настроил smb.conf
2. настроил krb5.conf
3. настроил nsswitch.conf
4. включил сервер в домен AD
5. настроил squid.conf
6. запустил winbindd
7. запустил squid

smb.conf
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
[global]
#NETBIOS name of AD domain
        workgroup = MYDOMAIN
        security = ADS
        realm = MYDOMAIN.RU
        password server = srvad.mydomain.ru
        passdb backend = tdbsam
        netbios name = squid1
#SAMBA does not PDC
        local master = no
        domain master = no
        preferred master = no
        domain logons = no
        os level = 0
#Charactertset settings
        display charset = koi8-r
        unix charset = koi8-r
        dos charset = cp866
#Use encrypted password
        encrypt passwords = yes
#WINBIND settings
        winbind use default domain = yes
        winbind uid = 10000-20000
        winbind gid = 10000-20000
        winbind enum users = yes
        winbind enum groups = yes
...



krb.conf
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
[libdefaults]
        default_realm = MYDOMAIN.RU

[realms]
        MYDOMAIN.RU = {
                kdc = srvad2.mydomain.ru
                admin_server = srvad2.mydomain.ru
        }
[domain_real]
        .mydomain.ru = MYDOMAIN.RU

[logging]
    kdc = FILE:/var/log/krb5/krb5kdc.log
    admin_server = FILE:/var/log/krb5/kadmind.log
    default = SYSLOG:NOTICE:DAEMON



nsswitch.conf
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
passwd: files winbind
group: files winbind

group_compat: nis
passwd_compat: nis
shells: files

hosts:  files dns
networks:       files dns

services:       files
protocols:      files
rpc:    files
ethers: files
netmasks:       files
netgroup:       files nis
publickey:      files

bootparams:     files
automount:      files nis
aliases:        files



Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on

external_acl_type nt_group %LOGIN /usr/sbin/wbinfo_group.pl

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl shoutcast rep_header X-HTTP09-First-Line ^ICY\s[0-9]
acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

access_log /var/log/squid/access.log squid

acl blocksites url_regex -i "/etc/squid/bad.regex"
acl inetg external nt_group inetg

http_access allow inetg
http_access deny blocksites
acl rozoffice src 192.168.52.0/255.255.255.0 ##my localnet
http_access allow rozoffice
http_access deny all

hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
....




1. Для теста создал группу inetg в AD. Туда включил пользователя inetu. Потом начал проверять. Оказалось что правила не работает. Т.е. входит пользователь inetu в группу inetg или нет прокси все равно пускает в интернет.
2. "echo inetu inetg | wbinfo_group.pl" отрабатывает через раз. т.е. не всегда выдает актуальную информацию (хотя два дня подряд беспроблем отрабатывал, пусть с опозданием на 1-1,5 минуты, но исправно видел пользователя и его группу.)
3. Еще одна проблема который заметил недавно, при получении списка групп пользователя командой "wbinfo -r username", возвращает не полный список групп пользователя. Например если посмотреть через консоль AD то у пользователя 10 групп, а команда wbinfo -r возвращает только 5.


помогите пожалуйста с советом, опытом. У кого уже работает такая схема авторизации.
...
Рейтинг: 0 / 0
14.01.2012, 14:38
    #37614460
zhum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Samba+Squid+AD+ntlm ()
Выяснил что билет Kerberos просрочен, а я думал автоматом продлевается. Обновил билет "kinit domainadmin".

и в squid.conf-е добавил require:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=MYDOMAIN\\inetg

в таком виде работает. Странно, я должен каждую группу AD дописывать как здесь (да и какой формат если много групп)?
...
Рейтинг: 0 / 0
16.01.2012, 10:35
    #37615800
bga83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Samba+Squid+AD+ntlm ()
zhumexternal_acl_type nt_group %LOGIN /usr/sbin/wbinfo_group.pl


zhumauth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=MYDOMAIN\\inetg


тут два варианта: либо проверять принадлежность группе через хелпер, либо скриптом wbinfo_group.pl. Я предпочитаю второй вариант, так как меньше писанины в конфиге. Но надо иметь ввиду, что при установке сквида и самбы в системе будут присутствовать два экземпляра этого скрипта, причем они не идентичны. Если не ошибаюсь, то нужен тот, что идет в сквиде.

Если есть проблемы, то начать с того, что протестировать работу скрипта на корректность возвращаемых данных.
...
Рейтинг: 0 / 0
16.01.2012, 16:17
    #37616558
zhum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Samba+Squid+AD+ntlm ()
wbinfo_group.pl как раз таки и юзает wbinfo.
...
Рейтинг: 0 / 0
06.04.2012, 06:19
    #37741304
zhum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Samba+Squid+AD+ntlm ()
Тема закрыта.
Не удалось таки мне заставит авторизовать через winbind.

Аутентификацию оставил на ntlm_auth, так как без него никак нельзя. А авторизация сделал через squid_ldap_auth.

p/s аутентификация заработала и на squid_kerb_auth, но из за не адекватности поведения хостов вне домена пришлось отказаться в пользу ntlm_auth.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Samba+Squid+AD+ntlm () / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]