일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- appium server
- nmap
- rethinkdb
- perfect
- SWIFT
- STF_PortForwarding
- postgres
- ssh
- STF
- 28015
- port forwarding
- create table
- nGrinder
- ubuntu
- 실행권한
- nohup
- ftp
- centos
- GoCD
- appium
- insert
- Jupyter Notebook
- PYTHON
- Materials
- kitura
- openpyxl
- postgresql
- Jupyter
- mysql
- sshpass
- Today
- Total
don't stop believing
LDAP Server 설치 (on CentOS) 본문
LDAP 서버를 설치하겠습니다.
먼저 OS 버전부터 확인하고 가겠습니다.
123456789101112131415161718$ grep . /etc/*-release/etc/centos-release:CentOS Linux release 7.5.1804 (Core)/etc/os-release:NAME="CentOS Linux"/etc/os-release:VERSION="7 (Core)"/etc/os-release:ID="centos"/etc/os-release:ID_LIKE="rhel fedora"/etc/os-release:VERSION_ID="7"/etc/os-release:PRETTY_NAME="CentOS Linux 7 (Core)"/etc/os-release:ANSI_COLOR="0;31"/etc/os-release:CPE_NAME="cpe:/o:centos:centos:7"/etc/os-release:HOME_URL="https://www.centos.org/"/etc/os-release:BUG_REPORT_URL="https://bugs.centos.org/"/etc/os-release:CENTOS_MANTISBT_PROJECT="CentOS-7"/etc/os-release:CENTOS_MANTISBT_PROJECT_VERSION="7"/etc/os-release:REDHAT_SUPPORT_PRODUCT="centos"/etc/os-release:REDHAT_SUPPORT_PRODUCT_VERSION="7"/etc/redhat-release:CentOS Linux release 7.5.1804 (Core)/etc/system-release:CentOS Linux release 7.5.1804 (Core)
이제 openldap을 포함한 패키지들을 설치합니다.
1$ sudo yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
설치가 되었다면 sladp (openldap)을 실행시키고 항상 실행되도록 등록합니다.
12$ systemctl start slapd$ systemctl enable slapd
ldap이 정상적으로 실행되었는지 포트를 확인합니다.
ldap의 포트는 389 입니다.
1234$ netstat -antup | grep -i 389(No info could be read for "-p": geteuid()=1000 but you should be root.)tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN -tcp6 0 0 :::389 :::* LISTEN -
ldap 설정을 위해 먼저 ldppassword를 생성합니다. slappasswd 명령을 실행하면 비번을 뭍고 해당 비번을 암호화해 줍니다.
암호화된 비번은 설정에 추가됩니다.
1234$ slappasswdNew password:Re-enter new password:{SSHA}3ppRnFtC1srY+NRt2q13G2l7f74cqveA
ldap 설정 파일은 /etc/openldap/slapd.d/ 경로 안에 있습니다.
설정 항목 중 olcSuffix와 olcRootDN, olcRootPW의 변경이 필요합니다. 설정 파일은 /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif 입니다. 하지만 직접 수정하는 것을 권장하지 않습니다.
olcSuffix – Database Suffix, it is the domain name for which the LDAP server provides the information. In simple words, it should be changed to your domain name.
olcRootDN – Root Distinguished Name (DN) entry for the user who has the unrestricted access to perform all administration activities on LDAP, like a root user.
olcRootPW – LDAP admin password for the above RootDN.
먼저 아래와 같이 db.ldif 파일을 만들고 원본에 적용하겠습니다.
1$ sudo vim db.ldif
db.ldif 파일안에 아래 내용을 추가합니다.
olcRootPW는 앞서 생성한 암호화된 비번으로 넣습니다. dc의 내용은 사용하는 도메인(ngle.co.kr)으로 넣습니다.
1234567891011121314dn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=ngle,dc=co,dc=krdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcRootDNolcRootDN: cn=ldapadm,dc=ngle,dc=co,dc=krdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcRootPWolcRootPW: {SSHA}3ppRnFtC1srY+NRt2q13G2l7f74cqveA
이제 작성한 db.ldif 파일의 내용을 ldap server에 업데이트 합니다.
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
123456789$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"
monitor 접속 계정에 대한 설정도 해야 합니다.
monitor.ldif 파일을 만들고 원본 설정파일(/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif)에 업데이트 하겠습니다.
1$ sudo vim monitor.ldif
아래와 같이 ldapadm 계정만 접속가능하게 합니다.
1234dn: olcDatabase={1}monitor,cn=configchangetype: modifyreplace: olcAccessolcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=ngle,dc=co,dc=kr" read by * none
monitor.ldif 파일을 저장하고 설정에 업데이트 합니다.
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
12345$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={1}monitor,cn=config"
이제 ldap database를 설정할 차례입니다.
database 설정은 /usr/share/openldap-servers/ 폴더안에 있는 sample 파일을 업데이트하고 권한을 설정해 주면 됩니다.
12$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG$ sudo chown ldap:ldap /var/lib/ldap/
ldap schema을 적용합니다.
123$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
도메일 정보도 변경해 줍니다. 마찬가지로 base.ldif 파일을 만들고 업데이트 하겠습니다.
1$ sudo vim base.ldif
base.ldif 파일안에 아래와 같이 추가합니다.
1234567891011121314151617dn: dc=ngle,dc=co,dc=krdc: ngleobjectClass: topobjectClass: domaindn: cn=ldapadm, dc=ngle,dc=co,dc=krobjectClass: organizationalRolecn: ldapadmdescription: LDAP Managerdn: ou=People, dc=ngle,dc=co,dc=krobjectClass: organizationalUnitou: Peopledn: ou=Group, dc=ngle,dc=co,dc=krobjectClass: organizationalUnitou: Group
base.ldif 파일을 작성했다면 아래 명령으로 directory structure를 빌드합니다.
ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f base.ldif
123456789$ sudo ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f base.ldifEnter LDAP Password:adding new entry "dc=ngle,dc=co,dc=kr"adding new entry "cn=ldapadm, dc=ngle,dc=co,dc=kr"adding new entry "ou=People, dc=ngle,dc=co,dc=kr"adding new entry "ou=Group, dc=ngle,dc=co,dc=kr"
이제 ldap 설정은 완료되었습니다.
우선 예제로 tongchun 계정을 등록해 보겠습니다.
역시나 ldif 파일을 만들고 설정에 업로드 합니다.
1$ sudo vim tongchun.ldif
tongchun.ldif 파일에 아래와 같이 엔트리를 작성합니다.
1234567891011121314151617dn: uid=tongchun,ou=People,dc=ngle,dc=co,dc=krobjectClass: topobjectClass: accountobjectClass: posixAccountobjectClass: shadowAccountcn: tongchunuid: tongchunuidNumber: 9999gidNumber: 100homeDirectory: /home/tongchunloginShell: /bin/bashgecos: tongchun [Admin (at) nGle]userPassword: {crypt}xshadowLastChange: 17058shadowMin: 0shadowMax: 99999shadowWarning: 7
아래 명령으로 업데이트해 유저를 생성합니다.
ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f tongchun.ldif
123$ sudo ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f tongchun.ldifEnter LDAP Password:adding new entry "uid=tongchun,ou=People,dc=ngle,dc=co,dc=kr"
등록한 tongchun 계정에 아래 명령으로 비번을 설정합니다.
ldappasswd -s ngle1234 -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -x "uid=tongchun,ou=People,dc=ngle,dc=co,dc=kr"
-s 옵션은 설정하려는 비번
-D ldapadm 정보
-x 비번을 설정하려는 유저 정보
12$ sudo ldappasswd -s ngle1234 -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -x "uid=tongchun,ou=People,dc=ngle,dc=co,dc=kr"Enter LDAP Password:
등록된 유저 정보를 검색하려면 ldapsearch 명령을 사용하면 됩니다.
ldapsearch -x cn=tongchun -b dc=ngle,dc=co,dc=kr
12345678910111213141516171819202122232425262728293031323334$ sudo ldapsearch -x cn=tongchun -b dc=ngle,dc=co,dc=kr# extended LDIF## LDAPv3# base with scope subtree# filter: cn=tongchun# requesting: ALL## tongchun, People, ngle.co.krdn: uid=tongchun,ou=People,dc=ngle,dc=co,dc=krobjectClass: topobjectClass: accountobjectClass: posixAccountobjectClass: shadowAccountcn: tongchunuid: tongchunuidNumber: 9999gidNumber: 100homeDirectory: /home/tongchunloginShell: /bin/bashgecos: tongchun [Admin (at) nGle]shadowLastChange: 17058shadowMin: 0shadowMax: 99999shadowWarning: 7userPassword:: e1NTSEF9UjlwQWVJbzN0T3VEaDM2MmgzTW9xeEtpbzd3dlp3dXk=# search resultsearch: 2result: 0 Success# numResponses: 2# numEntries: 1
여기까지 ldap server 설치와 유저 생성 예제였습니다.
추가로, ldap 서버에 방화벽이 실행되고 있다면 ldap 서비스를 허용할 수 있습니다.
ldap 포트는 TCP 389 입니다.
12$ sudo firewall-cmd --permanent --add-service=ldap$ sudo firewall-cmd --reload
추가로, ldap server의 로그를 찍고싶다면 rsyslog 설정 파일(/etc/rsyslog.conf)에 설정을 추가합니다.
1$ sudo vim /etc/rsyslog.conf
ldap 로그 설정 항목을 추가합니다.
1local4.* /var/log/ldap.log
설정파일을 저장하고 rsyslog를 재시작해줍니다.
1$ sudo systemctl restart rsyslog
'Tools > LDAP & CAS' 카테고리의 다른 글
OpenLDAP + phpLDAPAdmin 설치 (on Ubuntu) (1) | 2019.03.26 |
---|---|
LDAP Client 설치 (on CentOS) (2) | 2018.10.12 |
CAS 서버 설치 (on CentOS) (0) | 2018.10.11 |