Centos6에서 dovecot 설치하기

Dovecot IMAP/POP3 설정 (Dovecot 2.x 계열)
이 문서는
/etc/dovecot/dovecot.conf및/etc/dovecot/conf.d/구조를 사용하는
Dovecot 2.x 계열을 기준으로 작성했다.CentOS 5.x의 Dovecot 1.0 계열은 일반적으로
/etc/dovecot.conf단일 설정 파일을 사용하므로, 본 문서의conf.d/10-*.conf설정 방식과 혼용하면 안 된다.아래의
ssl = no,disable_plaintext_auth = no설정은 테스트 또는 폐쇄망 환경에서만 사용한다. 운영 환경에서는 TLS를 활성화하고 IMAPS(993) 또는 POP3S(995)를 사용한다.
1. 활성화할 서비스 설정
Dovecot의 메인 설정 파일에서 사용할 프로토콜을 지정한다.
# vi /etc/dovecot/dovecot.conf
다음 항목의 주석을 해제하고 필요한 프로토콜만 설정한다.
protocols = imap pop3
imap: IMAP 서비스 활성화pop3: POP3 서비스 활성화lmtp: Postfix 등의 MTA가 Dovecot LMTP로 메일을 전달할 때 사용
IMAP과 POP3만 제공하는 일반적인 예시는 다음과 같다.
protocols = imap pop3
Dovecot이 수신할 IP 주소를 설정한다.
listen = *, ::
*: 모든 IPv4 인터페이스에서 수신::: 모든 IPv6 인터페이스에서 수신
IPv4 환경만 사용하고 IPv6 수신을 비활성화하려면 다음과 같이 설정한다.
listen = *
IPv6를 사용하거나 향후 사용할 가능성이 있다면
listen = *, ::설정을 유지한다.
2. 메일 저장소 위치 설정
메일 저장소 형식과 위치는 /etc/dovecot/conf.d/10-mail.conf에서 설정한다.
# vi /etc/dovecot/conf.d/10-mail.conf
Sendmail 또는 Postfix가 시스템 기본 mbox 경로인 /var/spool/mail/<사용자명>에
메일을 저장하는 환경이라면 다음과 같이 설정할 수 있다.
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mbox: mbox 형식의 메일 저장소 사용~/mail: 사용자의 개인 메일 폴더INBOX=/var/spool/mail/%u: 시스템 Inbox 경로%u: 로그인한 사용자 이름으로 치환
예를 들어 test 계정으로 로그인하면 Inbox는 다음 경로를 사용한다.
/var/spool/mail/test
다음 설정도 문법상 사용할 수 있다.
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u:INDEX=MEMORY
단, INDEX=MEMORY는 Dovecot 인덱스를 디스크에 저장하지 않고 메모리에서만 사용한다.
테스트 환경이나 특정 NFS 환경에서는 사용할 수 있지만, 일반적인 운영 환경에서는
인덱스를 디스크에 저장하는 기본 동작을 유지하는 편이 좋다.
3. TLS/SSL을 사용하지 않는 테스트 설정
주의: 아래 설정은 TLS를 완전히 비활성화한다. 외부 네트워크나 운영 환경에서는 적용하지 않는다.
TLS/SSL을 사용하지 않는 경우 /etc/dovecot/conf.d/10-ssl.conf 파일을 수정한다.
# vi /etc/dovecot/conf.d/10-ssl.conf
다음 항목의 주석을 해제하거나 값을 변경한다.
ssl = no
ssl = no로 설정하면 Dovecot의 TLS 기능이 비활성화된다.
따라서 일반적으로 TLS 전용 포트인 IMAPS(993), POP3S(995) listener도 사용하지 않는다.
4. TLS 미사용 시 평문 인증 허용
주의: 이 설정을 적용하면 사용자 이름과 비밀번호가 네트워크에 평문으로 노출될 수 있다.
Dovecot 2.3 계열에서는 TLS 없이 PLAIN, LOGIN 방식의 인증을 허용하려면
/etc/dovecot/conf.d/10-auth.conf 파일을 수정한다.
# vi /etc/dovecot/conf.d/10-auth.conf
다음 설정을 적용한다.
disable_plaintext_auth = no
TLS를 사용하지 않으면서 이 값을 변경하지 않으면, 평문 인증을 시도하는 클라이언트의 로그인이 거부될 수 있다.
Dovecot 2.4 이상에서는
disable_plaintext_auth대신auth_allow_cleartext = yes를 사용한다.
5. 설정 검증 및 서비스 재시작
Dovecot 설정 문법을 확인한다.
# doveconf -n
서비스를 재시작한다.
# systemctl restart dovecot
부팅 시 자동 시작되도록 설정한다.
# systemctl enable dovecot
서비스 상태를 확인한다.
# systemctl status dovecot
6. 리슨 포트 확인
Dovecot이 열고 있는 포트를 확인한다.
# ss -lntp | grep dovecot
또는 구형 환경에서는 다음 명령을 사용한다.
# netstat -lntp | grep dovecot
평문 IMAP/POP3만 활성화한 경우의 예상 예시는 다음과 같다.
LISTEN 0 100 0.0.0.0:110 0.0.0.0:* users:(("dovecot",pid=1234,fd=20))
LISTEN 0 100 0.0.0.0:143 0.0.0.0:* users:(("dovecot",pid=1234,fd=21))
- TCP 110: POP3
- TCP 143: IMAP
- TCP 993: IMAPS (TLS)
- TCP 995: POP3S (TLS)
TLS를 활성화한 운영 환경에서는 TCP 993 또는 995 포트가 열려 있는지 확인한다.
7. 운영 환경 권장 사항
운영 환경에서는 다음 구성을 권장한다.
ssl = yes또는ssl = required설정- 유효한 TLS 인증서와 개인 키 설정
disable_plaintext_auth = yes유지- IMAPS(993) 또는 POP3S(995) 사용
- 방화벽에서 필요한 포트만 허용
- Dovecot 설정 확인 시
doveconf -n사용 - 메일 수신과 로컬 메일함 전달을 위한 Postfix 등의 MTA 별도 구성