우분투에서 외부 메일 서버(Postfix + Dovecot + Let’s Encrypt + MySQL)를 구축하는 방법을 단계별로 설명해 드릴게요.
1. 서버 준비
필수 사항
- 도메인 이름(예:
mail.example.com
) - 우분투 서버 (권장: 20.04 이상)
- 고정 IP 주소
- 방화벽 설정 가능(iptables 또는 UFW)
DNS 설정
DNS 관리 패널에서 다음 레코드를 추가해야 합니다.
레코드 유형 | 호스트명 | 값 (예제) |
---|---|---|
A | mail.example.com | 서버의 공인 IP 주소 |
MX | example.com | mail.example.com (우선순위 10) |
TXT | example.com | v=spf1 mx -all |
TXT | _dmarc.example.com | v=DMARC1; p=none |
2. 패키지 설치
sudo apt update && sudo apt upgrade -y
sudo apt install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-mysql mysql-server certbot -y
3. MySQL 데이터베이스 설정
sudo mysql -u root -p
CREATE DATABASE mailserver;
CREATE USER 'mailuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON mailserver.* TO 'mailuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4. Postfix 설정
sudo nano /etc/postfix/main.cf
다음 설정 추가 또는 수정:
myhostname = mail.example.com
mydestination = example.com, localhost
relayhost =
inet_interfaces = all
home_mailbox = Maildir/
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_use_tls=yes
저장 후 Postfix 재시작:
sudo systemctl restart postfix
5. Dovecot 설정
sudo nano /etc/dovecot/dovecot.conf
protocols = imap lmtp
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
Dovecot 재시작:
sudo systemctl restart dovecot
6. SSL 인증서 설정 (Let’s Encrypt)
sudo certbot certonly --standalone -d mail.example.com
7. 방화벽 설정
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 993/tcp
sudo ufw reload
8. 테스트
telnet mail.example.com 25
로 SMTP 테스트openssl s_client -connect mail.example.com:993 -quiet
로 IMAP SSL 확인mail -s "Test Email" user@example.com
으로 메일 발송 테스트
이제 기본적인 메일 서버가 구축되었습니다. Roundcube 같은 웹메일 클라이언트를 설치하면 웹에서 메일을 확인할 수도 있습니다.
답글 남기기