메뉴 닫기

CentOS 6 sendmail 설치 정리 글

CentOS 6 버전에 sendmail을 설치하여 추후에 참고 할수 있도록 내용을 정리하였습니다.
이 글은 수정해야할 사항이 확인되면 바로 수정될 예정입니다.

대상 서버 OS : CentOS 6.8 64 bit

설치전 기본적으로 확인할 사항

# sendmail이 설치되어있는지 확인
rpm -qa |grep sendmail

# 기본적으로 설치되어있는 postfix를 제거
yum remove postfix

1.png

2.png

1. yum으로 sendmail, sendmail-cf 설치를 진행합니다.

# sendmail 설치
yum install sendmail sendmail-cf

3.png

2. /etc/mail에서 sendmail.mc 및 sendmail.cf 파일 존재 유무를 확인후 복사를 진행합니다.
   혹시 모를 실수를 예방하기 위해서입니다.

# 원본 파일 복사

cp /etc/mail/sendmail.mc /usr/local/src/backup_sendmail.mc
cp /etc/mail/sendmail.cf /usr/local/src/backup_sendmail.cf

4.png 

5.png 

3. vi /etc/mail/sendmail.mc 로 이동하여 변경 작업을 진행합니다.

# 에디터 상에서 53을 누르고 대문자 G를 누르면 아래와 같이 이동됩니다.

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

# 여기서 dnl은 주석과도 같은 기능을 하며.기능을 정상적으로 이용하기위해서는 dnl를 제거하면 됩니다.
  아래는 smtp의 인증을 사용하겠다는 설정이며 앞에 붙어있는 dnl를 삭제합니다.

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

6.png

7.png

# 이어서 116을 누르고 대문자 G를 눌러 이동합니다.

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl

# 위의 127.0.0.1의 설정의 경우 로컬호스트에서만 메일 발송이 가능하므로 이부분을 0.0.0.0으로 변경하여
   외부에서도 메일 발송이 가능하게 해줍니다.
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl

8.png

4. 수정이 완료되었다면 diff 명령어를 사용하여 원본과 수정본의 내용을 비교한후 m4 명령어를 이용하여 
    sendmail.cf을 재생성하고 sendmail를 시작합니다.

# 원본과 수정본의 내용을 비교합니다.
diff /usr/local/src/backup_sendmail.mc /etc/mail/sendmail.mc

52,53c52,53
< dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
< dnl define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl

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

116c116
< DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA’)dnl

> DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl

# 메크로 처리 언어인 m4를 이용하여 sendmail.cf을 재생성 합니다.
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

# sendmail을 시작합니다.
service sendmail start

9.png

5. netstat 로 25번 포트가 올라왔는지 확인하고 chkconfig로 부팅시 서비스가 자동으로 시작되는지 확인한후
    방화벽에 25번 포트가 열려있는지 확인합니다.

# 25번 포트가 올라왔는지 확인합니다.
netstat -nlp |grep 25

# 리부팅시 서비스가 자동으로 실행되게 설정되어있는지 확인합니다.
chkconfig –list sendmail

# iptalbes에 25번 포트가 등록되어있는지 확인합니다.
iptables -nL |grep 25

# 포트가 등록되어있지 않다면 아래와 같이 등록해주세요. 다만 사용하는 룰에따라 등록이 안될수도있습니다.
iptables -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 25 -j ACCEPT

10.png

6. telnet을 설치합니다. 

# telnet 설치
yum install telnet

11.png  

6-1 설치가 완료되었으니 메일 발송 테스트를 해보겠습니다. 이 방법은 telnet으로 메일을 발송하는방법이며
      자세한 내용은 밑을 참고해주세요.

# telnet으로 접근합니다.
telnet localhost 25
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
220 localhost.localdomain ESMTP Postfix

# mail from:을 적고 보내는 사람에 관한 이메일 주소를 적습니다.
mail from: testmail@mail.com
250 2.1.0 Ok

# rcpt to:에는 메일을 받을 사람에 관한 이메일 주소를 적습니다.
rcpt to: 받을 사람 이메일
250 2.1.5 Ok

# data를 적으면 메일을 작성할수 있습니다.
data
354 End data with <CR><LF>.<CR><LF>

# subject :는 메일의 제목 부분에 해당한다. 제목을 작성후 엔터를 누르고 
  내용을 적어봅시다.

subject : This is Test Mail
hello. test mail!!!!

# 작성 완료후에 발송하려면 마지막줄에 .을 적은뒤 엔터를 누르면 메일이 발송되며.
   telnet은 quit로 빠져나갈수 있습니다.
.
250 2.0.0 Ok: queued as 3F28024013D
quit
221 2.0.0 Bye

12.png

6-2 이번에는 mail 명령어로 이메일을 발송해보겠습니다.

# 아래의 명령어를 이용하여 메일을 보낼 사람의 이메일과 받을 사람의 이메일을 적습니다.
mail -r testmail@mail.com 받을 사람 이메일

# Subject: 부분에는 제목을 적은후 내용을 적고 마지막줄에 .을 적은뒤 엔터를 누르면
  이메일이 발송됩니다. 

Subject: Hello!
Test mail!
.
EOT

13.png

7. 이메일은 무사히 받았으나 스팸메세지로 나오는 부분이 있습니다. 이 부분은 화이트 도메인 등록이
    필요할것같습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다