✉️ 메일 서버를 구축하는 여정, 어느덧 Dovecot 설정의 핵심으로 들어왔습니다!
지난 글에서 Dovecot의 설정 파일 구조를 살펴보았죠? 이제는 실전에 돌입할 시간입니다.

📌 아직 이전 편을 못 보셨다면 먼저 읽어보시길 추천합니다.
👉 리눅스에서 메일 서버 구축하기 #3: Dovecot 설정 파일 구조와 적용 방식

이번 글에서는 메일 서버 운영에 꼭 필요한 Dovecot의 필수 설정 파일 4개를 하나씩 분석하면서, 가상 사용자 환경과 Postfix 연동을 고려한 실용적인 설정 방법을 정리해보겠습니다.


🚀 Dovecot 필수 설정 파일 4가지

Dovecot 설정 파일이 너무 많아서 처음 보면 머리가 아플 수 있습니다. 하지만 이 4가지 설정 파일만 제대로 이해하면 기본적인 메일 서비스 운영이 가능합니다.

설정 파일 역할
10-auth.conf 사용자 인증(Authentication) 설정
10-mail.conf 메일 저장소(메일박스) 설정
10-master.conf 서비스 프로세스(IMAP, POP3, LMTP 등) 설정
10-ssl.conf TLS/SSL 암호화 설정

각 설정 파일을 살펴보며 가상 사용자 환경과 Postfix 연동을 고려한 설정을 적용해보겠습니다.


🛠️ Dovecot 설치 시 생성되는 vmail 사용자

Dovecot을 처음 설치하면 시스템에 vmail이라는 전용 사용자와 그룹(UID/GID 5000)이 자동으로 생성됩니다.
이 사용자는 메일 데이터를 저장하고 관리하는 역할을 하며, 시스템 계정이 아니라 별도로 메일만을 다루는 계정입니다.

🔍 vmail 사용자 확인 방법

터미널에서 다음 명령어를 실행하면 확인할 수 있습니다.

id vmail

출력 예시:

uid=5000(vmail) gid=5000(vmail) groups=5000(vmail)

또는 /etc/passwd 파일에서 직접 검색할 수도 있습니다.

grep vmail /etc/passwd

만약 vmail 사용자가 존재하지 않는다면, 다음 명령어로 수동 생성해야 합니다.

sudo groupadd -g 5000 vmail
sudo useradd -u 5000 -g vmail -s /sbin/nologin -d /var/mail vmail

이제 Dovecot 설정에서 vmail 사용자를 활용하여 메일을 저장할 수 있습니다!


1️⃣ 10-auth.conf - 사용자 인증 설정

이 파일은 사용자의 인증 방식을 결정하는 매우 중요한 설정 파일입니다.
특히 우리는 가상 사용자(Virtual User) 환경을 구축할 예정이므로, 이를 고려하여 설정하겠습니다.

📌 중요 설정 포인트
- 가상 사용자 방식(DB 연동)으로 인증할 것
- PLAIN 및 LOGIN 방식 인증 활성화 (SSL 환경에서 안전하게 사용)
- 시스템 계정(/etc/passwd)이 아니라 DB를 이용해 인증

🔹 설정 파일 예시 (/etc/dovecot/conf.d/10-auth.conf)

disable_plaintext_auth = yes
auth_mechanisms = plain login

!include auth-sql.conf.ext

💡 설명

  • disable_plaintext_auth = yes → 평문 인증은 SSL을 사용할 때만 허용
  • auth_mechanisms = plain login → IMAP, POP3에서 가장 많이 쓰이는 인증 방식
  • !include auth-sql.conf.ext → 인증 정보를 데이터베이스에서 가져오도록 설정

즉, Dovecot이 직접 /etc/passwd 같은 시스템 계정을 사용하는 것이 아니라, MySQL 등 DB를 이용하여 인증하도록 구성하는 것입니다.

다음 편에서 auth-sql.conf.ext 파일을 상세히 다룰 예정입니다!


2️⃣ 10-mail.conf - 메일 저장소 설정

메일이 실제로 어디에 저장될지를 결정하는 설정 파일입니다. Postfix와 연계하여 Maildir 형식으로 저장하는 것이 일반적입니다.

📌 중요 설정 포인트
- Maildir 형식 사용
- 가상 사용자의 메일 저장 경로 설정
- 메일 권한 설정

설정 파일 예시 (/etc/dovecot/conf.d/10-mail.conf)

mail_home = %h
mail_location = maildir:%h/Maildir

namespace inbox {
  inbox = yes
}

mail_uid = vmail
mail_gid = vmail
mail_privileged_group = mail

💡 설명

  • mail_home = %h → 가상 사용자의 홈 디렉터리를 사용 (DB에서 직접 경로 지정 예정)
  • mail_location = maildir:%h/Maildir → 메일을 Maildir 방식으로 저장
  • mail_uid, mail_gid → 메일 저장 전용 사용자(vmail) 사용
  • namespace inbox { inbox = yes } → 메인 메일함(받은편지함)으로 지정

즉, 사용자의 메일을 특정 시스템 계정이 아닌, 별도의 vmail 계정을 이용해 관리하도록 구성하는 것입니다.

Pigeon mail carrier on a gear representing mail storage


3️⃣ 10-master.conf - 서비스 프로세스 설정

Dovecot이 제공하는 서비스(IMAP, POP3, LMTP 등)를 설정하는 파일입니다.
특히 Postfix와 연동하여 LMTP(Local Mail Transfer Protocol)를 사용할 계획이므로, 이를 활성화해야 합니다.

📌 중요 설정 포인트
- LMTP 활성화 (Postfix와 연동)
- 인증 소켓 설정 (Postfix가 Dovecot의 인증을 사용하도록 설정)

🔹 설정 파일 예시 (/etc/dovecot/conf.d/10-master.conf)

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0600
    user = postfix
    group = postfix
  }
}

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }

  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    group = vmail
  }

  client {
    path = /run/dovecot/auth-client
  }
}

💡 설명

  • LMTP 활성화 (service lmtp)
  • Postfix가 메일을 Dovecot으로 전달할 때 dovecot-lmtp 소켓을 이용
  • Postfix와 Dovecot 인증 연동(service auth)
  • Postfix가 /var/spool/postfix/private/auth 소켓을 통해 Dovecot에서 인증 정보를 가져갈 수 있도록 설정

즉, Postfix가 Dovecot을 통해 사용자 인증을 처리하고, 메일 전달도 LMTP를 통해 연계하도록 설정하는 것입니다.


4️⃣ 10-ssl.conf - TLS/SSL 암호화 설정

메일 서버는 반드시 암호화해야 합니다! 이 파일에서는 SSL/TLS를 설정하여 보안성을 강화합니다.

📌 중요 설정 포인트

  • SSL/TLS 암호화 활성화
  • Let’s Encrypt 또는 자체 서명 인증서 사용 가능

📌 ⚠️ 이 글에서는 SSL 인증서를 발급받는 과정은 생략합니다.

​ 이미 도메인에 대한 인증서를 발급받았다고 가정하고 진행하며, Let’s Encrypt, 자체 서명 인증서, 또는 상용 인증서를 사용할 수 있습니다.

설정 파일 예시 (/etc/dovecot/conf.d/10-ssl.conf)

ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem

💡 설명

  • ssl = required → SSL 필수
  • ssl_cert, ssl_key → Let’s Encrypt 인증서를 사용하여 암호화 적용

즉, 클라이언트가 암호화 없이 접근하지 못하도록 하고, TLS를 통해 보안성을 높이는 것입니다.


🏁 정리

이번 글에서 다룬 Dovecot 필수 설정 파일 4가지
- 10-auth.conf → 사용자 인증 방식 (DB 기반 가상 사용자 환경 적용)
- 10-mail.conf → 메일 저장소 경로 및 권한 설정 (mail_home = %h 적용)
- 10-master.conf → Postfix와 연계한 LMTP 및 인증 서비스 설정
- 10-ssl.conf → SSL/TLS 보안 설정 (Let's Encrypt 설정 생략)

이 설정들만 정확히 이해하면, Postfix와 연동하여 메일을 수신/발신하는 환경을 구성할 수 있습니다. 다음 편에서는 가상 사용자 환경을 위한 데이터베이스 설정 (auth-sql.conf.ext)을 다룰 예정입니다! 🚀

이전 글이나 메일서버 구축 시리즈의 다른 글들도 읽어보세요! 하단의 "Simiar Posts"나 우측 상단의 검색창에 "dovecot", "mail"을 검색해보세요!