升级至 14.04 后,Samba/Winbind Active Directory 身份验证中断

升级至 14.04 后,Samba/Winbind Active Directory 身份验证中断

我使用的是 Ubuntu 桌面 12.04,并使用 samba/winbind/krb5 将其加入域 - 运行良好,没有任何问题,我可以使用我的活动目录帐户登录我的计算机。我升级到 14.40,但似乎出现问题。似乎 14.04 已升级到 Samba4,我不确定这是否是问题所在。我对 smb.conf 文件进行了一些更改,这些更改似乎是 Samba4 更改 - 这使我能够使用 net ads join -U username 加入域 - 运行正常...我的计算机已加入域 - 我可以使用 kerberos 获取票证并查看它是否有效。但是,当我注销本地帐户并尝试使用域帐户重新登录时,它总是告诉我密码无效。有什么想法吗?在我的 smb.conf 文件上运行 testparm 后,它告诉我 idmap uid 和 idmap gid 不再使用……它还告诉我“security=ads”与“password server”组合不应该组合。我想知道这是否是问题所在。

编辑:可能与我的 pam.d 文件有关 - 我刚刚完成了 14.04 的全新安装,但无法登录......它甚至没有要求我输入密码......如果我返回到默认 pam 文件,这个问题就会消失 - 这是我所拥有的

/etc/pam.d/通用帐户:

    account sufficient pam_winbind.so
    account required pam_unix.so

/etc/pam.d/common-auth:

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

/etc/pam.d/通用密码:

    password required pam_unix.so nullok obscure min=4 max=50 md5

/etc/pam.d/common-session:

    session required pam_mkhomedir.so umask=0022 skel=/etc/skel

这是我的测试 /etc/samba/smb.conf:

    [global]

    workgroup = MYDOMAIN
    security = ADS
    realm = MYDOMAIN.COM
    netbios name = trusty

    idmap config *:backend = tdb
    idmap config *:range = 70001-80000
    idmap config MYDOMAIN:backend = ad
    idmap config MYDOMAIN:schema_mode = rfc2307
    idmap config MYDOMAIN:range = 500-40000

    winbind nss info = rfc2307
    [test]
    path = /srv/samba/test
    read only = no

这是我的 /etc/krb5.conf

    [libdefaults]
    default_realm = MYDOMAIN.COM
    ticket_lifetime = 24000
    allow_weak_crypto = yes
    [realms]
    MYDOMAIN.COM = {
            kdc = my.domain.com
            admin_server = my.domain.com
            default_domain = MYDOMAIN.COM
    }


    [domain_realm]
    .mydomain.com = MYDOMAIN.COM
    mydomain.com = MYDOMAIN.COM
    [login]
    krb4_convert = true
    krb4_get_tickets = false

/etc/nsswitch.conf

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

    hosts:          files mdns4_minimal [NOTFOUND=return] dns wins
    networks:       files

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

    netgroup:       nis

编辑:最后一件事.....我注意到如果我输入 pam-auth-update,我看不到为 active directory 或 ldap 启用 pam 配置文件的功能...我发誓在 12.04 中有这个功能......?

答案1

getent passwd

还回什么吗?

怎么样

wbinfo -u

我正在做同样的事情,对我来说 wbinfo -u 有效,但 getent passwd 无效。我可以通过添加这些包来让 getent passwd 工作。

 apt-get install libnss-winbind libpam-winbind

一旦 getent passwd 返回域用户,我就能够使用我的域凭据通过 ssh 进入机器。

答案2

我遇到了同样的问题,但通过一些黑客攻击我终于能够让它工作了。

添加 libnss-winbind 后 - getent passwd 起作用了,当我尝试以 AD 用户身份登录时出现了 setgid 错误。

所以我开始破解 smb.conf 文件。

我从正在运行的 12.04LTS 服务器复制了 smb.conf 文件,并做了一些小改动,它就起作用了。

这是我的 smb.conf。

[global]
allow trusted domains = Yes
workgroup = DOMAIN
server string = 'Test Server'
security = ads
realm = DOMAIN.COM
password server = 0.0.0.0
domain master = no
local master = no
preferred master = no
idmap backend = tdb
idmap uid = 10000-99999
idmap gid = 10000-99999
idmap config DOMAIN:backend = rid
idmap config DOMAIN:range = 10000-99999
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
winbind nested groups = yes
winbind refresh tickets = yes
template homedir = /home/DOMAIN.COM/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = true
restrict anonymous = 2
log file = /var/log/samba/log.%m
max log size = 50

答案3

apt-get install libnss-winbind libpam-winbind 对我来说也有效。

从 12.04 升级到 14.04 后,活动目录用户在尝试访问共享时会提示输入用户名和密码,并且他们的网络驱动器无法映射。运行上述命令和“service smbd restart”重新启动 samba 服务后,一切正常。用户重新启动后,他们的驱动器像往常一样映射。呼!

相关内容