概要
LDAPに登録されている全員にSSHログインを許可しないようにする
特に、テストサーバーと本番サーバーなど、サーバー環境が分かれている場合、本番サーバーには特定のユーザーしかアクセス出来ないようにする
この際、「description」属性を使用し、制限をかける
前提
- 部長とシステム運用課の課長と社員は、本番サーバーにアクセス権を持つ
- 部長とシステム開発課の課長と社員は、テストサーバーにアクセス権を持つ
LDAPサーバーに各ユーザーの権限を設定する
/etc/openldap/ldif/auth.ldif
# 部長:武田 貴彦
dn: uid=takahiko.takeda,dc=People,dc=example,dc=com
changetype: modify
add: description
description: production
-
add: description
description: development
# 開発課 課長:横山 真也
dn: uid=shinya.yokoyama,dc=People,dc=example,dc=com
changetype: modify
add: description
description: development
# 運用課 課長:井上 修
dn: uid=osamu.inoue,dc=People,dc=example,dc=com
changetype: modify
add: description
description: production
# 開発課 社員:石川 直樹
dn: uid=naoki.ishikawa,dc=People,dc=example,dc=com
changetype: modify
add: description
description: development
# 運用課 社員:田村 和夫
dn: uid=kazuo.tamura,dc=People,dc=example,dc=com
changetype: modify
add: description
description: production
ldapmodify -x -D "cn=Manager,dc=example,dc=com" -W -f /etc/openldap/ldif/auth.ldif
テストサーバー側設定
/etc/nslcd.conf 編集
/etc/nslcd.conf
uid nslcd
gid ldap
uri ldaps://192.168.0.10/
base dc=example,dc=com
ssl yes
tls_cacertdir /etc/openldap/cacerts
tls_reqcert allow
filter passwd (description=development)
filter shadow (description=development)
filter group (objectClass=posixGroup)
/etc/ssh/ldap.conf 編集
/etc/ssh/ldap.conf
uri ldaps://192.168.0.10/
base dc=example,dc=com
host 192.168.0.10
ssl yes
tls_cacertdir /etc/openldap/cacerts
tls_checkpeer yes
tls_reqcert allow
pam_filter description=development
/etc/pam_ldap.conf
/etc/pam_ldap.conf
uri ldaps://192.168.0.10/
base dc=example,dc=com
host 192.168.0-.10
ssl yes
tls_cacertdir /etc/openldap/cacerts
tls_checkpeer yes
tls_reqcert allow
pam_filter description=development
nss_base_passwd ou=People,dc=example,dc=com?sub?description=development
nss_base_shadow ou=People,dc=example,dc=com?sub?description=development
nss_base_group ou=Group,dc=example,dc=com?sub?objectClass=posixGroup
再起動
reboot
本番サーバー側設定
/etc/nslcd.conf 編集
/etc/nslcd.conf
uid nslcd
gid ldap
uri ldaps://192.168.0.10/
base dc=example,dc=com
ssl yes
tls_cacertdir /etc/openldap/cacerts
tls_reqcert allow
filter passwd (description=production)
filter shadow (description=production)
filter group (objectClass=posixGroup)
/etc/ssh/ldap.conf 編集
/etc/ssh/ldap.conf
uri ldaps://192.168.0.10/
base dc=example,dc=com
host 192.168.0.10
ssl yes
tls_cacertdir /etc/openldap/cacerts
tls_checkpeer yes
tls_reqcert allow
pam_filter description=production
/etc/pam_ldap.conf
/etc/pam_ldap.conf
uri ldaps://192.168.0.10/
base dc=example,dc=com
host 192.168.0-.10
ssl yes
tls_cacertdir /etc/openldap/cacerts
tls_checkpeer yes
tls_reqcert allow
pam_filter description=production
nss_base_passwd ou=People,dc=example,dc=com?sub?description=production
nss_base_shadow ou=People,dc=example,dc=com?sub?description=production
nss_base_group ou=Group,dc=example,dc=com?sub?objectClass=posixGroup
再起動
reboot
確認
SSH確認
開発課は本番サーバーへ接続できない
運用課はテストサーバーへ接続できない
部長は全サーバーにアクセスできる
以上を確認する