Postfix 설치 (3/4) – TLS/SSL 암호화 설정 가이드

By | 2020년 8월 25일
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

답글 남기기