[20260508] Sendmail & Dovecot을 이용한 메일 서버 구축 실습

📋 학습 요약

  • 주제: MTA(Sendmail)와 MDA(Dovecot) 연동을 통한 메일 서버 구축 및 서비스 활성화
  • 도구: Rocky Linux 9, Sendmail, Dovecot, M4 매크로
  • 핵심 포트: SMTP(25), POP3(110), IMAP(143)

💻 1. 사전 환경 설정 및 패키지 설치

메일 서버는 호스트명과 DNS 설정이 매우 중요합니다.

Bash
 
# 1. DNS 경로 단계적 추적 (네임서버 계층 구조 확인)
dig naver.com @8.8.8.8 +trace

# 2. 로컬 호스트 설정
vi /etc/hosts
# >> 10.0.0.13    rocky9-3 추가

# 3. 메일 관련 패키지 설치
dnf install -y sendmail sendmail-cf dovecot

💻 2. Sendmail (MTA: 메일 발송) 설정

sendmail.mc 매크로 파일을 수정하여 실제 설정 파일인 sendmail.cf를 생성하는 과정이 핵심입니다.

Bash
 
# 1. 매크로 파일 수정
vi /etc/mail/sendmail.mc
# >> 56, 57행: dnl 제거 (도메인 관련 설정 활성화)
# >> 121행: 'Addr=127.0.0.1' 부분 제거 (외부 수신 허용)

# 2. m4 도구를 이용한 설정 파일 변환 (매우 중요)
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

# 3. 수신 도메인 등록
vi /etc/mail/local-host-names
# >> mx1.csm.local
# >> csm.local
# >> rocky9-3

# 4. 릴레이(Relay) 허용 설정
vi /etc/mail/access
# >> Connect:10.0.0.0/24    RELAY
# >> Connect:csm.local      RELAY

# 5. Access DB 갱신
makemap hash /etc/mail/access < /etc/mail/access

# 6. 메일 권한 그룹 설정 및 서비스 기동
vi /etc/group  # mail:x:12:x,y (사용자 추가 확인)
systemctl enable --now sendmail

💻 3. Dovecot (MDA: 메일 수신) 설정

사용자가 Outlook이나 스마트폰에서 메일을 가져갈 수 있도록 프로토콜을 설정합니다.

Bash
 
# 1. 프로토콜 활성화
vi /etc/dovecot/dovecot.conf
# >> 24, 30행 주석 제거 (protocols = imap pop3 lmtp 등)

# 2. 인증 설정 (평문 인증 허용)
vi /etc/dovecot/conf.d/10-auth.conf
# >> 10행: disable_plaintext_auth = no

# 3. 메일함 경로 지정
vi /etc/dovecot/conf.d/10-mail.conf
# >> 25행 주석 제거 (mail_location 설정)

# 4. SSL 보안 비활성화 (실습용)
vi /etc/dovecot/conf.d/10-ssl.conf
# >> 8행: ssl = no

# 5. 서비스 기동
systemctl enable --now dovecot

🛠️ 4. 서비스 검증 및 보안 설정

설정 후 포트가 정상적으로 열렸는지 확인하고 방화벽을 개방합니다.

Bash
 
# 1. 포트 활성 상태 확인 (25, 110, 143 확인)
ss -nat

# 2. 메일 서비스 관련 포트 방화벽 개방
firewall-cmd --permanent --add-port={25,110,143}/tcp
firewall-cmd --reload

🔍 주요 체크포인트 (TIL)

  • m4 변환: .mc 파일만 고치고 m4 명령어를 안 쓰면 설정이 반영되지 않습니다.
  • RELAY 보안: access 파일에서 신뢰할 수 있는 대역(우리 팀 IP 등)만 RELAY로 설정해야 스팸 메일 서버로 악용되는 것을 막을 수 있습니다.
  • Dovecot SSL: 실습 시 ssl = no를 설정하지 않으면 인증서 문제로 로그인이 안 될 수 있으니 주의해야 합니다.

📝 오늘의 회고

DNS와 웹 서버에 이어 메일 서버까지 구축하며 서버 인프라의 큰 그림이 그려지는 느낌이다. 특히 makemap이나 m4 처럼 설정 파일을 데이터베이스화하거나 변환하는 과정이 낯설었지만, 대규모 메일 서버를 관리하기 위한 효율적인 방식임을 이해했다. 다음에는 실제 메일 클라이언트를 연결해 송수신 테스트를 완벽히 마무리하고 싶다.