일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- openpyxl
- port forwarding
- nohup
- rethinkdb
- create table
- Jupyter
- Materials
- 실행권한
- postgresql
- ubuntu
- nmap
- centos
- ssh
- perfect
- nGrinder
- 28015
- kitura
- mysql
- postgres
- sshpass
- SWIFT
- Jupyter Notebook
- appium server
- PYTHON
- STF_PortForwarding
- insert
- appium
- STF
- ftp
- GoCD
- Today
- Total
don't stop believing
LDAP Server 설치 (on CentOS) 본문
LDAP 서버를 설치하겠습니다.
먼저 OS 버전부터 확인하고 가겠습니다.
$ 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을 포함한 패키지들을 설치합니다.
$ sudo yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
설치가 되었다면 sladp (openldap)을 실행시키고 항상 실행되도록 등록합니다.
$ systemctl start slapd $ systemctl enable slapd
ldap이 정상적으로 실행되었는지 포트를 확인합니다.
ldap의 포트는 389 입니다.
$ 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 명령을 실행하면 비번을 뭍고 해당 비번을 암호화해 줍니다.
암호화된 비번은 설정에 추가됩니다.
$ slappasswd New 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 파일을 만들고 원본에 적용하겠습니다.
$ sudo vim db.ldif
db.ldif 파일안에 아래 내용을 추가합니다.
olcRootPW는 앞서 생성한 암호화된 비번으로 넣습니다. dc의 내용은 사용하는 도메인(ngle.co.kr)으로 넣습니다.
dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=ngle,dc=co,dc=kr dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=ldapadm,dc=ngle,dc=co,dc=kr dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootPW olcRootPW: {SSHA}3ppRnFtC1srY+NRt2q13G2l7f74cqveA
이제 작성한 db.ldif 파일의 내용을 ldap server에 업데이트 합니다.
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying 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)에 업데이트 하겠습니다.
$ sudo vim monitor.ldif
아래와 같이 ldapadm 계정만 접속가능하게 합니다.
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {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
$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={1}monitor,cn=config"
이제 ldap database를 설정할 차례입니다.
database 설정은 /usr/share/openldap-servers/ 폴더안에 있는 sample 파일을 업데이트하고 권한을 설정해 주면 됩니다.
$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG $ sudo chown ldap:ldap /var/lib/ldap/
ldap schema을 적용합니다.
$ 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 파일을 만들고 업데이트 하겠습니다.
$ sudo vim base.ldif
base.ldif 파일안에 아래와 같이 추가합니다.
dn: dc=ngle,dc=co,dc=kr dc: ngle objectClass: top objectClass: domain dn: cn=ldapadm, dc=ngle,dc=co,dc=kr objectClass: organizationalRole cn: ldapadm description: LDAP Manager dn: ou=People, dc=ngle,dc=co,dc=kr objectClass: organizationalUnit ou: People dn: ou=Group, dc=ngle,dc=co,dc=kr objectClass: organizationalUnit ou: Group
base.ldif 파일을 작성했다면 아래 명령으로 directory structure를 빌드합니다.
ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f base.ldif
$ sudo ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f base.ldif Enter 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 파일을 만들고 설정에 업로드 합니다.
$ sudo vim tongchun.ldif
tongchun.ldif 파일에 아래와 같이 엔트리를 작성합니다.
dn: uid=tongchun,ou=People,dc=ngle,dc=co,dc=kr objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: tongchun uid: tongchun uidNumber: 9999 gidNumber: 100 homeDirectory: /home/tongchun loginShell: /bin/bash gecos: tongchun [Admin (at) nGle] userPassword: {crypt}x shadowLastChange: 17058 shadowMin: 0 shadowMax: 99999 shadowWarning: 7
아래 명령으로 업데이트해 유저를 생성합니다.
ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f tongchun.ldif
$ sudo ldapadd -x -W -D "cn=ldapadm,dc=ngle,dc=co,dc=kr" -f tongchun.ldif Enter 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 비번을 설정하려는 유저 정보
$ 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
$ sudo ldapsearch -x cn=tongchun -b dc=ngle,dc=co,dc=kr # extended LDIF # # LDAPv3 # basewith scope subtree # filter: cn=tongchun # requesting: ALL # # tongchun, People, ngle.co.kr dn: uid=tongchun,ou=People,dc=ngle,dc=co,dc=kr objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: tongchun uid: tongchun uidNumber: 9999 gidNumber: 100 homeDirectory: /home/tongchun loginShell: /bin/bash gecos: tongchun [Admin (at) nGle] shadowLastChange: 17058 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 userPassword:: e1NTSEF9UjlwQWVJbzN0T3VEaDM2MmgzTW9xeEtpbzd3dlp3dXk= # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1
여기까지 ldap server 설치와 유저 생성 예제였습니다.
추가로, ldap 서버에 방화벽이 실행되고 있다면 ldap 서비스를 허용할 수 있습니다.
ldap 포트는 TCP 389 입니다.
$ sudo firewall-cmd --permanent --add-service=ldap $ sudo firewall-cmd --reload
추가로, ldap server의 로그를 찍고싶다면 rsyslog 설정 파일(/etc/rsyslog.conf)에 설정을 추가합니다.
$ sudo vim /etc/rsyslog.conf
ldap 로그 설정 항목을 추가합니다.
local4.* /var/log/ldap.log
설정파일을 저장하고 rsyslog를 재시작해줍니다.
$ 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 |