본문 바로가기

Dev/Dev:: Linux

[Day009] Linux 9일차 - 메일 서버 구축

● 메일 서버 구축     

  - 메일 서버의 역활

    1) 메세지(메일)를 송신하는 역활 => smtp 서비스 : 25

    2) 메세지(메일)을 수신하여 계정에게 전달하는 역활 => pop3 서비스 : 110 또는 imap 서비스 : 143


  - 메일서버 구축 방법

    1) 메일서버 프로그램 설치 

=> sendmail(smtp 서비스) 프로그램 및 dovecot(pop3 서비스 및 imap 서비스) 프로그램


다음과 같이 DNS서버 주소 변경



      ]# rpm -qa | grep sendmail  =>  sendmail 설치 유무 확인


      ※ 설치되어 있지 않은 경우

         ]# yum -y install sendmail   =>  sendmail 설치

         ]# rpm -qa | grep dovecot   =>  dovecot 설치 유무 확인

         ]# yum -y install dovecot   =>  dovecot 설치

   


    2) DNS 서버의 forward zone 파일에 MX 레코드 추가

       ex)      IN     MX    5    mail.ocj1778.com.


       ※ 도메인에 대한 메일서버명 확인

         ]# nslookup

         > set type=mx          => 응답형식 변경  (MX 지정 호스트명 출력)

         > ocj1778.com          => 도메인

         Server:         172.16.5.100

         Address:        172.16.5.100#53

         ocj1778.com     mail exchanger = 5 mail.ocj1778.com.    => 메일서버명 출력

         > exit


   

 3) 메일서버 환경설정


      ]# vi /etc/mail/sendmail.cf  => sendmail 프로그램의 환경설정 파일

      ...

      Cwocj1778.com     =>  89라인 : "Cwlocalhost"를 "Cw도메인"으로 변경

                                     메일서버가 사용하기 위한 도메인을 지정

                                     

       ※ 도메인이 여러 개 있는 경우 Cw를 더 추가하면 된다. 또는 Cw에서 지정한 파일에 도메인을 추가하면 된다.




   O DaemonPortOptions=Port=smtp, Name=MTA    =>  265라인 : ,Addr=127.0.0.1 삭제

               => smtp를 사용할 수 있는 컴퓨터를 지정, Addr을 생략하면 전체 컴퓨터


 ]# vi /etc/dovecot.conf    =>  dovecot 프로그램의 환경설정 파일


      ...

base_dir = /var/run/dovecot/    => 16라인 : # 제거 - dovecot 프로그램이 설치된 디렉토리

protocols = imap imaps pop3 pop3s   =>  20라인 : # 제거 - dovecot 프로그램을 이용해 사용할 수 있는 프로토콜

listen = [::]    => 39라인 : # 제거 - dovecot 프로그램을 사용할 수 있는 컴퓨터


      ssl_listen = *   => 82라인 : # 제거 후 * 입력 - SSL 기능 사용 컴퓨터 지정

      ssl_disable = no  =>  85라인 : # 제거 : SSL 기능 사용 유무 설정


 login_dir = /var/run/dovecot/login  => 130라인 : # 제거 - dovecot 사용 계정 로그인 디렉토리 지정

 login_user = dovecot   => 140라인 : # 제거 - dovecot 사용 계정 지정


mail_location = mbox:~/mail:INBOX=/var/mail/%u => 211라인 : # 제거후 파일명 지정     - 메일이 저장되는 경로 및 파일명 지정

 ※ 위에 205~207 라인에 선언된 mail_location 예제 중 하나 선택


mail_access_groups = mail  =>  264라인 : # 제거 그룹명 입력 - 메일에 접근 가능한 그룹 지정


      lock_method = fcntl   =>  310라인 : # 제거 - 메일 보안 기능 지정


login_executable = /usr/libexec/dovecot/imap-login  => 508라인 : # 제거 - dovecot 로그인 후 사용 가능한 프로토콜로 지정

mail_executable = /usr/libexec/dovecot/imap  => 520라인 : #제거 - dovecot를 이용하여 imap 사용


      login_executable = /usr/libexec/dovecot/pop3-login   =>  573라인  : # 제거 - dovecot 로그인 후 사용 가능한 프로토콜로 지정

      mail_executable = /usr/libexec/dovecot/pop3   =>  577라인 : # 제거 - dovecot를 이용하여 pop3 사용


      auth_executable = /usr/libexec/dovecot/dovecot-auth   =>  679라인 : # 제거 - dovecot를 이용한 계정 인증 처리 지정



    4) 메일서버 관련 데몬 실행

      ]# ps -xa | grep sendmail   => 실행 확인 

      ]# service sendmail restart   =>  이미 실행된 경우 재실행

      ]# chkconfig --level 2345 sendmail on  =>  부팅시 자동 실행

      ]# ps -xa | grep dovecot

      ]# service dovecot start   =>  실행되어 있지 않는 경우 실행

      ]# chkconfig --level 2345 dovecot on   



    5) 메일 access 설정

       => 메일 송수신에 대한 환경설정

       => 메일 송신은 전체 차단되어 있으며 수신은 전체 허용을 기본 설정으로 한다.


      ]# vi /etc/mail/access

      {도메인|ip주소|이메일}          {OK|RELAY|REJECT|DISCARD}

        OK       =>  송수신 모두 허용 

        RELAY    =>  송신 허용

REJECT   =>  수신 반송

        DISCARD  =>  수신 파기


      ex) ]# vi /etc/mail/access

          172.16.5 RELAY 

 ocj1778.com RELAY

 @yahoo.com REJECT

 game@ DISCARD

  

     => 파일을 수정한 경우 메일서버의 access_db를 업데이트 해야만 된다.

         ]# makemap hash /etc/mail/access < /etc/mail/access



    ※ 메일 alias 기능

       => 특정 계정에 전달될 메일을 다른 계정들에게 전달하는 기능   

       ]# vi /etc/aliases

       계정명   :     계정명  계정명  계정명 ....

       ex) root  :  ocj



       ]# newaliases      =>  메일서버의 alias_db 업데이트



    6) 메일 송수신 테스트   =>  windows의 아웃룩을 이용하여 테스트