Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Проблема с прозрачной авторизацией Samba Squid NTLM  (Прочитано 6290 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gizomo

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Решил опробовать новый сервер на Ubuntu 12.04.
Настроил samba в качестве PDC. Клиентский комп работает под XP. Завел и клиента и сервак в домен. Установил winbind и squid, настроил их на ntlm авторизацию.
Пробую выйти в инет с клиента. Запускаю мозиллу, иду на гугл, выскакивает окно авторизации. Попробовал ввести имя пользователя и пароль - браузер прекрасно загрузил страницу. При обращении к другому адресу без проблем перешел, не запрашивал снова авторизацию. Думал проверить на IE 6.0. Такая же фигня - выскакивает окно авторизации. Т.е. никакого ntlm.

Конфиг samba в качестве PDC (по официальной документации ubuntu, разве что roaming profiles и cups отключил)
[global]
workgroup = GIS.TSU.RU
server string = %h server (Samba3)
netbios name = OMEGA
wins support = yes
dns proxy = no
interfaces = 127.0.0.0/8 eth1
bind interfaces only = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d

security = user
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user

domain logons = yes
logon path =
logon drive = H:
logon script = logon.cmd
add machine script  = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u

load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = yes

usershare allow guests = yes

[homes]
comment = Домашний каталог
browseable = no
read only = no
create mask = 0700
directory mask = 0700
valid users = %S

[netlogon]
comment = Сетевая служба Logon
path = /srv/samba/netlogon
guest ok = yes
read only = yes
browseable = no

[printers]
comment = Все принтеры
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

[print$]
comment = Драйверы для принтеров
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

Конфиг squid (настройка по примеру с официального сайта samba)
visible_hostname omega.gis.tsu.ru

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5

acl gis src 10.0.0.0/27
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

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 CONNECT method CONNECT
acl authusers proxy_auth REQUIRED

http_access allow gis authusers
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

http_port 10.0.0.1:3128
access_log /var/log/squid3/access.log squid
refresh_pattern ^ftp:         1440    20%     10080
refresh_pattern ^gopher:      1440    0%      1440
refresh_pattern (cgi-bin|\?)  0       0%      0
refresh_pattern .             0       20%     4320

Пользователя proxy в группу winbindd_priv добавил.
Тесты wbinfo -t и wbinfo -a завершились успешно. Протестировал и сам хелпер ntlm_auth - тоже работает.
Squid в логах пишет 407 Access denied. Когда вводишь в запрос имя пользователя и пароль, то в логах squid появляется запись о пользователе вида Имя_сервера\Пользователь (OMEGA\Ivan). Что в принципе и должно быть.

Кто может подсказать в чем проблема? Почему ntlm не работает?

Оффлайн Synegami

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Цитировать
вида Имя_сервера\Пользователь (OMEGA\Ivan). Что в принципе и должно быть.
Что за Имя_сервера? Ладно еще домена, но сервер то причем?
Ну и вопрос: а виндовые то сервера в домене есть?

Оффлайн gizomo

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
В том то все и дело, что он не домен подставляет, а имя контролера домена, т.е. авторизует unix-пользователей.
Виндовых серверов в сети нету. Контролер домена на sambe, на ней же proxy-сервер.

Посмотрел более подробные логи squid,
Сначала выскакивает строчка, что The reply for GET http://...... is ALLOWED, because it match 'authusers' И тут же следующей строчкой идет The request GET http://...... is DENIED, because it match 'authusers'
Еще более подробный лог выдал такую строку: authenticateAuthenticate: broken auth or no proxy_auth header. Requesting auth header. Пока думаю из-за чего это может быть.

Пользователь решил продолжить мысль 03 Май 2012, 18:56:28:
Просмотрел самый подробный лог squid.
Сначала появляется такая строка:
AuthNTLMUserRequest::authenticated: user not fully authenticatedПотом нашел строку, где helper возвращает squid-у "NA NT_STATUS_NO_SUCH_USER".

Проверил сам helper ntlm_auth через консоль.
/usr/bin/ntlm_auth --helper-protocol-squid-2.5-basic при вводе пользователя и пароля выдает OK.
/usr/bin/ntlm_auth --helper-protocol-squid-2.5-ntlmssp при вводе YR тоже отвечает нормально.
Просто /usr/bin/ntlm_auth --username=ivan --domain=GIS.TSU.RU отвечает NT_STATUS_OK: Success (0x0).
Я так понимаю, helper работает.
« Последнее редактирование: 03 Май 2012, 18:56:28 от gizomo »

Оффлайн gizomo

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Сегодня 1 июля 2012 г. ставил систему с нуля. Обновил все пакеты.
И о чудо! Домен на samba и squid с ntlm работают на ура!!!
Видимо в последних пакетах, что-то поправили.

Собственно, недавно нашел в интернете, что в samba 3.6 по-умолчанию включен параметр ntlmv2 auth = yes, что вроде как не позволяет проводить авторизацию winbind через ntlmv1. Но возможно, разрабы что-то перемудрили и ntlm вообще не работал. Хотел проверить, что будет, если отключить этот параметр, а оно все само заработало.

Будем ждать середины августа, когда выйдет 12.04.1. Поди там ничего не успеют испортить.

 

Страница сгенерирована за 0.089 секунд. Запросов: 24.