認証しようとしているAD'08サーバーへの完全な管理者アクセス権があります。
エラーコード は無効な資格情報を意味しますが、これが間違ったパスワードを入力するのと同じくらい簡単だったらいいのにと思います。
まず、同じドメインに対して動作するApachemod_ldap構成があります。
AuthType basic
AuthName "MYDOMAIN"
AuthBasicProvider ldap
AuthLDAPUrl "ldap://10.220.100.10/OU=Companies,MYCOMPANY,DC=southit,DC=inet?sAMAccountName?sub?(objectClass=user)"
AuthLDAPBindDN svc_webaccess_auth
AuthLDAPBindPassword mySvcWebAccessPassword
Require ldap-group CN=Service_WebAccess,OU=Groups,OU=MYCOMPANY,DC=southit,DC=inet
ADへのシステム認証については、他の多くのガイドが推奨しているように、Kerberosを使用しなくても機能するため、これを示しています。
ここで、OpenSSHで使用するためにこれをpam_ldap.confに変換したいと思います。
/etc/pam.d/common-authの部分は単純です。
auth sufficient pam_ldap.so debug
この行は他のどの行よりも先に処理されます。
本当の問題はpam_ldap.confの設定だと思います。
Host 10.220.100.10
base OU=Companies,MYCOMPANY,DC=southit,DC=inet
ldap_version 3
binddn svc_webaccess_auth
bindpw mySvcWebAccessPassword
scope sub
timelimit 30
pam_filter objectclass=User
nss_map_attribute uid sAMAccountName
pam_login_attribute sAMAccountName
pam_password ad
現在、wiresharkを使用してADホストのLDAPトラフィックを監視しています。 Apacheのmod_ldapから成功したセッションをキャプチャし、それをpam_ldapからの失敗したセッションと比較しました。
最初のbindrequestはsvc_webaccess_authアカウントを使用した成功であり、searchrequestは成功であり、結果1を返します。ユーザーを使用した最後のbindrequestは失敗であり、上記のエラーコードを返します。
Searchrequestのフィルターのこの1行を除いて、すべて同じように見えます。ここではmod_ldapを示しています。
Filter: (&(objectClass=user)(sAMAccountName=ivasta))
2つ目はpam_ldapです。
Filter: (&(&(objectclass=User)(objectclass=User))(sAMAccountName=ivasta))
私のユーザーの名前はivastaです。ただし、searchrequestは失敗を返しません。1つの結果を返します。また、CLIでldapsearchを使用してこれを試しました。
上記のエラーコード52eで失敗するのは、searchrequestに続くbindrequestです。
これが最後のbindrequestの失敗メッセージです。
resultcode: invalidcredentials (49)
80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772
これは無効なパスワードを意味するはずですが、私は他のユーザーと非常に単純なパスワードで試しました。
誰かがpam_ldapとADとの彼ら自身の闘争からこれを認識していますか?
編集:注目に値するのは、ldapsearchを使用しているときにこれが機能したため、pam_passwordcryptとpam_filtersAMAccountName = Userも試したことです。
ldapsearch -LLL -h 10.220.100.10 -x -b "ou=Users,ou=mycompany,dc=southit,dc=inet" -v -s sub -D svc_webaccess_auth -W '(sAMAccountName=ivasta)'
これは、svc_webaccess_authアカウントのパスワードを使用して機能します。このアカウントは、Apacheのmod_ldapで使用するためにそのOUへのスキャンアクセスを持っています。
Edit2:ログインに失敗したときにAD'08ログに記録されるのはこれだけです。
An account failed to log on.
Subject:
Security ID: SYSTEM
Account Name: WIN-DC02$
Account Domain: SOUTHIT
Logon ID: 0x3e7
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: ivasta
Account Domain: SOUTHIT
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xc000006d
Sub Status: 0xc000006a
Process Information:
Caller Process ID: 0x264
Caller Process Name: C:\Windows\System32\lsass.exe
Network Information:
Workstation Name: WIN-DC02
Source Network Address: 10.220.100.105
Source Port: 44565
Detailed Authentication Information:
Logon Process: Advapi
Authentication Package: Microsoft_AUTHENTICATION_PACKAGE_V1_0
Transited Services: -
Package Name (NTLM only): -
Key Length: 0
This event is generated when a logon request fails. It is generated on the computer where access was attempted.
The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe.
The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network).
The Process Information fields indicate which account and process on the system requested the logon.
The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases.
The authentication information fields provide detailed information about this specific logon request.
- Transited services indicate which intermediate services have participated in this logon request.
- Package name indicates which sub-protocol was used among the NTLM protocols.
- Key length indicates the length of the generated session key. This will be 0 if no session key was requested
恥ずかしい内部情報があるので、これに答える必要があります。
ログインするには、システム上に通常のUnixユーザーを作成する必要があることに気づきませんでした。 ivastaに一致するユーザーを作成するとすぐに、そのユーザーのADパスワードでログインできました。
私ができないことは、pam_password広告を使用してもパスワードを変更することだけですが、これはユーザー名のログ記録のみを目的としているため、問題ではありません。