제목 : FTP에 LDAP 인증 저자 : 백종규 문서 : http://database.sarang.net 2001-01-15 19:37:43 내용 : FTP에 LDAP 인증 기본적인 목적은 각 사용자에 대한 인증을 LDAP를 이용하게 됨으로써 관리의 편리성 및 시스템 보안을 한단계 높일수가 있다. 또한 각종 인증을 LDAP를 이용함으로써 시스템의 통합인증 및 관리의 효율을 높일수 있다. ⊙ FTP(Proftp) LDAP 인증의 장점 - 시스템 계정을 사용하지 않으므로, 보안에 용이하다. - LDAP의 장점인 간편한 시스템 인증 - LDAP 관련 툴의 사용으로 누구나 간편하게 시스템을 관리할수 있다. - 인증에 따르는 부하가 없다. 예를 들어, pam ldap의 경우에도 간편성은 있으나, 팸 라이브러리 자체의 문제로 시스템에 상당한 부하를 일으킨다. ⊙ 다른 인증방식과의 차이점 - 데이터베이스를 이용한 인증은 상당히 유용하나, DB의 부하를 2차적으로 일으키므로 실제로 권장되지 않는 방법이다. 예를 들어, 실제 DB를 이용한 서비스를 하면서, 추가적으로 DB 인증을 하는 것은 되도록 피하는 사항인데, 이에 반하여 LDAP는 간단한 정보검색에 있어서 부하율, 속도에서 탁월한 수행능력을 보여주고 있다. - pam의 인증 같은 경우에 사용상의 편의가 있으나, pam 라이브러리와 기타 모듈(LDAP, ssl)와의 연계성 문제때문에, 통합적인 관리가 불편하다. 아마도 상당한 기간이 지나야만, 이것이 해결되리라 생각된다. - 역으로 풀어서 얘기하면, 지금 설명하는 ftp(여기서는 proftpd)에 대한 LDAP인증의 경우에는 다른 ftp 프로그램에는 이식이 불가능한 단점이 있다. 그러나, 통합 인증인 pam와 개별인증인 ldap_auth_for_proftpd 에 평가를 내린다면, 제반유틸을 사용해서 구성과 운용이 가능하다고 하면, 후자에 점수를 더 줄수가 있는 것이다. ⊙ 설치 1. 패키지 다운로드 Proftpd 1.2.0 pre10 mod_ldap 2. 패키지를 /usr/local/src/로 옮긴다. mv proftpd-1.2.0pre10.tar.gz mod_ldap-2.7.4.tar.bz2 /usr/local/src 2. 압축을 푼다. tar xfvI proftpd-1.2.0pre10.tar.gz tar xfvI mod_ldap-2.7.4.tar.bz2 3. mod_ldap 파일을 proftpd 의 소스디렉토리로 옮긴다. mod_ldap의 소스에 들어 있는 파일을 proftpd 의 contrib 디렉토리로 옮긴다. mv mod_ldap-2.7.4/mod_ldap.c mod_ldap-2.7.4/mod_ldap.conf proftpd-1.2.0pre10/ 4. 컴파일 configure 를 해 주고, make 를 한다. ./configure --with-modules=mod_ldap make make install 5. proftpd 데몬 설정은 관련문서를 참고하기 바란다. 아래의 내용은 ldap 사용을 위한 설정이다. 간단히 서버(LDAPServer), 관리자용 root-DN 및 암호(LDAPDNInfo), 베이스 DN(LDAPDoAuth)을 입력해 주면 된다. LDAPServer localhost LDAPDNInfo cn=Manager,dc=my-domain,dc=com secret LDAPDoAuth on dc=my-domain,dc=com LDAPServer : 서버를 지정한다. 보통은 localhost 이나, 특별한 경우에는 해당하는 LDAP서버 주소를 적도록 한다. LDAPDNInfo : LDAP 접속을 위한 root DN 및 암호를 적는다. 위에서 본것과 같이 rootDN은 빈칸없이 입력하며, rootDN과 암호의 사이는 공백을 사용한다. LDAPDoAuth : 검색할 BASE DN을 명시한다. 형식은 위와 같이 on 다음에 해당하는 BASE DN 을 빈칸없이 입력하도록 한다. 6. slapd 설정 및 사용자추가 사용자 인증을 위해서 /etc/openldap/slapd.oc.conf 에 다음과 같은 objectclass 를 추가해준다. (LDAP 설치와 간단한 참고를 위해서는 홈페이지의 "초보자용 LDAP 설치" 문서를 참고하기 바란다. -------------------------------------------------------------------------------- objectclass posixAccount requires objectclass, cn, uid, uidNumber, gidNumber, homeDirectory allows userPassword, loginShell, gecos, description -------------------------------------------------------------------------------- 그룹 인증을 위해서 /etc/openldap/slapd.oc.conf 에 다음과 같은 objectclass 를 추가해준다. -------------------------------------------------------------------------------- objectclass posixGroup requires gidNumber allows userPassword, memberUid, description -------------------------------------------------------------------------------- slapd.oc.conf의 변경사항을 적용하기 위해서 ldap 를 재시작 해주어야 한다. /etc/rc.d/init.d/ldap restart ldapadd 명령으로 다음과 같은 사용자 정보를 입력하도록 한다. -------------------------------------------------------------------------------- cn=ttt,dc=my-domain,dc=com objectclass=posixAccount cn=ttt uid=ttt uidnumber=2000 gidnumber=100 homedirectory=/home/ttt userpassword={crypt}nOc.OvoHfurOs loginshell=/bin/bash -------------------------------------------------------------------------------- 대충 보면 무슨 말인지 감을 잡을수 있다. 한가지 이상한 것은 userpassword 부분인데, 뭔가 암호화가 되어있다. 이것은 crypt 패스워인데, 이것을 생성하기 위해서는 아래와 같은 명령으로 패스워드를 생성한다음 바로 붙여 넣으면 된다. htpasswd -bc ttt.txt ttt test 위의 명령으로 ttt.txt란 파일에 crypt된 암호가 저장이 된다. userpassworod 구문의 형식 userpassword={crypt}[크립트된 암호문자열] 7. 이제 ftp 데몬을 실행시켜보도록 하자. /etc/rc.d/init.d/proftpd start 8. ftp 클라이언트로 테스트를 해 본다. 만약에 제대로 되지 않는다면, slapd 데몬을 다음과 같은 옵션으로 띄운다음에 /var/log/messages 의 내용을 확인하면서 문제점을 찾도록 한다. slapd -s debug -d 256 & 위의 명령은 slapd의 동작내용을 syslogd 프로그램으로 보낸다. 그러면, /var/log/messages 에 내용이 저장 되며, 지속적으로 보길 원한다면, 다음과 같음 명령으로 로그를 확인하면서 작업 및 테스트를 할수 있다. tail -f /var/log/messages 이제 설치는 모두 끝났고, 이제 어느정도 눈치를 챈 사람은 proftpd 의 설정과 조합하면, 여러가지 기능을 사용할수 있다는 사실을 알수 있을 것이다. 즐거운 리눅싱... - 마음에 꽃이 피기를 바라는 종규 -