Linux/구축 관련

메일서버 구축 (Sendmail, dovecot)

gunner_77 2017. 1. 2. 13:01



메일서버 구축




구축환경


DNS Server (CentOS 6.7)

192.168.0.151


Mail Server (CentOS 6.7)

192.168.0.152


사전작업


SELINUX 해제


iptables 설정

DNS는 53번 포트를 사용

메일서버는 25번 포트를 사용하므로 iptables를 해제 시키거나, 해당 포트들을 오픈 시킨다.


DNS 구축


http://itgameworld.tistory.com/115

위 링크를 통해 DNS 서버를 먼저 구축한다.

단, 아래와 같이 zone파일에서 mail에 관련된 부분을 설정


[root@localhost ~]# vi /var/named/itgame.com.zone


$TTL 1D

@       IN SOA  @ itgame.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

         NS             @

         IN MX 10     mail.itgame.com

         A               192.168.0.152

ns      A               192.168.0.152

mail    A               192.168.0.152

www   A               192.168.0.152

         AAAA            ::1



메일서버 구축 (Sendmail)


[root@localhost ~]# yum -y install sendmail*

[root@localhost ~]# vi /etc/mail/sendmail.mc

.... ## 52, 53번에 해당 하는 내용에 dnl 제거

     51 dnl #

     52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

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

     54 dnl #

....
## 위 명령어를 통해 sendmail.mc 설정파일의 내용을 sendmail.cf 로 전달

[root@localhost ~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
[root@localhost ~]# vi /etc/mail/sendmail.cf

....##89번줄에 해당하는 내용 중 Cwlocalhost -> Cw도메인명 으로 변경한다.

     88

     89 Cwitgame.com

     90 # file containing names of hosts for which we receive email

     91 Fw/etc/mail/local-host-names

     92

....## 266번줄에 해당하는 내용 중 Addr=127.0.0.1 -> Addr=0.0.0.0 으로 변경
    265
    266 O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA
    267
....

Relay (중계IP) 설정
[root@localhost data]# vi /etc/mail/access
....## 빨간 부분 추가 (허용 IP, 현재 설정은 192.168.0 대역의 IP 허용)
# By default we allow relaying from localhost...
Connect:localhost.localdomain           RELAY
Connect:localhost                           RELAY
Connect:127.0.0.1                           RELAY
Connect:itgame.com                       RELAY
Connect:192.168.0                          RELAY

## 위 설정한 텍스트 파일의 내용을 sendmail이 인식할 수 있도록 makemap을 이용하여 변환

[root@localhost ~]# makemap hash /etc/mail/access < /etc/mail/access



## 호스트네임 추가
[root@localhost ~]# vi /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
itgame.com



telnet을 이용한 테스트

[root@localhost ~]# yum -y install telnet

[root@localhost data]# telnet localhost 25

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

220 localhost.localdomain ESMTP Sendmail 8.14.4/8.14.4; Tue, 18 Oct 2016 19:13:49 +0900

ehlo localhost    ##입력

250-localhost.localdomain Hello localhost [127.0.0.1], pleased to meet you

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE

250-DSN

250-ETRN

250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

250-DELIVERBY

250 HELP



netstat를 이용한 테스트

[root@localhost data]# netstat -nlp | grep 25

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1832/sendmail

unix  2      [ ACC ]     STREAM     LISTENING     12584  2111/gnome-power-ma /tmp/orbit-gdm/linc-83f-0-2f11e9699f8b1

unix  2      [ ACC ]     STREAM     LISTENING     12792  2125/pulseaudio     /var/lib/gdm/.pulse/5da8c3ab9688f9ca926aacc70000000b-runtime/native

unix  2      [ ACC ]     STREAM     LISTENING     9964   1525/dbus-daemon    /var/run/dbus/system_bus_socket

unix  2      [ ACC ]     STREAM     LISTENING     12569  2110/gdm-simple-gre /tmp/orbit-gdm/linc-83e-0-60b2aee89a819



ps를 이용한 테스트
[root@localhost data]# ps -ef | grep sendmail
root      1832     1  0 19:07 ?        00:00:00 sendmail: accepting connections
smmsp     1841     1  0 19:07 ?        00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root      2203  2163  0 19:13 pts/1    00:00:00 grep sendmail

## snedmail: accepting connections 를 확인


Dovecot 설치


[root@localhost data]# yum -y install dovecot

[root@localhost data]# vi /etc/dovecot/dovecot.conf
.... ##20, 26번 줄의 주석을 해제
     18
     19 # Protocols we want to be serving.
     20 protocols = imap pop3 lmtp pop3s
     21
     22 # A comma separated list of IPs or hosts where to listen in for connecti        ons.
     23 # "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interface        s.
     24 # If you want to specify non-default ports or anything more complex,
     25 # edit conf.d/master.conf.
     26 listen = *, ::
     27
....


[root@localhost data]# vi /etc/dovecot/conf.d/10-mail.conf

.... ##30번 줄의 주석을 해제하고 다음과 같이 내용을 입력한다.

     29 #

     30 mail_location = mbox:MEMORY:INBOX=/var/spool/mail/%u:INDEX=MEMORY

     31

....

[root@localhost data]# vi /etc/dovecot/conf.d/10-ssl.conf
.... ##6번 줄의 주석을 해제
      4
      5 # SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>
      6 ssl = yes
      7
....


[root@localhost data]# vi /etc/dovecot/conf.d/10-auth.conf

.... ##9번 줄의 주석을 해제 후 ssl을 사용하기 때문에 no로 값을 변경한다.

      8 # connection is considered secure and plaintext authentication is allowed.

      9 disable_plaintext_auth = no

     10


[root@localhost data]# chkconfig dovecot on


계정생성 및 테스트


[root@localhost ~]# useradd testmail

[root@localhost ~]# passwd testmail


아래 링크를 통하여 테스트를 진행합니다.

CentOS에서 메일 보내기


Windows의 경우 Outlook 등을 사용하면 된다. 설정은 크게 다르지 않다.


참조 :

http://se-sik.tistory.com/7