Не работает авторизация Squid + AD

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 10:39:03

Ребята первый раз навастриваю прокси сервер, так что не судите строго.
Задача: Настроить прокси сервер с авторизация в АД и управление доступов в инет через группы в АД
OS:

Код: Выделить всё

 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789
SAMBA:

Код: Выделить всё

Samba version 4.1.7
SQUID:

Код: Выделить всё

root@proxysrv:/var/log/squid # squid -v
Squid Cache: Version 3.3.11
configure options:  '--with-default-user=squid' '--bindir=/usr/local/sbin' '--sbindir=/usr/local/sbin' '--datadir=/usr/local/etc/squid' '--libexecdir=/usr/local/libexec/squid' '--localstatedir=/var' '--sysconfdir=/usr/local/etc/squid' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/squid/squid.pid' '--with-swapdir=/var/squid/cache/squid' '--enable-auth' '--enable-build-info' '--enable-loadable-modules' '--enable-removal-policies=lru heap' '--disable-epoll' '--disable-linux-netfilter' '--disable-linux-tproxy' '--disable-translation' '--enable-auth-basic=DB MSNT MSNT-multi-domain NCSA PAM POP3 RADIUS  fake getpwnam LDAP SMB NIS' '--enable-auth-digest=file' '--enable-external-acl-helpers=file_userip time_quota unix_group LDAP_group wbinfo_group' '--enable-auth-negotiate=kerberos wrapper' '--enable-auth-ntlm=fake smb_lm' '--enable-storeio=diskd rock ufs aufs' '--enable-disk-io=AIO Blocking DiskDaemon IpcIo Mmapped DiskThreads' '--enable-log-daemon-helpers=file' '--enable-url-rewrite-helpers=fake' '--disable-ipv6' '--enable-icmp' '--enable-htcp' '--disable-forw-via-db' '--disable-cache-digests' '--enable-wccp' '--enable-wccpv2' '--enable-eui' '--enable-ipfw-transparent' '--disable-pf-transparent' '--disable-ipf-transparent' '--disable-follow-x-forwarded-for' '--disable-ecap' '--disable-icap-client' '--disable-esi' '--enable-kqueue' '--with-large-files' '--prefix=/usr/local' '--mandir=/usr/local/man' '--infodir=/usr/local/info/' '--build=amd64-portbld-freebsd10.0' 'build_alias=amd64-portbld-freebsd10.0' 'CC=cc' 'CFLAGS=-O2 -pipe -I/usr/local/include -DLDAP_DEPRECATED -fno-strict-aliasing' 'LDFLAGS= -L/usr/local/lib -pthread' 'CPPFLAGS=' 'CXX=c++' 'CXXFLAGS=-O2 -pipe -I/usr/local/include -DLDAP_DEPRECATED -fno-strict-aliasing -Wno-unused-private-field' 'CPP=cpp' --enable-ltdl-convenience
smd4.conf

Код: Выделить всё

#======================= Global Settings ============================
[global]
workgroup = MYCOMPANY
server string = Corporate Proxy Server
security = ADS
hosts allow = 192.168.6.
log file = /var/log/samba4/log.%m
max log size = 1024
password server = dc-b2.mycompany.ua
realm = mycompany.ua
passdb backend = tdbsam
socket options = TCP_NODELAY
local master = no
os level = 0
domain master = no
preferred master = no
domain logons = no
unix charset = KOI8-R
dos charset = cp866
winbind use default domain = no
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes


# --------------------------- Printing Options -----------------------------

    load printers = no
krb5.conf

Код: Выделить всё

[libdefaults]
default_realm = MYCOMPANY.UA
[realms]
MYCOMPANY.UA = {
kdc = dc2.mycompany.ua
admin_server = dc-b2.mycompany.ua
kpasswd_server = dc-b2.mycompany.ua
}

[domain_realm]
.mycompany.ua = MYCOMPANY.UA
mycompany.ua = MYCOMPANY.UA

[login]
krb4_convert=true
krb4_get_tickets = false

[logging]
default = FILE:/var/log/kerberos/krb5libs.log
kdc = FILE:/var/log/kerberos/krb5kdc.log
admin_server = FILE:/var/log/kerberos/kadmin.log
squid.conf (Конфиг минимальный для проверки авторизации)

Код: Выделить всё

root@proxysrv:/var/log/squid # cat /usr/local/etc/squid/squid.conf

http_port 192.168.6.31:3128
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 1024 MB
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log none
hosts_file /etc/hosts
append_domain .mycompany.ua
logfile_rotate 10

auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 100
auth_param ntlm keep_alive on

auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 40
auth_param basic realm Squid proxy server
auth_param basic credentialsttl 5 minutes
auth_param basic casesensitive off
authenticate_ttl 5 minutes
authenticate_ip_ttl 1 minutes

acl ntlm proxy_auth REQUIRED
http_access allow ntlm all
http_access deny all
error_directory /usr/local/etc/squid/errors/ru

Код: Выделить всё

wbinfo -g и wbinfo -u 
Выводят список групп и пользователей
Но при попытке идти в инет постоянно выскакивает окно авторизации

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 10:40:42

Вот лог файл cache.log

Код: Выделить всё

2014/06/17 10:37:07 kid1| Starting Squid Cache version 3.3.11 for amd64-portbld-freebsd10.0...
2014/06/17 10:37:07 kid1| Process ID 1420
2014/06/17 10:37:07 kid1| Process Roles: worker
2014/06/17 10:37:07 kid1| With 14094 file descriptors available
2014/06/17 10:37:07 kid1| Initializing IP Cache...
2014/06/17 10:37:07 kid1| DNS Socket created at 0.0.0.0, FD 7
2014/06/17 10:37:07 kid1| Adding domain budmen.ua from /etc/resolv.conf
2014/06/17 10:37:07 kid1| Adding nameserver 192.168.6.221 from /etc/resolv.conf
2014/06/17 10:37:07 kid1| Adding nameserver 192.168.73.254 from /etc/resolv.conf
2014/06/17 10:37:07 kid1| Adding nameserver 8.8.8.8 from /etc/resolv.conf
2014/06/17 10:37:07 kid1| helperOpenServers: Starting 0/100 'ntlm_auth' processes
2014/06/17 10:37:07 kid1| helperStatefulOpenServers: No 'ntlm_auth' processes needed.
2014/06/17 10:37:07 kid1| helperOpenServers: Starting 0/40 'ntlm_auth' processes
2014/06/17 10:37:07 kid1| helperOpenServers: No 'ntlm_auth' processes needed.
2014/06/17 10:37:07 kid1| Logfile: opening log /var/log/squid/access.log
2014/06/17 10:37:07 kid1| WARNING: log parameters now start with a module name. Use 'stdio:/var/log/squid/access.log'
2014/06/17 10:37:07 kid1| Store logging disabled
2014/06/17 10:37:07 kid1| Swap maxSize 0 + 1048576 KB, estimated 80659 objects
2014/06/17 10:37:07 kid1| Target number of buckets: 4032
2014/06/17 10:37:07 kid1| Using 8192 Store buckets
2014/06/17 10:37:07 kid1| Max Mem  size: 1048576 KB
2014/06/17 10:37:07 kid1| Max Swap size: 0 KB
2014/06/17 10:37:07 kid1| Using Least Load store dir selection
2014/06/17 10:37:07 kid1| Current Directory is /var/squid
2014/06/17 10:37:07 kid1| Loaded Icons.
2014/06/17 10:37:07 kid1| HTCP Disabled.
2014/06/17 10:37:07 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted
2014/06/17 10:37:07 kid1| Pinger socket opened on FD 11
2014/06/17 10:37:07 kid1| Squid plugin modules loaded: 0
2014/06/17 10:37:07 kid1| Accepting HTTP Socket connections at local=192.168.6.31:3128 remote=[::] FD 9 flags=9
2014/06/17 10:37:07| pinger: Initialising ICMP pinger ...
2014/06/17 10:37:07| pinger: ICMP socket opened.
2014/06/17 10:37:08 kid1| storeLateRelease: released 0 objects
2014/06/17 10:37:11 kid1| Starting new ntlmauthenticator helpers...
2014/06/17 10:37:11 kid1| helperOpenServers: Starting 1/100 'ntlm_auth' processes
2014/06/17 10:37:11 kid1| WARNING: no_suid: setuid(0): (1) Operation not permitted
2014/06/17 10:37:11 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:12 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:12 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:13 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:16 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:22 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:30 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:36 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:37:37 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:38:12 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:38:15 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:38:31 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
2014/06/17 10:38:38 kid1| ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение snorlov » 2014-06-17 11:36:07

А что выдают

Код: Выделить всё

id <пользователь>
getent <пользователь>

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 11:57:26

Код: Выделить всё

id testuser@mycompany.ua
uid=10000(MYCOMPANY\testuser) gid=10003(MYCOMPANY\пользователи домена) groups=10003(MYCOMPANY\пользователи домена),10006(MYCOMPANY\mssqladmin),10012, 10015(MYCOMPANY\alfresco_it),10016(MYCOMPANY\mssql_group),10017(MYCOMPANY\efs_user_enable),10018(MYCOMPANY\администраторы домена),10019(MYCOMPANY\proxyfullaccess),10020,10021,10022(MYCOMPANY\группа с запрещением репликации паролей rodc),10001(BUILTIN\users),10000(BUILTIN\administrators)

Код: Выделить всё

 getent testuser@mycompany.ua
Unknown database: testuser@mycompany.ua
Usage: getent database [key ...]
       database may be one of:
         ethers group hosts networks passwd protocols rpc services shells netgroup utmpx
Но пользователя нужно писать testuser@mycompany.ua а не просто testuser

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение snorlov » 2014-06-17 12:36:02

Извини надо

Код: Выделить всё

getent passwd
getent group

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 12:40:26

snorlov писал(а):Извини надо

Код: Выделить всё

getent passwd
getent group

Код: Выделить всё

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



Код: Выделить всё

getent group
wheel:*:0:root
daemon:*:1
kmem:*:2
sys:*:3
tty:*:4
operator:*:5:root
mail:*:6
bin:*:7
news:*:8
man:*:9
games:*:13
ftp:*:14
staff:*:20
sshd:*:22
smmsp:*:25
mailnull:*:26
guest:*:31
bind:*:53
unbound:*:59
proxy:*:62
authpf:*:63
_pflogd:*:64
_dhcp:*:65
uucp:*:66
dialer:*:68
network:*:69
audit:*:77
www:*:80
hast:*:845
nogroup:*:65533
nobody:*:65534
squid:*:100
cyrus:*:60
messagebus:*:556
avahi:*:558
cups:*:193

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение snorlov » 2014-06-17 12:43:18

Проверьте права на var/db/samba/winbindd_privileged, там либо поставить 0777 либо через setfacl дать rwx squid:squid

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 13:03:22

Код: Выделить всё

ls -l /var/db/samba4/winbindd_privileged
total 0
srwxrwxrwx  1 root  squid  0 Jun 17 11:52 pipe

Это нормально что winbindd_privileged это папка а не файл?

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение snorlov » 2014-06-17 13:43:53

harlins писал(а):

Код: Выделить всё

ls -l /var/db/samba4/winbindd_privileged
total 0
srwxrwxrwx  1 root  squid  0 Jun 17 11:52 pipe

Это нормально что winbindd_privileged это папка а не файл?
Нормально, getent group должен показывать группы АД, посмотри nsswitches.conf для групп

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 13:49:38

Код: Выделить всё

cat /etc/nsswitch.conf
#
# nsswitch.conf(5) - name service switch configuration file
# $FreeBSD: release/10.0.0/etc/nsswitch.conf 224765 2011-08-10 20:52:02Z dougb $
#
#group: compat
group: files winbind
group_compat: nis
hosts: files dns
networks: files
#passwd: compat
passwd: files winbind
passwd_compat: nis
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение snorlov » 2014-06-17 13:59:42

Может нет из-за того, что в smb.conf нет winbind nested group =yes...

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 14:14:24

snorlov писал(а):Может нет из-за того, что в smb.conf нет winbind nested group =yes...
Самба говорит что неизвестный параметр

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение snorlov » 2014-06-17 14:58:45

harlins писал(а):
snorlov писал(а):Может нет из-за того, что в smb.conf нет winbind nested group =yes...
Самба говорит что неизвестный параметр

Код: Выделить всё

winbind nested groups =yes
Сделайте зашаренный ресурс, включите в самбе логи, и при коннекте в этот ресурс посмотрите на что она конкретно ругается...

harlins
рядовой
Сообщения: 14
Зарегистрирован: 2014-06-10 11:28:08

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение harlins » 2014-06-17 15:17:39

Нашел в логах винбинда вот такую ошибку

Код: Выделить всё

[2014/06/17 15:01:46.282951,  0] ../lib/util/charset/convert_string.c:438(convert_string_talloc_handle)
  Conversion error: Illegal multibyte sequence()
Может это из-за нее?

Гость
проходил мимо

Re: Не работает авторизация Squid + AD

Непрочитанное сообщение Гость » 2014-07-02 9:47:17

Был точно такой же косяк, для диагностики в squid.conf прописал

Код: Выделить всё

debug_options ALL,1 33,2 28,9
Потом перезапустил squid, попробовал зайти через браузер на ya.ru, вылезло окно запроса пароля, затем access denied.
Посмотрел окончание файла cache.log:

Код: Выделить всё

tail -f /var/log/squid/cache.log
И увидел там интересную строчку:

Код: Выделить всё

NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
Решение нашёл здесь:
http://forum.ru-board.com/topic.cgi?for ... rt=2320#19
Короче, помогла команда

Код: Выделить всё

chgrp winbindd_priv /var/lib/samba/winbindd_privileged
После неё перезапустил winbind:

Код: Выделить всё

sudo invoke-rc.d winbind restart
Авторизация заработала

Гость
проходил мимо

Не работает авторизация Squid + AD

Непрочитанное сообщение Гость » 2015-06-22 13:24:44

Аналогичная проблема. Все способы уже перепробовал.
В браузере постоянно вылазит запрос аутентификации. В cache.log:

Код: Выделить всё

ERROR: NTLM Authentication validating user. Error returned 'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL'
При проверке из командной строки:

Код: Выделить всё

/var/log/squid3# /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
user password
BH SPNEGO request invalid prefix
Basic проверка проходит, права на winbindd_privileged проверены, wbinfo доменные группы и пользователей видит.
В логе nmbt.log:

Код: Выделить всё

[2015/06/22 12:35:49,  0] ../source3/nmbd/nmbd_namelistdb.c:320(standard_fail_register)
  standard_fail_register: Failed to register/refresh name PROXY<00> on subnet 192.168.100.33
Ubuntu 14.04, Squid 3.3.8, Samba 4.1.6
Куда смотреть, куда копать?

EHoT
рядовой
Сообщения: 17
Зарегистрирован: 2015-06-04 13:59:24

Не работает авторизация Squid + AD

Непрочитанное сообщение EHoT » 2015-07-02 13:13:59

Несколько дополнений к (http://www.lissyara.su/articles/freebsd ... up_access/), что нашел:

добавление машины в домен:
net rpc join -U user.name

авторизация в домене:
net setauthuser -U squid%password

права на папку, а то кальмар не может авторизоваться:

ls -l /var/db/samba4/winbindd_privileged
chmod 750 winbindd_privileged
chown -R root:squid winbindd_privileged


опции сборки:

samba41

-ADS
-LDAP
-SYSLOG
-UTMP
-NSUPDATE

squid
-ARP_ACL
-AUTH_KERB (думал на керберус подцепить, не использую)
-AUTH_LDAP
-AUTH_SMB (нужно для самбы, появилось в новых версиях, на момент написания статьи не было в природе)
-HTCP
-IDENT
-SNMP

Пакеты:
root@freebsd:/usr/local/etc/rc.d # pkg info | grep samba
samba4-4.0.21 A free SMB/CIFS and AD/DC server and client for UNIX
root@freebsd:/usr/local/etc/rc.d # pkg info | grep squi
squid-3.4.8_1 HTTP Caching Proxy

serge23
проходил мимо
Сообщения: 2
Зарегистрирован: 2016-12-20 11:53:57

Не работает авторизация Squid + AD

Непрочитанное сообщение serge23 » 2016-12-20 12:36:28

Для того чтобы squid мог авторизовать юзеров по ntlm в MS AD и избежать ошибки в cache.log "'BH NT_STATUS_UNSUCCESSFUL NT_STATUS_UNSUCCESSFUL' необходимо:
пользователя под которым работает squid ( в Ubuntu -это proxy, в др. случаях squid) добавить в группу winbind_privileged.

Я целый день убил на решение этой проблемы в Ubuntu, пока не заглянул в настройки аналогичной связки в CentOs 7.2 ( здесь пользователь squid автоматом бы внесен в группу winbind_privileged, и ntlm авторизация в CentOs-е работала без проблем.