티스토리 뷰

메일 방송 절차 (아래 순서로)
- 대부분 서버 관리자라면 2번째 SMTP 묶음에 해당할듯 함

MUA (Mail User Agent) : 클라이언트 메일 관리 ( 아웃룩, 기타 등등 프로그램들...)

 

SMTP : MAS (Mail submission Agent) : MUA로 부터 메일 받음
SMTP : MTA (Mail Transfer Agent) : Email 메세지를 다른 호스트로 전송


SMTP : MTA (Mail Transfer Agent) 
SMTP : MDA (Mail Delivery Agent) : Email 메세지를 메일 박스로 전송


MRA (Mail Retrieval Agent) : Remote 메일 서버로 부터 메일을 가져옴
MUA (Mail User Agent)



[Sendmail]

SMTP (Simple Mail Transfer Protocol) 이용함

 

메일큐 (보낼 메일 일시 저장)
- /var/spool/mqueue 

받은메일함
- /var/spool/mail

메일서버 ↔ 메일서버 (SMTP)

클라이언트 실제 메일 보는 사람 (아웃룩 익스프레스) ↔ 메일서버 (POP)

 


센드메일 패키지 찾아보기


rpm -qa | grep sendmail

rpm -qa | grep dovecot 



패키지 없으면 센드메일 인스톨 하자!


- yum install sendmail*
- yum install dovecot
- yum -y install cyrus-sasl-md5 (인증을 위해 sasl 라이브러리 설치) ← 어디에 쓰는놈인지는 모르겠따 그냥 깐다.!

 

 

Sendmail 설정

 

vi /etc/mail/sendmail.mc

아래 라인의 주석을 제거 (dnl제거)
- 52 lines : TRUST_AUTH_MECH('EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
- 53 lines : define('confAUTH_MECHANISMS', 'EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
- 116 lines : DAEMON_OPTIONS ('Port=smtp, Addr=0.0.0.0, Name=MTA') 수정 
(127.0.0.1 → 0.0.0.0 수정, 모든 ip에서 사용가능)
- 123lines : DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea') 주석 해제

/etc/mail/sendmail.mc 파일을 새롭게 리빌드 (sendmail.cf 를 재생성)
- m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

요즘은 make -C /etc/mail 하면 변경내용이 설정파일에 적용이 된다네...

 

/etc/init.d/sendmail restart (정상적으로 재시작 되면 셋팅상 문제는 없을것이다)


포트 확인

0.0.0.0:25 : 모든 아이피에 대해서 25번 오픈되어 있으면 정상인듯...

 

[root@localhost takakocap]# netstat -anlp | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1935/sendmail: acce

 

 

프로세스 확인

 

[root@localhost mqueue]# ps -ef | grep sendmail
root 2355 1 0 10:10 ? 00:00:00 sendmail: accepting connections
smmsp 2363 1 0 10:10 ? 00:00:00 sendmail: Queue 
runner@01:00:00 for /var/spool/clientmqueue

accepting 대신 시스템 부하시 rejecting 이라고 뜰수도 있다고 함


 

saslauthd = 인증
sendmail = 데몬 (25)

웹메일(143) 및 아웃룩(110) 운용 (Dovecot 110, 143)

 

 

 네임서버 zonefile 에 대해 아래열 추가
 - mail IN A XXX.XXX.30.229



vim /etc/mail/local-host-names


- 도메인 수신 설정 내가 원하는 도메인으로 들어온 메일만 받게끔...(자기 도메인 적어주면 되는듯)

- mail.kensei.co.kr 라인추가 



vim /etc/mail/sendmail.cf 수정


- Cwlocalhost → Cwkensei.co.kr
- O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA → O DaemonPortOptions=Port=smtp,Name=MTA
- #O MaxMessageSize=0 기본은 주석처리 되어 있어서 제한이 없지만 주석해제 하고 용량을 제한가능하다. 



메일 사이즈 제한되어 있을때 로그 메세지

 

외부로 발송시...
Jul 23 14:51:09 localhost sendmail[7118]: o6N5p9xV007118: message size (2079) exceeds maximum (100)
SYSERR(root): savemail: cannot save rejected email anywhere

외부에서 내부로 발송시
Jul 23 15:05:39 localhost sendmail[7263]: o6N65dwi007263: --- 250-SIZE 100
Jul 23 15:05:39 localhost sendmail[7263]: o6N65dwi007263: --- 552 5.2.3 Message size exceeds fixed 
maximum message size (100)



vim /etc/mail/access 아래라인 추가

원격지에서 Outlook 및 thunderbird 등과 같이 원격에서 메일 보낼 경우 해당 원격지 아이피도 RELAY 에 명시해준다.


- kensei.co.kr RELAY

- XXX.XXX.30.229 RELAY 



아래 부분은 불량유저 메일 수발신 차단이라나? access 라인밑에 추가해주면 되는듯?

- To:baduser@ ERROR:550 Mailbox disabled for badlocaluser
- From:baduser@ ERROR:"550 We don't accept mail from spammers"

위 옵션이 먹을려면 /etc/mail/sendmail.mc

- FEATURE(`blacklist_recipients') 주석해제 되어 있으면 되는듯? 


makemap hash /etc/mail/access < /etc/mail/access



vim /etc/dovecot.conf

 

아래열들 주석 제거

protocols = imap imaps pop3 pop3s
listen = [::]

login_executable = /usr/libexec/dovecot/pop3-login/
login_executable = /usr/libexec/dovecot/imap-login
login_user = dovecot
auth_executable = /usr/libexec/dovecot/dovecot-auth

 

vim /etc/sysconfig/sendmail


- QUEUE=1h 이 옵션은 큐에 쌓인 메일을 얼마후 다시 보낼지 옵션 디폴트는 1시간, 15분 - 30분 정도면 적당.


- Timeout.queuereturn=5d 5일간 메일 보낼려고 5일간 시도 하게 함

- Timeout.queuewarn=4h 발송 실패의 경우 경고 메일 4시간후에 보내겠다는 옵션. 



커맨드로 메일 보내기

 

mail (E-mail 주소)

[제목]

[내용]

.

 

 

mail 계정 생성

 

메일만 받을 계정을 생성시
useradd -M -s /bin/false takakocap
- 홈디렉토리 생성 X, 로긴을 허용하지만 shell and ssh terminal (그냥 메일만 쓸려는 계정을 만들때 유용할듯)

메일 계정 패스워드 설정
passwd takakocap

 

 

Sendmail 송신 테스트

 

[root@localhost mqueue]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.14.3/8.14.3; Tue, 6 Apr 2010 12:53:15 +0900

MAIL From: takakocap@kensei.co.kr
250 2.1.0 takakocap@kensei.co.kr... Sender ok

RCPT To: 
kimjinhyun@hotmail.com
250 2.1.5 kimjinhyun@hotmail.com... Recipient ok

DATA
354 Enter mail, end with "." on a line by itself
Hi This mail is Test MAIL
.
250 2.0.0 o363rFKA008376 Message accepted for delivery

QUIT
221 2.0.0 localhost.localdomain closing connection
Connection closed by foreign host.

 


pop3 테스트


[root@localhost mail]# telnet localhost 110

Trying ::1...

Connected to localhost (::1).

Escape character is '^]'.

+OK Dovecot ready.

user takakocap

+OK

pass [PASSWORD] 입력

Connection closed by foreign host.




아래 데몬이 모두 실행되면 메일 송수신이 잘 될것이다.~~
/etc/init.d/sendmail start
/etc/init.d/dovecot start
/etc/init.d/saslauthd start


메일 송신

로컬에서 내부 도메인 발송 및 외부 도메인 발송관련

 

cat /etc/mail/access

Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY

 

 

외부에서 내부 도메인 발송

- 외부아이피나 도메인이 차단되지 않은 이상 수신


외부에서 외부 도메인 발송

- 인증을 통해 릴레이 허용하도록 설정

 

cat /etc/mail/sendmail.mc

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

 

 

수신계정 버추얼 계정 (계정이 여러개의 경우인듯)

- 도메인에 따라 다른 계정으로 받고자 할때

 

 

useradd takakocap1
useradd takakocap2


수신 계정 Alias 처리

cat /etc/aliases

takakocap1 과 takakocap2 로 온메일을 takakocap 계정이 처리 

takakocap1: takakocap
takakocap2 : takakocap

 


스팸필터 기능

http://www.kisarbl.or.kr/

vim /etc/mail/sendmail.mc
- FEATURE(`dnsbl', `spamlist.or.kr', `"Rejected - KISA-RBL - see http://www.kisarbl.or.kr"')dnl 라인 추가
KISA 에서 제공하는 rbl을 이용하는 방법이라나??


SpamAssassin
- 메일필터 혹은 메일 분석기??

[root@localhost ~]# yum install spamassassin
[root@localhost ~]# /usr/bin/sa-update
[root@localhost ~]# /etc/init.d/spamassassin start

개별 적용을 위해서는 ~/.procmailrc 에 아래 내용을 추가하시면 됩니다
- INCLUDERC=/etc/mail/spamassassin/spamassassin-default.rc

전역적용을 위해서는 아래와 같이 하시면 됩니다.
- cp procmailrc.example /etc/procmailrc


SPF 설정

다람쥐메일 셋팅

 

[다람쥐 메일]

squirrelmail 관련 디렉토리 및 파일 소유권을 apache 사용자 및 그룹으로 지정

yum -y install squirrelmail

chown apache.apache -R /usr/share/squirrelmail/
chown apache.apache -R /etc/squirrelmail/config.php
chown apache.apache -R /var/lib/squirrelmail/
chown apache.apache -R /var/spool/squirrelmail

다람쥐 웹 메일 설정
/usr/share/squirrelmail/config/conf.pl 
2 → 1 → 도메인 입력 (kensei.co.kr)
A → 4 → IMAP Server 설정 (mail.kensei.co.kr)
8 → Server Software 설정 (other)
s (저장) → r (메인메뉴)

10 → 1 → 기본언어 설정 (ko_KR)
2 → Default Charset (euc-kr)
s (저장) → r (메인메뉴) → Q (나가기)

vim /usr/local/apache/conf/httpd.conf 아래열 맨 위에 추가
Alias /webmail/ /usr/share/squirrelmail/

$data_dir = '/var/lib/squirrelmail/prefs/';
$attachment_dir = '/var/spool/squirrelmail/attach/';

chmod -R 0770 /var/lib/squirrelmail/prefs/
chmod -R 0730 /var/spool/squirrelmail/attach/

 

아래는 김삼수님의 sendmail + 버추얼 도메인 셋팅 ( 아마 한 서버에 여러개 이상의 도메인을 가진 메일 서버 셋팅)




'메일' 카테고리의 다른 글

KISA 화이트 도메인 (white domain ) 등록  (0) 2016.08.25
스팸메일 (해외쪽)  (0) 2015.07.21
센드메일 (sendmail) + 다람쥐메일 설치  (0) 2015.02.11
댓글
댓글쓰기 폼