CentOS7에서 Openldap 빌드 - 4. LDAP 디렉토리 구성 및 ACL 설정

Openldap에서 LDAP 환경을 구축했을 때의 디렉토리 구성과 ACL 설정에 대해 설명합니다.
지금까지의 기사에서 일단 LDAP 환경을 구축할 수 있었습니다.
1.Openldap의 구조
2. LDAP 서버 구축 절차
3. LDAP 클라이언트 설정 절차

하지만 각자의 환경에 맞는 디렉토리를 구성해, ACL(액세스 제어)의 설정을 하는 것이 운용면에서 중요합니다.
디렉터리 구성과 ACL 설정의 예를 소개합니다.

LDAP 디렉토리의 구성 예



1.Openldap의 구조 에서 소개한 것입니다.


예를 들면 「"서버에 로그인시키고 싶지만 sudo권은 주고 싶지 않다"라고 하는 유저는 user라고 하는 ou명안에 등록하자.」라고 하는 형태로 관리합니다. ou는 조직 단위입니다 (그룹 같은 것으로, 그 ou안에 유저를 등록해 가는 이미지).
또 위의 트리를 예로 했을 경우, 각 ou에 대해 이하와 같이 역할을 결정해 디렉토리 트리를 작성해, 액세스 제한을 설정해 가는 것이 일반적입니다.


OU 이름
설명


시스템
서버에 로그인할 수 있는 시스템 사용자 항목

infra
모든 환경에서 sudo 권한이 부여 된 관리자 사용자 (LDAP 관리, 서버 관리자 용)

사용자
서버 내에서 sudo 할 수 없거나 환경을 제한하여 sudo가 부여되는 사용자

그룹
그룹 항목 추가

도구
Git이나 감시 툴 등 다른 툴도 LDAP 제휴하고 싶은 경우에 대비한 툴용 유저

tool-admin
OU=tool 항목을 추가, 삭제, 편집할 수 있는 도구 사용자 관리자

policies
정책을 정한 항목


그리고 CentOS7에서 Openldap 구축 - 2. LDAP 서버 구축 절차 로 인스톨한 LAM(Ldap Account Manager)로, 위 그림의 구성이 되도록 변경해 갑니다.
※LAM 로그인 후 화면상에 있는 "트리 뷰"로부터 같은 구성으로 했습니다.

  유저를 추가할 때는 uidNumber나 홈 디렉토리가 다른 유저와 입지 않도록 수정합니다. 쓰면 로그인 시 문제가 발생합니다. 또한 사용자에게 암호를 설정하려면 userPassword라는 속성을 추가합니다.

그리고 LDAP 서버내에서, 이하 완성되는 기재한 ldif 파일을 작성해,
ldapmodify -x -W -D cn=admin,cn=config -f [파일 경로]에서 ACL 설정을 변경합니다.
ACL의 내용은 위 표의 ou별 역할을 반영한 것입니다.
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to dn.children="ou=tool,dc=test,dc=org" attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=tool-admin,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {1}to dn.children="ou=tool,dc=test,dc=org"
  by self read
  by anonymous read
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=tool-admin,dc=test,dc=org" read
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {2}to dn.children="ou=tool-admin,dc=test,dc=org" attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {3}to dn.children="ou=user,dc=test,dc=org" attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {4}to dn.children="ou=user,dc=test,dc=org"
  by self read
  by anonymous read
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {5}to dn.children="ou=system,dc=test,dc=org"
  by self read
  by anonymous read
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {6}to dn.children="ou=infra,dc=test,dc=org"
  by self write
  by anonymous read
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none
olcAccess: {7}to dn.sub="ou=group,dc=test,dc=org"
  by anonymous read
  by dn.children="ou=infra,dc=test,dc=org" write
  by users read
olcAccess: {8}to dn.sub="ou=policies,dc=test,dc=org"
  by dn.children="ou=infra,dc=test,dc=org" write
  by users read
olcAccess: {9}to *
  by dn.children="ou=infra,dc=test,dc=org" write
  by * read

olcAccess라는 속성으로 액세스 제어를 설정합니다.
위는 olcAccess: {0}에서 {9}까지 10개의 설정이 있습니다.

예를 들면 선두의 ↓의 경우,
olcAccess: {0}to dn.children="ou=tool,dc=test,dc=org" attrs=userPassword,shadowLastChange
  by self write
  by anonymous auth
  by dn.children="ou=infra,dc=test,dc=org" write
  by dn.children="ou=tool-admin,dc=test,dc=org" write
  by dn.children="ou=system,dc=test,dc=org" read
  by users none

이것을 쉽게 번역하면 ,,
0番目のアクセス制御: dnがou=tool,dc=test,dc=org配下のパスワードに関する属性について、
自身は編集可能
匿名ユーザからの参照許可
dnがou=infra,dc=test,dc=org配下の人はは編集可能
dnがou=tool-admin,dc=test,dc=org配下の人は編集可能
dnがou=system,dc=test,dc=org配下の人は読み取り可能
users はアクセスなし

라는 제어가 됩니다.

↓는 영어이지만 상세히 기재하고 있습니다.
htps //w w. 푹신하다 p. 오 rg / 도 c / 아 d 민 24 / 아세 싯 톤 l. HTML
 
여기의 설정 하나 하나를 설명하는 것은 솔직히 힘들지만 다른 것도 참고가 되는 기사가 있다고 생각합니다.

마지막으로



디렉토리나 ACL이 조금 복잡해 보일지도 모릅니다만, 지금까지의 구성으로 하면 나중에 곤란하지 않는 것은 하는 예였습니다.
다음에는 백업, 복원 테스트를 합니다.
· CentOS7에서 Openldap 구축 - 5. 백업 복원 테스트

관련 기사



· CentOS7에서 Openldap 구축 - 1.Openldap의 구조
· CentOS7에서 Openldap 구축 - 2. LDAP 서버 구축 절차
· CentOS7에서 Openldap 구축 - 3. LDAP 클라이언트 설정 절차
· CentOS7에서 Openldap 구축 - 4. LDAP 디렉토리 구성 예와 ACL 설정
· CentOS7에서 Openldap 구축 - 5. 백업 복원 테스트
· CentOS7에서 Openldap 빌드 - 6. 비밀번호 만료 알림 스크립트

좋은 웹페이지 즐겨찾기