Overview
메일 서버(Mail Server)는 전통적인 클라이언트-서버 구조를 기반으로 이메일 송수신 기능을 제공하는 핵심 시스템이다.
메일 서버는 보내는 서버(SMTP) 와 받는 서버(POP3 또는 IMAP) 로 구성되며, 메일 전송과 수신은 각각의 포트를 통해 처리된다.
이 글에서는 Sendmail + Dovecot 조합으로 메일 서버를 구축하는 과정을 다루며, DNS 설정부터 포트 설정, sendmail 환경 구성, 메일 송수신 테스트까지 실습 기반으로 설명한다.
특히, SMTP 포트 25와 POP3 포트 110의 역할, 그리고 sendmail.mc, access, zone/rev 파일 설정을 포함한 전반적인 흐름을 단계별로 따라갈 수 있도록 구성되어 있다.
Mail Server
메일 서버는 절때 실시간으로 동작하지 않는다.
받은 메일서버와 보내는 메일서버 2가지가 있어야 한다.
종류
SMTP 서버(보내는 메일서버)
- Sendmail, Qmail
POP3 서버(받는 메일서버)
- ipop3, imap, vpopmail
Mail Client
- Outlook Express
먼저, Mail Server 구축에 들어가기 전에 DNS는 구축을 해놓고 시작하는 걸 추천한다.
실습
포트(25, 110/tcp) 서비스 추가(pop3,smtp)
# firewall-cmd --permanent --add-port=25/tcp
# firewall-cmd --permanent --add-port=110/tcp
# firewall-cmd --permanent --add-service=pop3
# firewall-cmd --permanent --add-service=smtp
# firewall-cmd --list-all
패키지 설치(sendmail*, dovecot*)
# yum -y install sendmail-*
# yum -y install dovecot*
백업 파일 생성
# cp /etc/mail/sendmail.mc /backup_sendmail.mc
# cp /etc/mail/sendmail.cf /backup_sendmail.cf
환경 설정
# cd /var/named
# vi s.zone // zone 파일
$TTL 1D
@ IN SOA ns.somaz.com. root.somaz.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.somaz.com.
IN A 172.17.5.10
IN MX 10 mail.somaz.com
ns IN A 172.17.5.10
www IN A 172.17.5.10
mail IN A 172.17.5.10
wq
# vi s.rev // rev 파일
$TTL 1D
@ IN SOA ns.somaz.com. root.somaz.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.somaz.com.
IN A 172.17.5.10
IN MX 10 mail.somaz.com.
10 IN PTR ns.somaz.com.
10 IN PTR www.somaz.com.
10 IN PTR mail.somaz.com.
wq
# vi /etc/mail/sendmail.mc
:set nu
50 dnl # Please remember that saslauthd needs to be running for AUTH.
51 dnl #
52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
54 dnl #
55 dnl # Rudimentary information on creating certificates for sendmail TLS:
56 dnl # cd /etc/pki/tls/certs; make sendmail.pem
57 dnl # Complete usage:
58 dnl # make -C /etc/pki/tls/certs usage
59 dnl #
60 dnl define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
:wq
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# vi /etc/mail/sendmail.cf
89 #Cwlocalhost // 주석 처리
269 O DaemonPortOptions=Port=smtp, Name=MTA // 코드 수정
# vi /etc/mail/access
Connect:172.17.5.10 RELAY
Connect:mail.somaz.com RELAY
# makemap hash /etc/mail/access < /etc/mail/access
# systemctl restart sendmail
# yum -y install telnet-*
# systemctl restart telnet.socket
# firewall-cmd --permanent --add-port=23/tcp
# firewall-cmd --permanent --add-service=telnet
# firewall-cmd --reload
# firewall-cmd --list-all
Window 텔넷 클라이언트 활성화 하기
제어판 - 프로그램 및 기능 or 프로그램 추가 제거 - windows 기능 켜기 끄기- 텔넷 클라이언트
메일 보내기
마무리
메일 서버 구축은 복잡한 네트워크 및 인증 요소들이 포함되어 있지만, DNS 설정과 sendmail, dovecot, firewall 설정을 명확히 이해하면 안정적인 내부 또는 외부 메일 시스템을 구성할 수 있다.
이번 실습에서는 Sendmail을 통해 SMTP 기반 메일 발송, Dovecot을 통해 POP3 수신 구성, 그리고 telnet을 이용한 수동 메일 전송 테스트까지 실현해보았다.
Reference
- man sendmail, man dovecot, man access
- https://www.sendmail.org/
- https://wiki.dovecot.org/
- https://en.wikipedia.org/wiki/Mail_server
- RFC 5321 - SMTP
- RFC 1939 - POP3
'Networking, Security, Protocols' 카테고리의 다른 글
AS, BGP(Border Gateway Protocol)란? (0) | 2022.09.19 |
---|---|
DNS 레코드와 tinydns 문법 (0) | 2022.04.22 |
Apache HTTP + HTTPS 설정 및 SSL 적용 (0) | 2022.02.11 |
RSA 공개키를 이용한 SSH 접속 (0) | 2022.01.20 |
DNS(Domain Name System) (0) | 2022.01.19 |