메일 서버 · 2 min read · Oct 05, 2025

가상 도메인 및 사용자와 함께하는 전체 메일 서버 솔루션 (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - 페이지 12

C. 보안 Dovecot

Dovecot 서버는 IMAPS를 거의 기본적으로 지원합니다… 그러니 secure-mail에 설치해 봅시다. 항상 그렇듯이, Debian이 대부분의 작업을 대신 해줍니다:

# apt-get install dovecot-imapd

우리의 목적을 위해 POP3는 필요하지 않았습니다 (사실, 당신도 필요하지 않을 것입니다), 하지만 원하신다면, 그 명령어 끝에 dovecot-pop3d를 추가하면 됩니다.

/etc/dovecot/dovecot.conf에 위치한 Dovecot 구성 파일을 열고 다음과 같이 설정합니다. 아마도 기본 구성은 이미 많이 되어 있을 것이므로, 특정 섹션의 주석을 제거하고 약간의 변경만 하면 될 것입니다. 파일의 ssl_ 섹션에 주의 깊게 살펴보세요, 이 서버에서는 다릅니다.

## Dovecot 구성 파일  
#  
base_dir = /var/run/dovecot/  
#  
# imap imaps pop3 pop3s (SSL이 구성된 경우 imaps 및 pop3s 사용)  
protocols = imaps  
#  
# SSL을 사용하는 경우 ssl_listen 문장을 주석 해제하고 listen을 주석 처리합니다.  
protocol imap {  
# listen = *:143  
ssl_listen = *:993  
}  
#protocol pop3 {  
#listen = *:110  
# ssl_listen = *:995  
#}  
#  
log_timestamp = "%Y-%m-%d %H:%M:%S "  
syslog_facility = mail  
#  
# 메일박스가 위치한 곳  
mail_location = maildir:/vmail/%d/%u  
#  
mail_extra_groups = mail  
mail_debug = no  
first_valid_uid = 150  
last_valid_uid = 150  
maildir_copy_with_hardlinks = yes  
#  
protocol imap {  
login_executable = /usr/lib/dovecot/imap-login  
mail_executable = /usr/lib/dovecot/imap  
imap_max_line_length = 65536  
}  
#protocol pop3 {  
#login_executable = /usr/lib/dovecot/pop3-login  
#mail_executable = /usr/lib/dovecot/pop3  
#pop3_uidl_format = %08Xu%08Xv  
#}  
protocol lda {  
postmaster_address = [email protected]  
sendmail_path = /usr/lib/sendmail  
auth_socket_path = /var/run/dovecot/auth-master  
}  
#  
auth_verbose = no  
auth_debug = no  
auth_debug_passwords = no  
#  
auth default {  
 mechanisms = plain  
 passdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 userdb sql {  
 args = /etc/dovecot/dovecot-sql.conf  
 }  
 user = nobody  
 socket listen {  
 master {  
 path = /var/run/dovecot/auth-master  
 mode = 0660  
 user = vmail  
 group = mail  
 }  
 client {  
 path = /var/spool/postfix/private/auth  
 mode = 0660  
 user = postfix  
 group = postfix  
 }  
 }  
 #  
 # 클라이언트 인증서가 필요하면, 이 줄을 사용하세요  
 # ssl_require_client_cert = yes  
 # ssl_username_from_cert = yes  
}

참고: 위 구성을 그냥 복사해서 사용하면 안 됩니다! 위의 변경 사항을 자신의 구성에 통합해야 합니다.

Dovecot 구성은 거의 완료되었지만, 이전 구성과 마찬가지로 MySQL 설정을 통합해야 합니다.

/etc/dovecot/dovecot-sql.conf 파일을 열고 다음이 포함되어 있는지 확인합니다.

driver = mysql  
connect = host=sql-1.internal.example.com dbname=virtual_mail user=vmail_user password=vmail_user_password  
# MD5의 새로운 이름은 MD5-CRYPT이므로 버전에 따라 변경해야 할 수 있습니다.  
default_pass_scheme = MD5  
# 메일박스 가져오기  
user_query = SELECT '/vmail/%d/%n' AS home, 'maildir:/vmail/%d/%n' AS mail, 150 AS uid, 8 AS gid, CONCAT('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'  
# 비밀번호 가져오기  
password_query = SELECT username AS user, password, '/vmail/%d/%n' AS userdb_home, 'maildir:/vmail/%d/%n' AS userdb_mail, 150 AS userdb_uid, 8 AS userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'  
# 클라이언트 인증서를 사용하여 인증하는 경우, 위의 내용을 주석 처리하고 다음을 주석 해제합니다.  
#password_query = SELECT null AS password, '%u' AS user

이 문서에 평문 형식으로 MySQL 비밀번호를 저장했으므로, 우리가 읽을 수 있는 유일한 사람인지 확인해야 합니다!

# chmod 600 /etc/dovecot/*.conf  
# chown vmail /etc/dovecot/*.conf

외부/보안 Dovecot 구성은 이제 완료되었습니다! 이제 dovecot 서비스를 재시작하세요:

# invoke-rc.d dovecot restart

… 그리고 외부/비보안 사용자는 이제 secure-mail.example.com에서 이메일을 확인할 수 있습니다!

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.