Linux 计算机位于 Windows 域中,但域登录不起作用

Linux 计算机位于 Windows 域中,但域登录不起作用

我们部门有一个小型网络

  • 2 Win Server 2008 域控制器
  • 1 个 Debian 网络服务器
  • 多个 win7 客户端

我的前任曾尝试将 Web 服务器添加到我们的域中,以便使用我们域中的用户帐户登录(主要用于将文件传输到 Web 服务器上)。我工作了一段时间,但从某个未知的时间点开始,它不再起作用了。

于是我看了一些 samba 教程,也查看了配置文件,但还是没找到问题所在。现在想寻求您的帮助。

auth.log尝试使用“域用户”登录后:

Mar 13 17:04:33 linuxwebserver login[22754]: pam_winbind(login:auth): getting password (0x00000000)
Mar 13 17:04:35 linuxwebserver login[22754]: pam_winbind(login:auth): user '<domain-username>' granted access
Mar 13 17:04:35 linuxwebserver login[22754]: pam_unix(login:account): could not identify user (from getpwnam(<domain-username>))
Mar 13 17:04:35 linuxwebserver login[22754]: User not known to the underlying authentication module

auth.log尝试使用“域”\“域用户”登录后:

Mar 13 17:06:29 linuxwebserver login[22762]: pam_winbind(login:auth): getting password (0x00000000)
Mar 13 17:06:32 linuxwebserver login[22762]: pam_winbind(login:auth): request failed: No such user, PAM error was Benutzer bei zu Grunde liegendem Authentifizierungsmodul nicht bekannt (10), NT error was NT_STATUS_NO_SUCH_USER
Mar 13 17:06:32 linuxwebserver login[22762]: pam_unix(login:auth): check pass; user unknown
Mar 13 17:06:32 linuxwebserver login[22762]: pam_unix(login:auth): authentication failure; logname=root uid=0 euid=0 tty=pts/3 ruser= rhost=
Mar 13 17:06:34 linuxwebserver login[22762]: FAILED LOGIN (1) on 'pts/3' FOR `UNKNOWN', User not known to the underlying authentication module

在我看来,网络服务器在域中是正确的,但是 Linux 检查账户有效性的方式存在一些问题。

smb.confhttp://pastebin.com/nXdZUEbn

nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns wins
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

wbinfo -u为我提供我们域中所有帐户的正确列表(名称前面没有“DOMAIN \”)

wbinfo -g为我提供我们域中群组的正确列表(名称前面没有“DOMAIN\”)

getent passwd为我提供我们网络服务器上的本地(unix)账户列表(无域用户)

getent group为我提供我们网络服务器上的本地(unix)群组列表(无域用户)

# wbinfo -p
Ping to winbindd succeeded

我的想法:Linux 使用 passwd 中的信息来检查帐户是否有效,但不会检查 wbinfo 中的信息。我以为我通过添加 winbind 解决了这个问题,nsswitch.conf但问题仍然存在。


编辑:

/etc/pam.d/common-auth

auth sufficient pam_winbind.so
auth    required        pam_unix.so nullok_secure use_first_pass

/etc/pam.d/通用帐户

account sufficient      pam_winbind.so
account required        pam_unix.so

/etc/pam.d/通用密码

password   required   pam_unix.so nullok obscure md5

编辑2: /etc/krb5.conf

[libdefaults]
    default_realm = <DOMAIN>.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.
    krb4_config = /etc/krb.conf
    krb4_realms = /etc/krb.realms
    kdc_timesync = 1
    ccache_type = 4
    forwardable = true
    proxiable = true

# The following encryption type specification will be used by MIT Kerberos
# if uncommented.  In general, the defaults in the MIT Kerberos code are
# correct and overriding these specifications only serves to disable new
# encryption types as they are added, creating interoperability problems.
#
# Thie only time when you might need to uncomment these lines and change
# the enctypes is if you have local software that will break on ticket
# caches containing ticket encryption types it doesn't know about (such as
# old versions of Sun Java).

#   default_tgs_enctypes = des3-hmac-sha1
#   default_tkt_enctypes = des3-hmac-sha1
#   permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.
    v4_instance_resolve = false
    v4_name_convert = {
        host = {
            rcmd = host
            ftp = ftp
        }
        plain = {
            something = something-else
        }
    }
    fcc-mit-ticketflags = true

[realms]
    <DOMAIN>.LOCAL = {
        kdc = <WIN DOMAIN CONTROLLER>.<DOMAIN>.local
        admin_server = <WIN DOMAIN CONTROLLER>.<DOMAIN>.local
    }


[domain_realm]
    .<DOMAIN>.local = <DOMAIN>.LOCAL

[login]
    krb4_convert = true
    krb4_get_tickets = false

答案1

尝试更改你的 smb.conf:

idmap backend = ad

为了:

idmap backend = rid

然后重启你的 samba 服务(主要是 winbind)。如果还是不行,试试这个:

  1. 停止 samba 服务
  2. 删除 samba 数据库和缓存文件(通常在 /var/lib/samba 下,tdb 文件)。
  3. 再次加入奔跑网广告
  4. 启动 samba 服务

你使用的是哪一个版本的 Samba?

答案2

我的评分不够,无法发表评论,但我似乎记得在登录 Windows 域时需要使用两个斜杠。我相信那是在 BeyondTrust 中,我知道在 Quest 中我不需要使用两个斜杠...

DOMAIN\\user

相关内容