LoginSignup
21
20

More than 5 years have passed since last update.

CentOS 6.5 で OpenLDAP(8)SSHのログイン制限

Last updated at Posted at 2014-04-28

概要

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確認

開発課は本番サーバーへ接続できない
運用課はテストサーバーへ接続できない
部長は全サーバーにアクセスできる

以上を確認する

21
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
20