###前提・実現したいこと
LDAPでサーバ毎にSSHでログインできるユーザを制御したい。
現在、「開発」「本番」に分かれた複数のサーバがあり、ユーザはLDAPで一括管理している。
実現したい事は、あるユーザは「開発」サーバのみログインでき、
あるユーザは「開発」・「本番」サーバどちらもアクセスできるという仕組みを作りたい。
方法は問わないので、実現可能な手段を教えてください。
###発生している問題・エラーメッセージ
下記記事①を参考に設定を行ったが、
アクセスをブロックしたいユーザであるにも関わらず、SSHログインができてしまう。
<記事①>
https://open-groove.net/openldap/ldap-acl/
また、同じような内容の下記記事②についても、検証しようとしたが、
当方の環境には「/etc/ssh/ldap.conf」が存在しないため、設定ができない。
<記事②>
http://qiita.com/T_Tsan/items/b9416fbf71404b9cc854
###試したこと
上記記事①を参考にユーザのエントリにdescriptionアトリビュート(ここでは「B」としています。)を追加し、アクセスをブロックしたいサーバ側の「ldap.conf」にて、pam_filterに制御内容(pam_filter &(objectclass=posixaccount)(description=A))を記載した。
具体的には以下のとおり設定しています。
- ユーザエントリ
# user02, People, example.com dn: uid=user02,ou=People,dc=example,dc=com uid: user02 cn: Test User 02 objectClass: account objectClass: posixAccount objectClass: top loginShell: /bin/bash uidNumber: 5002 gidNumber: 3002 homeDirectory: /work/home/user02 description: B #追加したdescription
- ブロックしたいサーバのldap.conf
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example,dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never TLS_CACERTDIR /etc/openldap/cacerts URI ldap://XX.XX.XX.XX/ ldap://XX.XX.XX.XX/ BASE dc=example,dc=com pam_filter &(objectclass=posixaccount)(description=A)
###補足情報(言語/FW/ツール等のバージョンなど)
環境等は以下の通り
【LDAP サーバ側】
- Linux version 4.9.43-17.39.amzn1.x86_64
- nss-pam-ldapd.x86_64 0.7.5-20.12.amzn1 @amzn-main
- openldap.x86_64 2.4.40-12.30.amzn1 installed
- openldap-clients.x86_64 2.4.40-12.30.amzn1 @amzn-main
- openldap-servers.x86_64 2.4.40-12.30.amzn1 @amzn-main
- pam_ldap.x86_64 185-11.8.amzn1 @amzn-main
【LDAP クライアント側】
- Linux version 4.9.38-16.35.amzn1.x86_64
- nss-pam-ldapd.x86_64 0.7.5-20.12.amzn1 @amzn-main
- openldap.x86_64 2.4.40-12.30.amzn1 installed
- openldap-clients.x86_64 2.4.40-12.30.amzn1 @amzn-main
- pam_ldap.x86_64 185-11.8.amzn1 @amzn-main
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/27 00:28