Table of Contents
Postfix 설치 (3/4) – TLS/SSL 암호화 설정 가이드
이 글에서는 앞서 구축한 Postfix 메일 서버에 TLS/SSL 암호화를 적용하여 메일 전송의 보안을 강화하는 방법을 다룹니다. Let’s Encrypt 인증서를 사용하여 무료로 SSL 인증서를 적용하겠습니다.
사설 인증서는 외부 메일서버에서 거부될 수 있으므로 사용하지 않습니다.
개요
메일 서버에서 TLS/SSL은 다음과 같은 목적으로 사용됩니다:
- 전송 중 암호화: 메일 내용이 전송 과정에서 노출되지 않도록 보호
- 서버 인증: 메일 클라이언트가 올바른 서버에 연결되었는지 확인
- 데이터 무결성: 전송 중 메일 내용이 변조되지 않았음을 보장
환경 정보
- 도메인: example.com
- 메일 서버: mail.example.com
- 서버 IP: 111.222.333.444
- OS: Ubuntu 20.04/22.04 LTS
- 인증서: Let’s Encrypt
Postfix TLS 설정
1. TLS 관련 패키지 설치
# OpenSSL이 최신 버전인지 확인
sudo apt update
sudo apt install openssl ca-certificates -y
2. Postfix 메인 설정 파일 수정
sudo vi /etc/postfix/main.cf
......
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_tls_auth_only = yes
......
3. Postfix Master 설정 파일 수정
submission(포트 587)과 smtps(포트 465)를 위한 설정을 추가합니다:
sudo vi /etc/postfix/master.cf
......
submission inet n - y - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
smtps inet n - y - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
......
4. 방화벽 설정 업데이트
SMTPS와 Submission 포트를 열어줍니다:
# 포트 587 (Submission) 열기
sudo ufw allow 587/tcp
# 포트 465 (SMTPS) 열기
sudo ufw allow 465/tcp
# 현재 열린 포트 확인
sudo ufw status
인증서 권한 설정
1. Postfix가 인증서에 접근할 수 있도록 권한 설정
# postfix 사용자를 ssl-cert 그룹에 추가
sudo usermod -a -G ssl-cert postfix
# 인증서 디렉토리 권한 확인
sudo ls -la /etc/letsencrypt/live/example.com/
2. 설정 검증 및 서비스 재시작
# Postfix 설정 검증
sudo postfix check
# 문제가 없다면 서비스 재시작
sudo systemctl restart postfix
# 서비스 상태 확인
sudo systemctl status postfix
TLS 연결 테스트
# SMTP 포트 25 TLS 지원 확인
openssl s_client -connect mail.example.com:25 -starttls smtp
# Submission 포트 587 TLS 연결 테스트
openssl s_client -connect mail.example.com:587 -starttls smtp
# SMTPS 포트 465 TLS 연결 테스트 (직접 TLS)
openssl s_client -connect mail.example.com:465