Solaris

Sendmail 이란?

알 수 없는 사용자 2008. 2. 29.
728x90

Sendmail 이란?

메일 시스템의 구성

MUA(Mail User Agent)

이용자가 메일을 보내기 위해 사용하는 프로그램을 말하며 Outlook express나 Netscape의 메신저, mailx, mtool과 간은 프로그램이 해당된다.

MTA(Mail Transfer Agent)

MUA가 전송하는 메일을 외부메일서버로 전달하거나, 메일을 닫는 대상 메일서버에서는 mail을 전송받아 /var/spool/mail 디렉토리 우편함에 저장하는 프로그램을 말하며 , 대표적인 프로그램이 sendmail 이다.

MDA(Mail Delivery Agent)

만약에 메일을 보내는 클라리언트와 받는 서버가 동일한 로컬 호스트라면 MTA가 작동하지 않고 mail.local 과 같은 프로그램이 구동되어 메일을 /var/spool/mail디렉토리에 분배한다.

POP3(Post Office Protocol Version 3)

클라이언트는 Outlook Express나 Netscapr Messanger와 같은 프로그램을 이용하여 서버의 메일을 PC로 내려 받아서 읽을수 있게 지원하는 데몬이다. 포트번호 110번을 사용한다

IMAP(Internet Message Access Protocol)

포트 번호 143번을 사용하여 서버의 메일을 PC로 내려받을수 있도록 지원하는 데몬이다. POP3와 다른점은 메일을 PC쪽으로읽어가도 서버에 메일 계속존재한다는 점이다.

 Sendmail은 http://www.sendmail.org 에서 다운로드 받을수 있다. Sendmail에 대한 release정보는 http://www.sendmail.org/current_release.html/ 에서 확인할수 있다.

# rpm –qa | grep sendmail
# rpm –qa | grep imap

rpm 명령을 이용하여 sendmail와 imap 패키지가 설치되었는지 확인한다.

# /etc/init.d/sendmail start
sendmail 데몬 프로세스를 구동시킨다.

/etc/xinetd.d/imap 과 /etc/xinetd.d/ipop3 파일에서 서비스를 enable 로 설정한 뒤
# /etc/init.d/xinetd restart  시킨다.

 

2. sendmail 설정 파일들

  설정파일들

내용

/usr/sbin/sendmail

sendmail 데몬 실행 파일

/etc/init.d/sendmail

Sendmail을 구동시키는 스크립트 파일

/etc/sysconfig/sendmail

Sendmail Queue 설정파일

/etc/mail/sendmail.cf

sendmail 주 설정 파일

/etc/mail/local-host-names

메일을 처리할 도메인에 대한 정보 기록 파일

/etc/mail/access

접근제어 설정파일

/etc/mail/domaintable

도메인 매핑 설정파일

/etc/mail/mailertable

메일경로 변경 설정파일

/etc/mail/virtualtable

가상 유저 테이블 설정 파일

/etc/mail/aliases

사용자 별명 설정파일

$HOME/.forward

일반 계정사용자가 자신에게 들어 오는 메일을 다른 주소로 포워딩

 

/etc/mail/sendmail.cf 구성파일의 주요 내용들

V9/Berkery

Level 9 config file format

Cwlocalhost

메일 서버로 만들고자하느 도메인을 지정한다. 복수지정이가능 하다

Fw/etc/mail/host-local-names

Host-local-names파일에 있는 도메인에 관하여 모두 메일 처리가 가능하다.

FR-o /etc/mail/relay-domains

릴레이를 허용할 도메인을 설정하는 파일을 지정한다. access파일에서 설정하므로 이파일은 거의 사용하지 않는다

Djtest1.com

j 뒤에 특정값을 지정하면 그 특정겂을 강제적으로 메일이 처리될 수 있도록 한다.

DMtest1.com

메일을 전송할때 메일 전송자의 주소를 메일 호스트와 다르게 표시하여 전달해 주는 기능을 한다

Kmailertable hash –o etc/mail/mailertable.db

메일러 테이블을 저장한 파일이름을 지정한다.

Kvirtuser hash –o /etc/mail/virtusertable.db

가상사용자 테이블을 저장한 파일이름을 지정한다

Laccess hash –o /etc/mail/access.db

접근제어를 설정하는 파일명을 지정한다.

O AliasFile=/etc/aliases

Alais 데이터베이스 파일의 이름을 설정한다.

O MaxMessageSize=1000000

메일 메시지의 최대크기(바이트)를 지정한다

O TempFileMode

메일큐에 있는 임시 파일들의 기본 퍼미션을 설정한다

O LogLevel=9

기본 로그 레벨을 설정

O QueueDirectory=/var/spool/mqueue

메일큐 디렉토리를 설정

O Timeout.queuereturn=5d

메시지ㅏ 발신자에게 반환되기까지의 시간 (여기서는 5일)

O MinQueueAge=30m

메일을 보내기 전 메일큐에서 대기하는 시간을 설정

O DefaultUser=8:12

Mailer 기본사용자의 UID:GID

O ForwardPath=$z/.forward,$w:$z/.forward

사용자의 계정 디렉토리안에 .forward라는 파일이 존재하게 되면 메일 서버로 오는 메일들을 이 파일 안에 기록된 메일 주소로 전달해 주는 기능을 한다.

 

4. sendmail start and stop

 

-- 자동

# /etc/init.d/sendmail start

# /etc/init.d/sendmail stop

-- 수동

# pkill sendmail

# /usr/lib/sendmail -bd -q15m

 

5. 메일 서비스를 지원하는 추가 파일 또는 프로그램들

이름

내용

mail, mailx

user agent

mailq

mail queue list 를 출력

mailstats

/etc/mail/sendmail.st 파일에 저장되어있는 메일 통계정보를 읽는데 사용되는 프로그램이다.

mconnect

sendmail을 interactive로 구동

vacation

수신되는 메세지에 대해 자동으로 응답하도록 하는 프로그램

메일 접근을 제어하는 access 파일 설정예제

 # vi  /etc/mail/access

 localhost.localdomain    RELAY
 localhost                      RELAY
 127.0.0.1                       RELAY
 guest@unix00.gcc.go.kr     “571 메일 보내지 말라고 그랬지!!!”
g2.go.kr                             “550 이 도메인에서 오는 메일은 처리하지 않습니다”

 

# makemap hash /etc/mail/access.db < /etc/mail/access

가상 유저 테이블을 설정하는 virtualtable 파일 설정 예제

# vi  /etc/mail/virtualtable

webmaster@unix00.gcc.go.kr               user00

# makemap hash /etc/mail/virtualtable.db < /etc/mail/virtualtable

unix00의 webmaster에게 전송된 메일을 user00이 수신한다.

사용자 별명을 설정하는 aliases 파일 설정 예제

# vi /etc/aliases

master:  root, user00, root@kiwi.gcc.go.kr

# newaliases  
/etc/aliases.db 파일을 생성하는 명령이다.

 

일반계정 사용자가 자신의 메일을 포워딩하기 위해 설정하는 .forward 파일 설정예제

# vi $HOME/.forward

user00@kiwi.gcc.go.kr

수신되는 모든 메일을 kiwi 시스템의 user00사용자에게로 포워딩된다. Sendmail은 기본적으로 사용자 계정 디렉토리와 그 상위 디렉토리에 대한 Group에 쓰기 권한이 있으면 .forward파일을 읽지 않는다.

 

 

728x90

댓글