리눅스

Total 331
Today 0
profile_image
관리자
04-12-21 00:47 0개 21회
설치문서
RedHat 7.x 에서 sendmail 을 이용한 SMTP + AUTH
어려 문서를 참고 하여 SMTP + AUTH 에 관한 가이드를 만들어 보았습니다.
Redhat 6.2, 7.0, 7.1 Solaris 2.7, 2.8 에서 설치를 해 보았지만
성공한것은 Redhat 7.x에서만 되더군요.
openssl, sasl 파일을 컴파일 해서 센드메일을 설치 했지만 되지 안더군요..쩜
무엇이 문제인지...음..

sendmail 8.9 버젼대에서 와서 Anti SPAM 운동의 일환으로 relay 허용이 
default로 막히게 되었다. 하지만 smtp relay를 설정하는 것이 ip address또
는 domain name으로 이루어지게 되어 있어서 동적 ip에 대해 relay허용 문제
가 논란이 되곤했다. 이 문제를 해결하기 위하여 8.10 버젼에서 smtp auth 기
능이 추가가 되었다. 

하지만 이 기능은 기본적으로 들어 있지는 않으며, 인증을 위해서는 cyrus-
sasl library(libsasl이라는 이름으로 패키징 되어 있기도 하다)가 필요하며 
cyrus-sasl library는 또한 openssl package를 필요로 하게 된다. 
( Redhat 7.x부터 기본적으로 설치 되어 있다 )

 [설정 파일의 위치및 파일이름 변경 ] 

sendmail 8.10.x 에 와서 기존의 파일들의 위치와 이름이 변경된 것이 있다. 
그중 특이한 몇개만 말한다면 일단 sendmail의 모든 설정 파일들은 /etc/mail 
로 옮겨 졌다. 즉 /etc 에 위치하던 sendmail.cf 가 /etc/mail/sendmail.cf 
로 이동을 했다는 의미이다. 
또한 /etc/sendmail.cw 가 /etc/mail/local-host-name 으로 변경 되었다는 것
을 유의하자. 
 
1. Sendmail을 이용한 SMTP + AUTH 설정 하기 

1.1 sasl에서 인증 방식 지정

# cd /usr/lib/sasl           
# touch Sendmail.conf
# vi Sendmail.conf 

; 아래내용 추가 ( passwd 방식이면 pwcheck_method: passwd )

pwcheck_method: shadow 

 

1.2 sendmail 설치한다. ( http://sendmail.org )

1) 압축 파일을 푼다.
# gzip –d sendmail.8.11.6.tar.gz
# tar -xvf sendmail.8.11.6.tar

2) 센드메일 컴파일시 sasl library를 포함 하도록 한다.
# cd sendmail-8.11.6/devtools/Site
# vi  site.config.m4 

APPENDDEF(`confENVDEF', `-DSASL')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl')
APPENDDEF(`confLIBDIRS', `-L/usr/lib') 
APPENDDEF(`confINCDIRS', `-I/usr/include')

3) 센드메일을 컴파일 한다.
# cd sendmail-8.11.1
# ./Build –c

4) 센드메일 데몬을 기존의 센드메일 데몬과 바꾼다.
주의 할 점은 만약에 컴파일한 데몬이 이상이 생겨 동작하지 않을 경우를 대비
하여 기존 파일을 백업해야 함
# cd obj.Linux.2.2.14-5.0.i586/sendmail
# mv /usr/sbin/sendmail /usr/sbin/sendmail-org
# cp sendmail /usr/sbin/sendmail

5) sendmail.cf 파일을 만든다.
# cd /usr/tmp/sendmail-8.11.1/cf/cf
# vi generic-linux.mc

divert(-1)
divert(0)dnl
VERSIONID(`@(#)inet-mx.mc       (Inet, Inc. MX.) 8/18/98')dnl
OSTYPE(linux)dnl
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
FEATURE(`access_db', `dbm -o /etc/mail/access')dnl
FEATURE(`mailertable', `dbm /etc/mail/mailertable')dnl  
FEATURE(`virtusertable',`dbm -o /etc/mail/virtusertable')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl


# m4 ../m4/cf.m4 generic-linux.mc > sendmail.cf

6) sendmail.cf 파일을 기존파일과 바꾼다.
마찬가지로 기존 sendmail.cf 파일을 백업 시킨다.
# mv /etc/mail/sendmail.cf /etc/mail/sendmail.cf-org
# cp sendmail.cf /etc/mail/sendmail.cf

7) 센드메일 데몬을 구동시킨다.
# pkill sendmail
# /usr/sbin/sendmail -bd -q30m

1-3 Client PC 에서는 아래처럼 설정을 해 주어야 한다.
  

Netscpae mailer 
Edit>Preferences>Mail & Newsgroups Account Settings >Outgoing Server 
(SMTP)

에서 Use name and password 에 체크 하고 User Name을 넣어 주면 된다.

Outlook Express 6 
도구>계정>메일>계정등록정보>서버>보내는 메일서버 

에서 "인증 필요"에 체크를 하고 옆의 "설정"을 클릭한후 로그온 정보에 계정 
이름과 암호를 넣는다.

 

1-4 참고 사이트
http://www.sendmail.org/~ca/email/auth.html

댓글목록

등록된 댓글이 없습니다.