LDAP를 사용한 디렉토리 서비스 [5] : OpenLDAP (II)

먼저 상담하지 않고 계속합시다.

이 게시물에서는 다음을 볼 수 있습니다.

로컬 사용자 인증

OpenLDAP 서버를 실행 한 후 등록 된 사용자를 테스트하거나 로컬 인증을 원하거나 디렉토리에 등록하려면 필요한 패키지를 설치하고 구성해야합니다.

Squeeze에서 관련된 패키지는 다음과 같습니다.

libnss-ldap: 이름 교환 서비스 (NSS 이름 서비스 스위치) LDAP 서버가 이름 서버로 작동 할 수 있도록합니다.

이는 사용자 계정, 그룹 ID, 호스트에 대한 정보, 별칭, NetGroups 및 기본적으로 다음과 같은 일반 텍스트 파일에서 일반적으로 얻은 기타 데이터에 대한 정보를 제공하는 것을 의미합니다. / etc / passwd/ etc / 그룹, 등 또는 서비스 NIS.

libpam-ldap"LDAP 용 플러그 형 인증 모듈", 또는 모듈 WFP LDAP 용. 다음을 통해 LDAP 서버와 인증 시스템 간의 인터페이스를 제공합니다. WFP.

nscd"이름 서비스 캐시 데몬", 또는 이름 서비스 캐시의 데몬. 암호, 그룹 및 호스트 검색을 처리하고 나중에 참조 할 수 있도록 검색 결과를 캐시에 저장합니다.

: ~ # aptitude install libnss-ldap finger

패키지 설치 libnss-ldap, 종속성으로도 설치됩니다. libpam-ldap 이미 악마 nscd, 구성 마법사를 통해 질문에 적절히 답해야합니다.

libnss-01

libnss-02

libnss-03

libnss-04

libnss-05

libnss-06

libpam-01

libpam-02

libpam-03

libpam-04

패키지를 재구성하려면 libnss-ldap 및 / 또는 libpam-ldap, 우리는 실행해야합니다 :

: ~ # dpkg-reconfigure libnss-ldap
: ~ # dpkg-reconfigure libpam-ldap

나중에 파일을 수정합니다. /etc/nsswitch.conf 다음 내용으로 남겨 둡니다.

: ~ # nano /etc/nsswitch.conf
# /etc/nsswitch.conf # # GNU 이름 서비스 스위치 기능 구성의 예. #`glibc-doc-reference 'and` info'패키지가 설치되어 있다면 다음을 시도하십시오 : #`info libc "Name Service Switch" '에서이 파일에 대한 정보를 얻으십시오. passwd : compat ldap 그룹 : compat ldap shadow : compat ldap 호스트 : 파일 dns 네트워크 : 파일 프로토콜 : db 파일 서비스 : db 파일 ethers : db 파일 rpc : db 파일 netgroup : nis

파일 변경 사항 /etc/nsswitch.conf 적용되면 서비스를 다시 시작합니다. nscd:

: ~ # 서비스 nscd 재시작

중요한 세부 사항은 파일을 수정하는 것입니다 /etc/pam.d/common-session 로그온 할 때 로컬 서버에 생성 될 사용자 폴더에 대해 디렉토리에 등록 된 사용자 :

: ~ # 나노 /etc/pam.d/common-session
[----]
세션 필수 pam_mkhomedir.so skel = / etc / skel / umask = 0022
### 위의 줄이 포함되어야합니다. # 여기에 패키지 별 모듈 ( "Primary"블록)이 있습니다. [----]

데이터베이스 채우기

디렉토리 데이터베이스를 채우거나 시작하려면 기본 조직 단위를 추가하고 하나 이상의 사용자 그룹을 등록하고 사용자를 추가해야합니다. 이를 위해 LDIF 형식의 파일을 생성합니다.이 파일은 나중에 다음 내용으로 디렉토리에 추가합니다.

: ~ # 나노 content.ldif
dn : ou = 사람, dc = 친구, dc = cu objectClass : organizationalUnit ou : 사람 dn : ou = 그룹, dc = 친구, dc = cu objectClass : organizationalUnit ou : 그룹 dn : cn = 링, ou = 그룹, dc = friends, dc = cu objectClass : posixGroup cn : ring gidNumber : 10000 dn : uid = frodo, ou = People, dc = friends, dc = cu objectClass : inetOrgPerson objectClass : posixAccount objectClass : shadowAccount uid : frodo sn : Bagins givenName : Frodo cn : Frodo Bagins displayName : Frodo Bagins uidNumber : 10000 gidNumber : 10000 userPassword : frodo 메일 : frodo@amigos.cu gecos : Frodo Bagins loginShell : / bin / bash homeDirectory : / home / frodo

파일의 내용을 디렉토리에 추가합니다.

~ ~ # ldapadd -x -D cn = admin, dc = friends, dc = cu -W -f content.ldif
LDAP 비밀번호 입력 : 새 항목 추가 "ou = People, dc = friends, dc = cu"새 항목 추가 "ou = Groups, dc = friends, dc = cu"새 항목 추가 "cn = rings, ou = Groups, dc = friends, dc = cu "새 항목 추가"uid = frodo, ou = People, dc = friends, dc = cu "

우리는 관련 검사를 수행합니다.

: ~ # id 프로도
uid = 10000 (frodo) gid = 10000 (rings) 그룹 = 10000 (rings)

: ~ # getent passwd | 그렙 프로도
프로도 : x : 10000 : 10000 : 프로도 바 긴스 : / 홈 / 프로도 : / 빈 /베이스

: ~ # 손가락 프로도
로그인 : frodo 이름 : Frodo Bagins 디렉토리 : / home / frodo Shell : / bin / bash 로그인하지 않았습니다. 메일이 없습니다. 계획이 없습니다.

: ~ # ldapsearch -Y EXTERNAL -H ldapi : /// -b uid = frodo, ou = People, dc = friends, dc = cu

이제 관리해야하는 디렉터리 서비스가 생겼습니다 !!!. 우리는 두 가지 방법을 개발할 것입니다 : 첫 번째부터 패키지까지 LDAP 스크립트, 그리고 다음 기사에서 다룰 두 번째는Ldap 계정 관리자.

우리는 또한 패키지가 LDAP 유틸리티, 디렉토리를 관리하는 데 유용한 일련의 명령을 제공합니다. 이러한 명령이 무엇인지 알기 위해 다음을 실행합니다.

: ~ # dpkg -L ldap-utils | grep / bin
/ usr / bin / usr / bin / ldapmodrdn / usr / bin / ldapurl / usr / bin / ldapdelete / usr / bin / ldapwhoami / usr / bin / ldapexop / usr / bin / ldappasswd / usr / bin / ldapcompare / usr / bin / ldapsearch / usr / bin / ldapmodify / usr / bin / ldapadd

각 명령에 대해 자세히 알아 보려면 다음을 실행하는 것이 좋습니다. 남자. 각각에 대해 설명하면 기사가 매우 길어집니다.

콘솔 유틸리티를 사용하여 데이터베이스 관리

우리는 패키지를 선택합니다 LDAP 스크립트 그러한 작업을 위해. 설치 및 구성 절차는 다음과 같습니다.

: ~ # aptitude install ldapscripts

: ~ # cp /etc/ldapscripts/ldapscripts.conf \ /etc/ldapscripts/ldapscripts.conf.original

: ~ # cp / dev / null /etc/ldapscripts/ldapscripts.conf

: ~ # 나노 /etc/ldapscripts/ldapscripts.conf
SERVER = localhost BINDDN = 'cn = admin, dc = friends, dc = cu'BINDPWDFILE = "/ etc / ldapscripts / ldapscripts.passwd"SUFFIX = 'dc = friends, dc = cu'GSUFFIX = 'ou = Groups'USUFFIX = 'ou = People'# MSUFFIX = 'ou = 컴퓨터'GIDSTART = 10001 UIDSTART = 10001 # MIDSTART = 10000 # OpenLDAP 클라이언트 명령 LDAPSEARCHBIN = "/ usr / bin / ldapsearch"LDAPADDBIN = "/ usr / bin / ldapadd"LDAPDELETEBIN = " / usr / bin / ldapdelete "LDAPMODIFYBIN ="/ usr / bin / ldapmodify "LDAPMODRDNBIN ="/ usr / bin / ldapmodrdn "LDAPPASSWDBIN ="/ usr / bin / ldappasswd "GCLASS ="posixGroup "# UTEMPLATE ="/ etc / etc / etc / etc . /ldapadduser.template "PASSWORDGEN ="echo % u "

### 스크립트는 다음 명령을 사용합니다.
### ldap-utils 패키지

: ~ # sh -c "echo -n 'tupassowrd'> \ /etc/ldapscripts/ldapscripts.passwd"

: ~ # chmod 400 /etc/ldapscripts/ldapscripts.passwd

: ~ # cp /usr/share/doc/ldapscripts/examples/ldapadduser.template.sample \ /etc/ldapscripts/ldapadduser.template

: ~ # nano /etc/ldapscripts/ldapadduser.template
dn : uid = , , objectClass : inetOrgPerson objectClass : posixAccount objectClass : shadowAccount cn : sn : givenName : 이름 표시하기: uid : uidNumber : gidNumber : homeDirectory : loginShell : 우편: 도마뱀 붙이 : 설명 : 사용자 계정

: ~ # 나노 /etc/ldapscripts/ldapscripts.conf
## UTEMPLATE = "/ etc / ldapscripts / ldapadduser.template"주석을 제거합니다.

사용자를 추가해 보겠습니다. 스트라이더 킹 사용자 그룹에 반지 입력 한 데이터를 확인하겠습니다.

: ~ # ldapadduser 보폭 링
[dn : uid = strides, ou = People, dc = friends, dc = cu] "sn"값 입력 : The King [dn : uid = strides, ou = People, dc = friends, dc = cu] 값 입력 "givenName": Strides [dn : uid = strides, ou = People, dc = friends, dc = cu] "displayName"값 입력 : Strides El Rey [dn : uid = strides, ou = People, dc = friends, dc = cu] "mail"에 대한 값 입력 : trancos@amigos.cu LDAP에 사용자 trancos를 성공적으로 추가했습니다. 사용자 trancos의 비밀번호를 성공적으로 설정했습니다.

root @ mildap : ~ # ldapfinger strides
dn : uid = strides, ou = People, dc = friends, dc = cu objectClass : inetOrgPerson objectClass : posixAccount objectClass : shadowAccount cn : strides sn : El Rey givenName : Strides displayName : Strides El Rey uid : strides uidNumber : 10002 gidNumber : 10000 homeDirectory : / home / trancos loginShell : / bin / bash 메일 : trancos@amigos.cu gecos : trancos 설명 : 사용자 계정 userPassword :: e1NTSEF9UnlmcWxCem5iUzBuSzQzTkM3ZFRFcTUwV2VsVnBqRm8 =

사용자에게 암호를 선언합시다 프로, "DN”등록 된 사용자 중 새로 생성 된 사용자 삭제 스트라이더:

: ~ # ldapsetpasswd frodo
사용자 암호 변경 uid = frodo, ou = People, dc = friends, dc = cu 새 암호 : 새 암호 재 입력 : 사용자의 암호를 성공적으로 설정했습니다. uid = frodo, ou = People, dc = friends, dc = cu

: ~ # lsldap -u | grep dn
dn : uid = frodo, ou = People, dc = friends, dc = cu dn : uid = strides, ou = People, dc = friends, dc = cu

: ~ # ldapfinger frodo
dn : uid = frodo, ou = People, dc = friends, dc = cu objectClass : inetOrgPerson objectClass : posixAccount objectClass : shadowAccount uid : frodo sn : Bagins givenName : Frodo cn : Frodo Bagins displayName : Frodo Bagins uidNumber : 10000 gidNumber : 10000 mailNumber : 1 메일 : frodo@amigos.cu gecos : Frodo Bagins loginShell : / bin / bash homeDirectory : / home / frodo userPassword :: e9NTSEF4TnI3ZXN1YXA1VnplK1ZIZXZzbFZKaWF5SVdWeUXNUMXoVjA =

: ~ # ldapdeleteuser 보폭
성공적으로 삭제 된 사용자 uid = strides, ou = People, dc = friends, dc = cu from LDAP

: ~ # lsldap -u | grep dn
dn : uid = frodo, ou = People, dc = 친구, dc = cu

로컬 인증이 올바르게 작동하는지 확인해 보겠습니다.

: ~ # ssh frodo @ mildap
frodo @ mildap의 암호 : Linux mildap 2.6.32-5-686 # 1 SMP Fri May 10 08:33:48 UTC 2013 i686 [---] Debian GNU / Linux는 관련 법률에서 허용하는 한도 내에서 절대 보증이 없습니다. . 마지막 로그인 : mildap.amigos.cu에서 18 년 18 월 54 일 화요일 01:2014:XNUMX
frodo @ mildap : ~ $ pwd
/ 홈 / 프로도
frodo @ mildap : ~ $ 

우리가 쓸 수있는 많은 예가 있지만 불행히도 기사는 매우 길 것입니다. 우리는 항상 우리가 진입 점 일반적인 서비스 문제에. 단일 게시물에서 광범위한 문서를 대체하는 것은 불가능합니다.

패키지에 대해 자세히 알아 보려면 LDAP 스크립트 및 그 명령, 제발 및 상담 남자 ldapscripts.

지금까지 OpenLDAP 기반의 Simple Directory Service는 잘 작동합니다.

지금까지 요약 ...

비즈니스 네트워크에서 서비스를 담당하는 많은 사람들이 Microsoft 제품 기반 서비스를 담당 할 때 Linux로 마이그레이션하려는 경우 다른 서비스 중에서 도메인 컨트롤러 마이그레이션을 고려합니다.

ClearOS 또는 Zentyal과 같은 타사 제품을 선택하지 않거나 다른 이유로 독립을 원할 경우 자체 도메인 컨트롤러 또는 Samba 4에서 자체 Active Directory가되는 힘든 작업을 수행합니다.

그런 다음 문제가 시작되고 다른 실망이 발생합니다. 작동 오류. 그들은 문제를 해결할 수있는 문제의 위치를 ​​찾지 못합니다. 반복적 인 설치 시도. 서비스의 부분적 운영. 그리고 긴 문제 목록.

OpenLDAP와 Samba를 기반으로하는 Linux의 모든 도메인 컨트롤러 또는 Active Directory의 기반은 반드시 다음에 대한 기본 지식을 거쳐야합니다. LDAP 서버 란 무엇이며 설치 방법, 구성 및 관리 방법 등?. Samba의 광범위한 문서를 읽은 사람들은 우리가 의미하는 바를 잘 알 것입니다.

이 질문에 정확하게 답하기 위해 우리는이 기사까지의 전체 기사를 작성했으며 필요한 기사를 계속 진행할 것입니다. 도움이 되셨기를 바랍니다.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   Vidagnu

    OpenLDAP를 사용한 쿼리 인 Fico 게시물을 훌륭하게 만들면 도메인 정책을 만들 수 있습니까? 5 분 동안 활동이 없을 때 활성화되는 화면 보호기, 배경 화면 설정, 실행되지 않는 특정 애플리케이션, 시작 스크립트 설정 등과 같은 연결된 사용자에게 적용합니다.

    감사합니다,
    오스카

    1.    페데리코

      의견 주셔서 감사합니다 !!!. Oscar, Linux에서 이러한 정책은 Linux 클라이언트와 관련하여 다르게 구현된다는 것을 기억하십시오. 그놈은 그것을 달성하기위한 도구를 가져 왔는데 지금은 그 이름이 기억 나지 않습니다. 예, OpenLDAP에서 직접 사용자 계정 정책을 설정할 수 있다는 것을 알고 있습니다. 많은 사람들이 저에게 같은 질문을하고 저는 항상 거의 동일하게 대답합니다. 🙂 이러한 보안 정책은 Linux 클라이언트가 아닌 Microsoft 클라이언트에만 적용됩니다. 두 가지 다른 철학입니다. Active Directory는 Microsft의 개인 Kerberos 및 네트워크 관리자 인 OpenLDAP를 기반으로하는 독점 애플리케이션입니다. 이전에는 Lan Manager에있었습니다. LDAP만으로 Active Directory를 에뮬레이트하는 것은 생각할 수 없습니다. Samba를 통합하거나 Samba 4를 사용하여 달성 가능한지 확인해야합니다. 제 친구, 저는 삼바 4를 한 번도 본 적이 없습니다. 🙂 또한 Zentyal with Active Directory가이를 적용 할 수 있는지도 모르겠습니다 ...하지만이 소프트웨어는 OpenLDAP만이 아닙니다. OpenLDAP + Samba + Kerberos + 내가 잘 모르는 다른 것들입니다. 🙂이 시리즈에서 저는 OpenLDAP만을 다루고 있습니다. 당신이 이것을 따라 가면 제가 전체 시리즈에 대해 쓰고있는 개요에서 볼 수있을 것입니다. 기타 필수 서비스, 모든 것은 OpenLDAP 디렉토리에 대한 인증을 기반으로합니다.

      안부