※ CentOS 7에서 진행하였습니다.
1. sendmail 설치
설치되어있는지 확인합니다.
# rpm -qa | grep sendmail*
설치가 되어있지 않은 경우 sendmail을 yum으로 설치 진행합니다.
# yum -y install sendmail*
2. sendmail 설정
실제로 구입하지 않은 도메인이라서, /etc/hosts 파일에 등록해줍니다.
# vi /etc/hosts
192.168.0.100 mail.lena04.com lena04.com
아래 파일은 메일을 처리할 도메인에 대한 정보 기록 파일입니다.
# vi /etc/mail/local-host-names
lena04.com
# vi /etc/mail/sendmail.mc
52,53번째 줄의 앞에 주석처리인 dnl을 지워줍니다.
52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 define(confAUTHMECHANISMS',confAUTHMECHANISMS′, EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLA IN')dnl
118번째 라인에 127.0.0.l을 0.0.0.0으로 바꿔줍니다. 내부에서만 데몬이 돌기때문에 외부에서 메일이 발송이 되지 않습니다.
118 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
118 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
m4 명령어를 통해 sendmail.cf 파일을 재생성해줍니다.
sendmail.cf 파일은 sendmail의 주 설정 파일입니다.
접근제어 설정파일
# vi /etc/mail/access
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:192.168.0.100 RELAY
Connect:mail.lena04.com RELAY
스팸메일을 차단하기 위하여 디폴트로 설정되는 값. 자신의 네트워크가 아닌 다른 네트워크 상에서 자신의 메일 서버를 이용하여
메일을 전송하는 것을 원천적으로 거부하는 기능.
릴레이에 허용하고자 하는 네트워크 주소와 허용 여부를 입력하면 됩니다.
# makemap hash /etc/mail/access < /etc/mail/access
makemap 명령어를 사용하여 access파일을 db화 시켜줍니다.
# vi /etc/mail/virtusertable
test@lena04.com test
동일한 메일계정을 여러개의 도메인에서 사용하기 위해 설정하는 부분입니다.
메일계정과 같은 계정일 경우 추가하지 않아도 되며, 메일계정과 다른시스템 계정으로 포워딩할 경우 사용합니다.
# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
makemap 명령어를 통해 virtuasertable파일을 db화 시켜줍니다.
# chkconfig saslauthd on
# service saslauthd restart
# chkconfig sendmail on
# /etc/init.d/sendmail restart
# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14453/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 4441/sendmail: acce
tcp6 0 0 :::80 :::* LISTEN 7058/httpd
tcp6 0 0 :::22 :::* LISTEN 14453/sshd
tcp6 0 0 :::3306 :::* LISTEN 20475/mysqld
3. 메일 발송 테스트
# telnet localhost 25
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ESMTP Sendmail 8.14.7/8.14.7; Mon, 29 Oct 2018 13:57:34 +0900
mail from: test@lena04.com
250 2.1.0 test@lena04.com... Sender ok
rcpt to: tech@test.com
250 2.1.5 tech@test.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
subject: sendmail test
test
.
250 2.0.0 w9T4vYCX004517 Message accepted for delivery
quit
221 2.0.0 closing connection
Connection closed by foreign host.
...[더 보기]