메뉴 건너뛰기

imitator

CentOS 6 sendmail 설치 하는 방법

2016.11.16 16:07

관리자 조회 수:667

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

번호 제목 글쓴이 날짜 조회 수
87 Ubuntu 16.04 단축 URL을 생성하는 YOURLS 설치 방법 file 관리자 2017.08.11 19
86 Ubuntu 16.04 jar 디컴파일 툴 JD-GUI 설치 file 관리자 2017.08.01 38
85 linux apk를 jar로 디컴파일하는 dex2jar 설치 및 사용 방법 file 관리자 2017.08.01 21
84 우분투 16.04 /var/lib/dpkg/lock 잠금 파일을 얻을 수 없습니다 해결법 [1] file 관리자 2017.07.20 225
83 우분투 16.04 LTS 서버 보안 강화를 위한 knockd 설치 방법 file 관리자 2017.07.06 44
82 CentOS 6 comodo Antivirus for Linux 백신 설치 방법 file 관리자 2017.06.15 65
81 CentOS 6 ssh google-authenticator로 OTP 접속하는 방법 file 관리자 2017.06.09 88
80 vsftpd 호스트로갈 루트가 없음(No route to host) 에러 처리 방법 file 관리자 2017.05.08 430
79 오픈스택 qcow2 이미지 가져오기 secret 관리자 2017.04.17 0
78 let’s Encrypt SSL 무료 인증서 certbot을 통해 설치 및 설정하는 방법 file 관리자 2017.04.13 859
77 VPN를 악용하는 xe 광고글 작성자를 iptables로 차단하는 방법 [2] file 관리자 2017.03.31 89
76 리눅스 CentOS 마인크래프트 서버 spigot 1.11.2 설치(셋팅)방법 file 관리자 2017.02.27 426
75 CentOS 6.8 네트워크 간혈적으로 끊김 현상 해결 방법 file 관리자 2017.02.20 662
74 오픈스택 미타카 NoValidHost: No valid host was found. There are not enough hosts available. file 관리자 2017.02.15 319
73 umount target is busy 강제 해제하는 방법 관리자 2017.02.10 166
72 리눅스 centos6에서 java 버전 변경하기 관리자 2016.12.26 560
71 ssh-keygen secret 관리자 2016.12.23 0
70 centos 6 tomcat 설치 file 관리자 2016.12.09 575
» CentOS 6 sendmail 설치 하는 방법 file 관리자 2016.11.16 667
68 CentOS 6 nginx php-fpm mysql을 yum(rpm) 설치하는 방법 file 관리자 2016.11.04 221