Fedora 21 作为 AD 成员突然停止工作

Fedora 21 作为 AD 成员突然停止工作

我将 Fedora 21 工作站连接到我的 AD 域并工作了大约一个月,一切正常,然后一天早上我进来时却无法登录。我最初的反应是责怪 Win2013 和 AD,但在事件查看器中稍微挖掘后,我找不到任何错误,再加上我可以成功登录到所有其他 Linux AD 成员(Fedora 19/20、CentOS 6、Debian 6/7),这似乎不是问题的根源。

当我尝试通过登录时,su我得到的是su: Authentication failure,并/var/log/audit/audit.log包含以下消息:

type=USER_AUTH msg=audit(1421174144.121:1306): pid=25524 uid=1000 auid=1000
ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 
msg='op=PAM:authentication grantor=? acct="gjohn" exe="/usr/bin/su"
hostname=? addr=? terminal=pts/1 res=failed'

SELinux 已启用,但我尝试将其禁用并收到相同的错误/消息。

值得一提的是:

  • 我输入的密码是正确的
  • 据我所知,我没有意外按下 Caps Lock 键,也没有其他琐碎的用户错误
  • Samba/Winbind 正常运行,当我执行此操作时,我得到了正确的输出,getent passwd所有域用户都以正确的 UID/GID 显示
  • 不仅我的账户无法登录,所有账户都无法登录并收到相同的错误
  • 通过 GDM、su 和 SSH 登录时也会发生同样的事情

我使用 Samba/Winbind 设置,因为据我所知,如果您需要文件服务的 idmap 范围,就必须这样做。我尝试使用 sssd 和 realmd,但从未能够控制 UID 和 GID 范围,而这对我来说很重要。

我现在很困惑,因为尽管提高了日志级别,但有用的信息却很少/var/log/samba/*。我猜想这与 pam 有关,但我仍在尝试弄清楚如何监控输出。

相关配置文件:

/etc/samba/smb.conf:

[global]
   workgroup = DOMAIN
   realm = DOMAIN.NET
   security = ads
   server string = Workstation
   winbind use default domain = true
   winbind nested groups = yes
   winbind enum users = yes
   winbind enum groups = yes
   winbind offline logon = true
   winbind refresh tickets = yes
   winbind cache time = 5
   template shell = /bin/bash
   template homedir = /home/%U
   idmap config * : backend = rid
   idmap config * : range = 10000-20000
   passdb backend = tdbsam
   encrypt passwords = yes
   # logging
   log level = 3
   log file = /var/log/samba/log.%m
   max log size = 50

/etc/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 = DOMAIN.NET
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false

/etc/pam.d/password-auth 和 /etc/pam.d/system-auth:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_winbind.so cached_login use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so cached_login
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     optional      pam_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_winbind.so cached_login

编辑:我起初没有看到这个,因为/var/log/messages现在是journalctl,每次登录尝试时我都会收到错误:

Jan 13 11:41:38 ws.domain.net su[27383]: pam_winbind(su-l:auth): getting password (0x00000210)
Jan 13 11:41:38 ws.domain.net su[27383]: pam_winbind(su-l:auth): pam_get_item returned a password
Jan 13 11:41:38 ws.domain.net su[27383]: pam_winbind(su-l:auth): internal module error (retval = PAM_SERVICE_ERR(3), user = 'gjohn')
Jan 13 11:41:40 ws.domain.net su[27383]: FAILED SU (to gjohn) crdc on pts/11

答案1

原来是被连接的账户有问题。我尝试使用以下方法进行连接:

net ads join -U administrator

我以为我的 DNS 解析正确,所以应该没问题,但事实并非如此。我需要使用[email protected]作为加入的帐户。

相关内容