Squid + Sams + Samba + NTLM + опухшая голова
Всем доброго времени суток... прошу помощи ибо уже 2 дня ковыряюсь, но ничего не выходит...
в общем ситуация такая, есть Windows Server 2003 с AD (STINKY.SPB.RU) и есть Сервак на Gentoo, на котором собирал данную свзяку, необходимо чтобы пользователи AD вписав в свой интернет эксплорер адрес прокси сервера смогли пользоваться этой проксей на полную, но этого почему-то нет..
по команде wbinfo -u показывает список пользователей домена, wbinfo -g показывает список групп, тут все хорошо, в SAMS также при выборе NTLM аунтификации выводит список пользователей, если выбрать Active Directory то так почему-то ничего нету, ну видимо так и должно быть.. собсвтенно прокся поднята, пользователь садиться за комп, вбивает адрес ya.ru и его посылают подальше ну а в логах мы видим следующее:
1307557458.825 1 192.168.0.113 TCP_DENIED/403 3818 GET http://google.com/ - NONE/- text/html 1307557458.832 0 192.168.0.113 TCP_DENIED/403 3934 GET http://www.squid-cache.org/Artwork/SN.png - NONE/- text/html 1307557521.733 1 192.168.0.113 TCP_DENIED/403 3818 GET http://google.com/ - NONE/- text/html 1307557521.738 1 192.168.0.113 TCP_DENIED/403 3934 GET http://www.squid-cache.org/Artwork/SN.png - NONE/- text/html 1307557531.047 1 192.168.0.113 TCP_DENIED/403 3818 GET http://google.com/ - NONE/- text/html 1307557531.054 1 192.168.0.113 TCP_DENIED/403 3934 GET http://www.squid-cache.org/Artwork/SN.png - NONE/- text/html 1307558263.758 1 192.168.0.113 TCP_DENIED/403 3818 GET http://google.com/ - NONE/- text/html 1307558263.765 1 192.168.0.113 TCP_DENIED/403 3934 GET http://www.squid-cache.org/Artwork/SN.png - NONE/- text/html
т.е. он почему-то не видит пользоваетля AD а видит NONE, т.е. рискну предположить что ntlm аунтификация не проходит... подскажите пожалуйст что делать... выкладываю конфиги как есть, всем заранее спасибо
исходные данные
домен: stinky.spb.ru
win2003 ad: 192.168.0.101 / server10.stinky.spb.ru
squid.conf
redirect_program /usr/bin/samsredir redirect_children 5 auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=STINKY.SPB.RU+"Domain Users" auth_param ntlm children 250 auth_param ntlm keep_alive on auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of=STINKY.SPB.RU+"Domain Users" auth_param basic children 20 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl manager proto cache_object acl localhost src acl to_localhost dst acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all icp_access allow all http_port 3128 hierarchy_stoplist cgi-bin ? cache_mem 128 MB maximum_object_size_in_memory 512 KB cache_dir ufs /var/cache/squid 16384 16 256 maximum_object_size 8092 KB access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log mime_table /etc/squid/mime.conf ftp_user anonymous@qwerty acl QUERY urlpath_regex cgi-bin \? cache deny QUERY refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl apache rep_header Server ^Apache dns_nameservers 10.0.0.3 10.0.0.5 forwarded_for off coredump_dir /var/cache/squid
sams.conf
[client] SQUID_DB=squidlog SAMS_DB=squidctrl MYSQLHOSTNAME=127.0.0.1 MYSQLUSER=sams MYSQLPASSWORD=sams MYSQLVERSION=5.1 SQUIDCACHEFILE=access.log SQUIDROOTDIR=/etc/squid SQUIDLOGDIR=/var/log/squid SQUIDCACHEDIR=/var/cache/squid SAMSPATH=/usr/ SQUIDPATH=/usr/sbin SQUIDGUARDLOGPATH=/var/log #SQUIDGUARDDBPATH=/var/db/squidguard RECODECOMMAND=iconv -f UTF-8 -t 866 %finp > %fout #LDAPSERVER=stream #LDAPBASEDN=stinky.spb.ru #LDAPUSER= #LDAPUSERPASSWD=holykirka #LDAPUSERSGROUP=Users #REJIKPATH=/usr/local/rejik SHUTDOWNCOMMAND=shutdown -h now CACHENUM=0
smb.conf
[global] workgroup = STINKY netbios name = proxy2 server string = Super Puper Gentoo Linux Server %v log file = /var/log/samba/log.%m max log size = 50 log level = 3 hosts allow = 192.168.0.0/24 127.0.0.1 map to guest = bad user realm = server10.stinky.spb.ru nt acl support = yes nt status support = yes security = ads password server = 192.168.0.101 encrypt passwords = yes winbind separator = + winbind uid = 10000-20000 winbind gid = 10000-20000 winbind enum groups = yes winbind enum users = yes template homedir = /home/%D/%U template shell = /bin/bash socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384 interfaces = 192.168.0.248/24 local master = no os level = 0 domain master = no preferred master = no domain logons = no name resolve order = host lmhosts bcast dns proxy = no [public] comment = Public Stuff path = /home/public public = yes writable = yes browserable = yes inherit acls = yes inherit permissions = yes create mask = 600 directory mask = 600
krb5.conf
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = STINKY.SPB.RU dns_lookup_realm = false dns_lookup_kdc = false [realms] ZAVOD.LOCAL = { kdc = server10.STINKY.spb.ru admin_server = server10.STINKY.spb.ru default_domain = stinky.spb.ru } [domain_realm] .stinky.spb.ru = stinky.SPB.RU stinky.spb.ru = stinky.SPB.RU [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
- Для комментирования войдите или зарегистрируйтесь
Все свалил в кучу. Разделяй и
Все свалил в кучу. Разделяй и влавствуй, так сказать.
Самс отключить , сквид отключить. Пинаем самбу wbinfo -g, wbinfo -u ... wbinfo -a ДОМЕН\\юзер%пассворд. Все должно проходить на ура.
Далее идем пинать сквид.
####################################################################################################
#Параметры прокси сервера #
####################################################################################################
http_port 3128
access_log /var/log/squid/access.log squid
cache_store_log /var/log/squid/store.log
cache_log /var/log/squid/cache.log
####################################################################################################
#Схемы авторизации #
####################################################################################################
#Настройки схемы ntlm для интернет эксплорера
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 100
auth_param ntlm keep_alive on
#Настройки схемы basic для прочих браузеров
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 30
auth_param basic realm Squid proxy-caching web server basic
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
.....
Далее все временно закоментировать. Проверить работу ntlm_auth
/usr/bin/ntlm_auth --domain=ДОМЕН --password=Пассворд --username=имяпользователя. Должно ответить NT_STATUS_OK: Success (0x0)
В вашем примере требуется вхождение юзверя в доменную группу. ИМХО зря ибо вы собираетесь управлять сквидом через самс. В любом случае эту программку нужно запускать до посинения, чтоб она выдавала ок со всеми выбранными вами параметрами кроме хелперпротокола.
В вашем случае имхо косячит /usr/bin/ntlm_auth --require-membership-of=STINKY.SPB.RU+"Domain Users"
Затем оттестированные параметры перенести в конфиг сквида. После тестирования схемы авторизации можно попробовать вручную пропустить авторизованных юзеров в нет. Для чего сразу после схемы авторизации временно прописываем следующее:
acl DOMAIN_USERS proxy_auth REQUIRED
http_access allow DOMAIN_USERS
http_access deny All
После этого реконфигурируем сквид и пытаемся пролезть через него в нет, внимательно наблюдая за логами. Как только отладите схему авторизации и поймете что именно надо писать в поле юзер можно закомментировать временную дырку и вдумчиво продолжить конфигурацию сквида. У меня мозилка требует ДОМЕН\юзер. Интернет эксплорер должен пускать без вопросов.
После закомментированных тестовых настроек необходимо добавить собственные неуправляемые настройки.
####################################################################################################
#Настройки доступа #
####################################################################################################
#Списки доступа
acl FROMLOCALNET src 10.254.0.0/16
acl TOLOCALNET dst 10.254.0.0/16
acl wsus src 10.254.0.34
#Сайты без авторизации
acl GoodSites dstdomain .1gl.ru .1gl-vip.ru .glavbukh.ru .gentoo.ru .gentoo.org .icm.ru 213.33.238.188 .34gaz.ru .skbkontur.ru .kontur-extern.ru .kaspersky.ru .kaspersky-labs.com .kav.ru .gazprommrg.ru .transneft.ru .mrg.ru .gazprom.ru .gaz-is.ru .34regiongaz.ru .gz-volga.ru .zakupki.gov.ru
acl ICQ_PORTS port 443 563 5190
acl CONNECT method CONNECT
http_access allow BuhGL
....
Тут вы вольны прописать все что хотите оставить неизменным.
Далее вы должны указать самсу место для вставки своих записей. Делается это путем добавления комментариев TAG (именно с теми пробелами как дано
#
# Следующие строки управляются SAMS
#
# TAG: acl
# TAG: http_access
#Конец управляемых настроек
http_access deny all
Изменения конфы самс будет пихать после # TAG: до первого коммента.
Таким образом мы указали самсу место куда пихать свои акцесс листы и разрешения.
После управляемых настроек самса я бы временно сделал Дырку для юзеров домена. Чтобы пускать их мимо самса. Это позволит отлаживать самс не прерывая доступа юзверей в нет.
#Конец управляемых настроек
acl DOMAIN_USERS proxy_auth REQUIRED
http_access allow DOMAIN_USERS
http_access deny All
wbinfo -a
plaintext password authentication failed
Could not authenticate user Administrator%passwrd with plaintext password
challenge/response password authentication succeeded
plaintext password authentication failed
Could not authenticate user STINKY\Administrator%passwrd with plaintext password
challenge/response password authentication failed
error code was NT_STATUS_NO_SUCH_USER (0xc0000064)
error messsage was: No such user
Could not authenticate user STINKY\Administrator with challenge/response
это нормально??
Да. Совсем забыл. Во время
Да. Совсем забыл. Во время работы самс генерит регистрозависимые правила. Это делает невозможным работу некоторых приложений, которые играются с регистром как хотят.
В изначальном варианте кацесслист самса выглядит примерно так:
acl Sams2Template1 proxy_auth DOMEN\user
Тоесть домен заглавными, юзер прописными. Иначе не пустит. Короче имхо это баг. И его надо поправить. Правило должно генериться в следующем виде
acl Sams2Template1 proxy_auth -i DOMEN\user
Тогда регистр не важен. Все просто, распаковываем сурс, ищем место где формируется строка и правим. Сурсы там не мудреные. Короче нано и греп в помощь. Ежели сильны в ебилдостроении можете запихать патч в ебилд.
Опрос AD из sams должен
Опрос AD из sams должен возвращать пользователей - это залог победы. Скорее всего, у тебя неправильно прописан путь к wbinfo в настройках sams.
Не грусти, товарищ! Всё хорошо, beautiful good!
sams видит пользоваетелей AD
sams видит пользоваетелей AD значит путь верный
В итоге...
В общем собрал чистую генту поставил только squid и samba
в результате:
ввожу в IE адрес прокси, набираю ya.ru
почему-то затребовал логи пасс.. ввожу STINKY\Administrator и пароль в сквиде такой лог...
kerberos
Предлагаю Вам забыть об использовании sambы.
Сквид прекрасно работает через gssapi.
Лучше используйте kerberos.
Если будут вопросы задавайте смело. Имею в наличии боевую связку.
я бы с радостью, если
я бы с радостью, если подскажите как собрать такуюже боевую связку )
Stinkybob написал(а): я бы с
На выходных напишу статью...
/var/cache/samba/winbindd_pri
/var/cache/samba/winbindd_privileged - права...
Не грусти, товарищ! Всё хорошо, beautiful good!
У вас в конфиге самбы винбинд
Действительно права доступа к файлу надо поправить. У вас в конфиге самбы винбинд сепаратор выставлен в +. Закоммент ируйте. Тогда по умолчанию будет \. В консоли придется писать ДОМЕН\\юзер. В Мозилле все то же, только с одним слешом. ИЕ дожен авторизоваться без запроса. Впрочем и сплюсом работать должно. На самом деле интересна авторизация через /usr/bin/ntlm_auth . Браузер это следующий этап отладки. На время отладки сквид полезно запускать не скриптом инициализации, а напрямую из командной строки с параметрами. Он тогда прямо в консоль ругается, и достаточно внятно
wi написал(а):Действительно
эти права сейчас, какие надо?