리눅스

Total 331
Today 0
profile_image
관리자
04-12-21 01:05 0개 21회
설치문서
send mail /etc/pam.d/smtp 화일 설정 부분
SMTP_AUTH in sendmail 8.10
Last Update 2000-09-19

1. Introduction
이 소스화일은 http://www.sendmail.org/~ca/email/auth.html을 참조하면서 쓴 글이다.

센드메일 8.10은 SASL에 기초를 두고 작성한 RFC 2554에서 정하고 있는 SMTP AUTH를 지원하고 있다. 이 문서는 센드메일 8.10버전에서 이 기능을 지원하기 위해 설치하고 운영하는 절차에 대해 기술하고 있다.

용어정의
SASL은 이 문서에서 중요하게 사용하고 있는 두가지 용어 authorization identifier 과 authentication identifer을 정의하고 있다.



2. 설치

2.1 Cyrus SASL
cyrus-sasl 프로그램을 가져와서 컴파일한다. 소스 위치는 ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/에 있으며 현재 (2000-7-19) 버전은 1.5.21 버전이다. 이 문서에 포함되어 있는 README, INSTALL을 읽고 Cyrus SASL for System Administrators도 읽어라.
sasl라이브러리는 /usr/local/lib, /usr/local/lib/sasl로 설치가 된다. 이는 /etc/ld.so.conf에 정의한 위치가 아니므로 sendmail컴파일시 위 라이브러리를 찾지 못하며 LD_LIBRARY_PATH를 사용한다 해도 sendmail이 suid비트가 있으므로 이를 무시하여 sendmail이 실행되지 못한다. 따라서 /usr/lib에 ln -s /usr/local/lib/sasl /usr/lib/sasl로 링크시키고 /etc/ld.so.conf에 /usr/local/lib를 추가한 후 /sbin/ldconfig 해두는게 좋다.

sasl 컨피그 화일은 /usr/local/lib/sasl에 있으며 사용할 프로그램.conf와 같은 형식으로 지정한다. 센드메일의 경우 /usr/local/lib/sasl에 Sendmail.conf 를 만들어 pwcheck_method: PAM 를 적고 /etc/pam.d에 smtp화일을 만들어 다음 내용을 적는다.



#%PAM-1.0
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so


만일 제공할 인증메카니즘이 CRAM-MD5, DIGEST-MD5,PLAIN이라면 Sendmail.conf에 pwcheck_method: sasldb로하고 /usr/local/sbin/saslpasswd를 이용하여 sasldb 패스워드 화일을 작성해야 한다.
아웃룩 익스프레스 5.0, 넷스케이프 4.72버전에서 SMTP AUTH기능을 지원하려면 cyrus sasl를 풀고 ./configure --enable-login 과 같이 LOGIN 기능을 포함해야 한다. LOGIN는 rfc에 있는게 아니고 예전부터 지원하던 아이디, 패스워드 인증 방식을 지원하기 위해서 추가한 것이다.


2.2 센드메일 컴파일
센드메일 컴파일할때 devtools/Site에 site.config.m4화일을 만들고
APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')

Build, Build install하면 센드메일이 설치된다.
sendmail.mc화일은 기존 mc화일에 다음 내용을 추가하고 m4를 통해 sendmail.cf를 만들면 된다.

include(`../m4/cf.m4')
VERSIONID(`trade for smtp-only setup and procmail for Korean mail')dnl
OSTYPE(linux)
define(`confPRIVACY_FLAGS', ``authwarnings,noexpn,novrfy'')dnl
FEATURE(nouucp,`reject')dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(local_procmail)dnl
MAILER(local)dnl
MAILER(smtp)dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl


2.3 테스트
1. sendmail -d0.1 -bv root | grep SASL 해서 SASL이 나오는지 확인한다.
2. sendmail을 기동하고 25번 포트로 접속해서 ehlo localhost한후 250-AUTH가 나오는지 확인한다.

% telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 trade.chonbuk.ac.kr ESMTP Sendmail 8.10.2/8.10.2; Thu, 20 Jul 2000 10:34:31 +0900
EHLO trade
250-trade.chonbuk.ac.kr Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 HELP



3. Outlook, Netscape mail 설정
3.1 Outlook
도구> 계정> 보내는 메일서버에서 암호 사용 - LOGIN id, passwd설정
3.2 Netscape mail
Edit> Preference > Mail > Mail Server > Use Secure Socket Layer ...에서 If Possible를 선택한다.


4. telnet 상에서 확인 (각 rfc참조)
4.1 http://www.sendmail.org/~ca/email/authrealms.html를 참조
4.2 LOGIN
4.3 PLAIN
4.4 DIGEST-MD5
4.5 CRAM-MD5



5. 추가해야할 사항
5.1 ssl + plain,login
PLAIN, LOGIN은 암호화 되지 않은채 패스워드 정보를 서버에 넘기므로 보안상 위험하다. 이는 SSL과 함꼐 사용되어야 한다.

5.2 smtp_auth와 ldap결합

댓글목록

등록된 댓글이 없습니다.