1

Active Directory と PAM で発生している問題に直面していますが、これは他の場所にも当てはまる可能性があります。

VPN 接続で 2 要素認証を利用するように PAM 経由で Yubikey をセットアップするには、AD/LDAP サーバーに接続するバインド ユーザーに binddn を設定する必要があります。残念ながら、binddn にはスペースを含むコンテナがあり、PAM はこのスペースを許可しておらず、エスケープすることもできません。例:

/etc/pam.d/radiusd

auth       required     pam_yubico.so id=16 debug ldap_uri=ldap://ad-server.local ldapdn=DC=company,DC=local binddn=CN=binduser,OU=users,OU=other accounts,OU=departments,DC=company,DC=local bindpw=5up3rpa55w0rd user_attr=sAMAccountName yubi_attr=employeeNumber

OU="other accounts"、OU=other\ accounts、OU='other accounts' を試し、binddn 全体を二重引用符と単一引用符で囲みました。PAM デバッグでは毎回、次のようになります。

[pam_yubico.c:parse_cfg(747)] called.
[pam_yubico.c:parse_cfg(748)] flags 0 argc 9
[pam_yubico.c:parse_cfg(750)] argv[0]=id=16
[pam_yubico.c:parse_cfg(750)] argv[1]=debug
[pam_yubico.c:parse_cfg(750)] argv[2]=ldap_uri=ldap://ad-server.local
[pam_yubico.c:parse_cfg(750)] argv[3]=ldapdn=DC=company,DC=local
[pam_yubico.c:parse_cfg(750)] argv[4]=binddn=CN=binduser,OU=users,OU=other
[pam_yubico.c:parse_cfg(750)] argv[5]=accounts,OU=departments,DC=company,DC=local
[pam_yubico.c:parse_cfg(750)] argv[6]=bindpw=5up3rpa55w0rd 
[pam_yubico.c:parse_cfg(750)] argv[7]=user_attr=sAMAccountName
[pam_yubico.c:parse_cfg(750)] argv[8]=yubi_attr=employeeNumber

ご覧のとおり、スペース、引用符、またはエスケープ文字が次のように binddn の一部としてリストに表示された後、それは切り取られます。

[pam_yubico.c:parse_cfg(750)] argv[4]=binddn=CN=binduser,OU=users,OU=other\
[pam_yubico.c:parse_cfg(750)] argv[5]=accounts,OU=departments,DC=company,DC=local

このスペースが別のフィールドを区切るためのものではないことを PAM に認識させるにはどうすればよいですか?

4

1 に答える 1

2

次のように入力して利用できる便利なドキュメントからman pam.d:(強調を追加)

module-argumentsは、指定された PAM の特定の動作を変更するために使用できる、スペースで区切られたトークンのリストです。このような引数は、個々のモジュールごとに文書化されます。引数にスペースを含める場合は、その引数を角括弧で囲む必要があることに注意してください。

次のテキストには、角括弧を含む引数の処理方法に関する注意事項と、行の例が含まれています。

于 2013-07-18T19:11:49.120 に答える