Dovecot의 IMAP/POP 테스트 환경 구축 노트

7153 단어 imapdovecotpop

Dovecot의 IMAP/POP 테스트 환경 구축 노트


CentOS 6에 Dovecot의 IMAP/POP 테스트 환경을 구축할 때 메모를 남깁니다.

Dovecot의 메일 테스트 환경 목적


이 테스트 환경의 목적은 환경 내부에서 온 IMAP/POP 명령의 동작과 Dovecot의 동작을 확인하는 것이다.실제 IMAP/POP 서버 구축을 목적으로 하지 않습니다.
다음 동작을 확인할 수 있는 환경을 구축하고 동작을 확인합니다.
  • IMAP 명령을 사용하여 사서함에 액세스합니다.메시지를 가져옵니다.
  • POP 명령을 통해 메일박스에 액세스합니다.메시지를 가져옵니다.
  • 이 항목에서는 다음과 같이 구성된 OSX의 CentOS 6에 구축됩니다.
    https://qiita.com/keikmobile/items/2c1cec8b875387a83a71
    SElinux는 올바르지 않은 것을 전제로 합니다.
    또한 IMAP/POP를 통해 다음 항목으로 구축된postfix에서 받은 메일을 가져옵니다.
    https://qiita.com/keikmobile/items/2440ecebdd02adccc6a1

    Dovecot의 IMAP/POP 테스트 환경 구축, 동작 확인 방침


    이러한 목적을 실현하기 위해 IMAP/POP 테스트 환경, 동작 확인의 방침을 기술하였다.

    프로세스 구성 방침


    이 IMAP/POP 테스트 환경은 다음 절차로 구성됩니다.
  • IMAP/POP 서버는 Dovecot을 사용합니다.
  • POP/IMAP 클라이언트는 텔넷과 명령을 사용합니다.
  • Postfix를 제외하고 다음 항목에서 구축하는 과정을 사용합니다.https://qiita.com/keikmobile/items/2440ecebdd02adccc6a1
  • 위 절차는 모두 동일한 중앙 OS에 구성됩니다.
    다음은 각 구성 요소의 이미지입니다.( http://plantuml.com/ )
  • @startuml
    [smtp-source,telnet] -right-> [Postfix] : SMTP
    [Postfix] -right-> [smtp-sink] : SMTP (Relay)
    [Postfix] -down-> [Local user mailbox Maildir format] : (Deliver)
    [Local user mailbox Maildir format] -down->[Dovecot]
    [telnet] -right-> [Dovecot] :POP/IMAP
    @enduml
    

    Dovecot 설정 값 구성 지침


    Dovecot의 행동거지를 설정하는 설정값은 다음 지침에 따라 결정된다.
  • 메일박스의 형식은 Maildir(qmail) 형식이다.
  • 사용자 데이터베이스는passwd-file 형식을 사용한다.
  • 동작 확인 지침


    본 테스트 환경의 동작 확인은 다음과 같은 방침에 따라 실시한다.
  • IMAP 서버의 작동을 확인합니다.다음과 같은 관점에서 확인하여 진행한다.
  • IMAP 클라이언트는 텔넷 명령을 사용합니다.
  • IMAP 클라이언트에 대한 응답
  • Dovecot의 로그(/var/log/maillog)
  • POP 서버의 동작을 확인합니다.다음과 같은 관점에서 확인하여 진행한다.
  • POP 클라이언트는 텔넷 명령을 사용합니다.
  • POP 클라이언트에 대한 응답
  • Dovecot의 로그(/var/log/maillog)
  • Dovecot의 메일 테스트 환경 구축 절차


    Dovecot 설치


    yum에dovecot를 설치했고rpm에 설치한 것으로 확인되었습니다.
    chkconfig에서 시작 설정을 활성화합니다.
    메일 발송을 확인할 때 사용하는 텔넷 명령도 설치한다.
    $ sudo yum -y dovecot telnet
    ...
    $ rpm -qa | egrep 'dovecot|telnet'
    ...
    $ chkconfig dovecot on
    ...
    

    Dovecot 설정


    다음 내용 설정dovecot을 참고하세요.
    https://wiki2.dovecot.org/BasicConfiguration
    다음 명령을 실행하여users 파일을 만듭니다.패스워드 변경된 곳을 추천합니다.
    $ echo "`whoami`:{PLAIN}password:`id -u`:`id -g`::$HOME" > users
    $ sudo mv users /etc/dovecot/
    
    passwd-file을 사용하기 위해 conf.d/10-auth.conf를 변경합니다.
    $ sudo vi /etc/dovecot/conf.d/10-auth.conf 
    
        # 以下をコメントアウト。
        #!include auth-system.conf.ext
    
        # 以下のコメントアウトを削除。
        !include auth-passwdfile.conf.ext
    
    conf.d/auth-passwdfile.conf.ext 기술을 확인합니다.
    $ cat /etc/dovecot/conf.d/auth-passwdfile.conf.ext 
    ...
    passdb {
      driver = passwd-file
      args = scheme=CRYPT username_format=%u /etc/dovecot/users
    }
    
    userdb {
      driver = passwd-file
      args = username_format=%u /etc/dovecot/users
    }
    
    다음 명령을 확인해도 같은 결과를 얻을 수 있다.
    $ doveconf -n passdb userdb 
    passdb {
      args = scheme=CRYPT username_format=%u /etc/dovecot/users
      driver = passwd-file
    }
    userdb {
      args = username_format=%u /etc/dovecot/users
      driver = passwd-file
    }
    
    참조: http://wiki2.dovecot.org/BasicConfiguration

    Dovecot 시작


    Dovecot을 시작합니다.
    sudo service dovecot start
    
    참조: https://wiki2.dovecot.org/RunningDovecot
    참조: https://wiki2.dovecot.org/Logging

    Dovecot의 테스트 환경 동작 확인


    IMAP 확인


    텔넷 명령을 통해 Dovecot의 IMAP Port에 연결하고 IMAP 명령을 발표하여 Dovecot의 동작을 확인합니다.
    $ telnet 127.0.0.1 143
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready.
    a login USER PASSWORD # 認証設定で作成したユーザでlogin
    a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
    b select INBOX
    * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
    * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
    * 0 EXISTS
    * 0 RECENT
    * OK [UIDVALIDITY 1399824069] UIDs valid
    * OK [UIDNEXT 1] Predicted next UID
    * OK [HIGHESTMODSEQ 1] Highest
    b OK [READ-WRITE] Select completed.
    c append INBOX {9}
    + OK
    TEST MAIL
    * 1 EXISTS
    * 1 RECENT
    c OK [APPENDUID 1399824069 1] Append completed.
    d fetch 1 rfc822
    * 1 FETCH (FLAGS (\Seen \Recent) RFC822 {9}
    TEST MAIL)
    d OK Fetch completed.
    e close INBOX
    e OK Close completed.
    f logout
    * BYE Logging out
    f OK Logout completed.
    Connection closed by foreign host.
    $ 
    
    "/var/log/maillog"아래에서 다음 출력을 확인할 수 있습니다.
    Apr 14 15:57:31 centos601 dovecot: imap-login: Login: user=<vagrant>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3765, secured
    Apr 14 15:58:24 centos601 dovecot: imap(vagrant): Disconnected: Logged out bytes=84/829
    

    POP 확인


    텔넷 명령을 통해 Dovecot의 POP Port에 연결하고 POP 명령을 발행하여 Dovecot의 동작을 확인합니다.
    $ telnet 127.0.0.1 110
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    +OK Dovecot ready.
    user USER # 認証設定で作成したユーザでlogin
    +OK
    pass PASSWORD # 認証設定で作成したユーザでlogin
    +OK Logged in.
    stat
    +OK 1 9
    list
    +OK 1 messages:
    1 9
    .
    retr 1
    +OK 9 octets
    TEST MAIL
    .
    quit
    +OK Logging out.
    Connection closed by foreign host.
    $ 
    
    "/var/log/maillog"아래에서 다음 출력을 확인할 수 있습니다.
    Apr 14 16:01:05 centos601 dovecot: pop3-login: Login: user=<vagrant>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3790, secured
    Apr 14 16:01:10 centos601 dovecot: pop3(vagrant): Disconnected: Logged out top=0/0, retr=0/0, del=0/1, size=10
    
    참조: https://wiki2.dovecot.org/TestInstallation

    좋은 웹페이지 즐겨찾기