sendmail
-용어
MTA : 사용자로부터 MUA를 통해 전달받은 메시지를 다른 메일서버로 전달 해주는 프로그램(sendmail,exim,qmail)
MUA : 사용자가 메일을 보내기 위하여 사용하는 프로그램(Outlook)
SMTP : 다른 서버로 메일을 보내거나 받을 때 이용하는 프로토콜
POP3 : SMTP에 의해 메일서버에 도착한 메일을 클라이언트가 받을 때 사용하는 프로토콜
MDA : MTA가 수신한 메시지를 사용자의 우편함에 쓰기 위한 프로그램
MRA : 리모트 서버에 있는 우편함으로부터 사용자의 MUA로 메시지를 가져오는 프로그램
a@naver.com이 b@naver.com에게 보낼때는 로컬임
-----------------------------------
같은 도메인은 MUA-MTA-MDA 순?
다른 도메인은 MUA-MTA-MDA-MTA-MDA-MUA이 순
--------------------------------------------------
sendmail에 사용되는 명령 일부
C:클래스 설정
F:클래스를 적은파일을 설정
D
O:옵션지정
S:룰셋(규칙) 정의
vim /etc/main/sendmail.cf
--------------------------------------------------------------------
Cwlocalhost// Cw뒤에 사용할 도메인을 적음(여러개도 가능)
Fw/etc/mail/local-host-names// 파일을 만들어 도메인을 적음
O ForwardPath=$z/.forward.$w:$z/.forward
-> 사용자(A) 디렉토리에 .forward파일을 만들고 그 파일에 메일주소(B)를 적어놓으면 사용자(A)에게 오는 메일은 모두 파일에 적어놓은 메일주소(B)로 전달됨
Kaccess hash -T<TMPF> /etc/mail/access
-> 특정한 것만 메일릴레이에서 제외시키거나 허용 할 수 있는 파일을 명시
O AliasFile=/etc/mail/aliases// 메일 alias를 지정해놓은 파일 설정
O SevenBitInput=False// 7비트 설정여부, 8비트를 쓸 경우 False로 설정
O EightBitMode=pass8// 7bit를 False로 설정 후 pass8로 설정시 8비트로 작동
O LogLevel=9// 로그레벨 설정, 0-15 level까지 있음
O MaxMessageSize=0// 메일 용량 제한(단위Byte), 주석 시 용량 제한 없음
O QueueDirectory=/var/spool/mqueue// 큐(임시저장)의 경로
O SmtpGreetingMessage=$j Sendmail...// SMTP 접속 시 뜰 문구
O DaemonPortOptions=Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1
-> Relay기능을 수행하는 서버가 로컬만 가능한지 모두 가능한지를 설정하는 부분
Addr=127.0.0.1이 있으면 외부에서 접근이 안 되므로 삭제해줌, 주석시 /etc/access를 참고
O ConnectionRateThrottle=15// 엑세스 가능한 횟수
O ConnectionRateWindowSize=10m// clientIP가 10m동안 위 횟수만큼만 접속 가능
(ConnectionRate* 옵션은 access파일에 쓰이는 옵션)
--------------------------------------------------------------------
# vim /etc/mail/local-host-names
-> local-host-names 파일은 sendmail.cf 파일에 Cw지시문처럼 메일서버에 이용할 도메인을 지정해주는 파일임.
--------------------------------------------------------------------
localhost
localhost
--------------------------------------------------------------------
# vim /etc/mail/aliases
--------------------------------------------------------------------
mailer-daemon: postmaster
news: root// news에게 메일을 보내면 메일은 root에게 감
webmaster: root
noc: root
ja: root, power// ja에게 메일을 보내면 root와 power에게 감
--------------------------------------------------------------------
# newaliases// 새로고침같은 역할
# vim /etc/mail/access
--------------------------------------------------------------------
...
Connect:localhsotRELAY// 릴레이 옵션 설정
GreetPause:localhost0
ClientConn:localhost0// 동시에 세션이 맺어질 수 있는 수 설정
ClientRate:localhost0// 분당 접속 가능한 횟수 설정(시간은 sendmail.cf에서 O ConnectionRateWindowSize=10m 지시로 설정)
...
--------------------------------------------------------------------
# makemap hash /etc/mail/access < /etc/mail/access
-> 일반파일로는 sendmail에서 해석이 불가능 하므로 access파일을 DB형태로 바꿔줌
Connect:localhsot에 쓰이는 옵션 목록
OK : 다른 룰이 거부하는 경우에도 메일의 모든것을 허용함.
RELAY : 지정된 호스트의 메일 중계를 허용함, 지정된 메일의 수신/발신을 허용
REJECT : 지정된 호스트의 메일 수신/발신을 거부함, 발신자에게 거부 통보를 함
DISCARD : 메일을 수신 후 폐기해버림, 발신자에게 폐기통보를 하지 않음
501 <error> : 지정된 메일 주소나 도메인에 대해 발신자의 주소가 전체 또는 부분적 으 로 일치할 경우 메일 거부 <error>에는 포함할 메시지 적음
502 <error> : 발신메일주소에 host가 없을 경우 메일을 받지 않음
550 <error> : 특정 도메인에 관련된 메일을 거부 <error>부분에는 포함할 메시지 적음
571 <error> : 특정 도메인 또는 메일 주소에 대해 경고 메시지를 보내고 메일을 거부 <error>에는 포함할 메시지 적음
-실습
# apt-get install sendmail
# apt-get install dovecot-common
# apt-get install dovecot-pop3d
# vim /etc/mail/sendmail.mc
--------------------------------------------------------------------
...
DAEMON_OPTIONS('............ Addr=127.0.0.1')// Addr=127.0.0.1을 지워줌
DAEMON_OPTIONS('............ Addr=127.0.0.1')// 한행 더 지워줌
--------------------------------------------------------------------
# m4 /etc/mail/sendmail.mc
# vim /etc/sendmail/access
--------------------------------------------------------------------
...
Connect:192.168.0RELAY// 192.168.0으로 시작 하는 모든 IP를 허용
--------------------------------------------------------------------
# makemap hash /etc/mail/access < /etc/mail/access
# vim /etc/mail/local-host-names
--------------------------------------------------------------------
skill.com// 사용하고자 하는 메일의 도메인을 적어줌
--------------------------------------------------------------------
# vim /etc/dovecot/dovecot.conf
--------------------------------------------------------------------
protocols = pop3
listen = *
disable_plaintext_auth = no
mail_location = mbox:~/mail:INBOX=/var/mail/%u
--------------------------------------------------------------------
# /etc/init.d/sendmail restart
# /etc/init.d/dovecot restart