OS/Linux

[Linux 서버] 메일 서버 구축

JooRi 2025. 9. 5. 15:41
728x90
반응형
SMALL

 

이번 실습에서는 메일 서버를 구축하고, 클라이언트에서 메일 송수신이 가능한 환경을 구성하였다.
메일 서버는 크게 두 가지 역할로 나눌 수 있다.

  • MTA (Mail Transfer Agent): 메일을 보내고 전달하는 역할 → Sendmail
  • MDA/IMAP/POP3 (Mail Delivery/Access Agent): 메일을 저장하고 사용자가 접근할 수 있게 하는 역할 → Dovecot
  • Sendmail: 메일 전송 담당 (SMTP)
  • Dovecot: 메일 저장/조회 담당 (POP3/IMAP)

두 서비스를 연동하여, 로컬 도메인(naver.com, daum.net) 기반의 메일 서버를 구축하였고,

클라이언트(Evolution)에서 정상적으로 메일 송수신 확인을 하였다.

 

 

1. Sendmail 설치

Server와 Server(B)에 메일 서버 구현을 위한 sendmail 패키지 설치

 

 

2. 메일 서버의 호스트네임 및 도메인 설정 

1) Server → mail.naver.com

 

(1) 메일 서버의 호스트네임 지정: /etc/hostname

 

 

 

(2) IP와 도메인 매핑: /etc/hosts

 

 

(3) 메일 도메인 등록: /etc/mail/local-host-names

여기까지 설정하면 각 서버가 자신의 도메인을 인식할 수 있고,

외부 클라이언트가 접근할 때도 정상적으로 매칭된다.

 

 

(4) 서버 자체 호스트네임 설정: /etc/sysconfig/network

 

HOSTNAME 값을 메일 서버 도메인과 동일하게 지정해야 한다.

이 설정은 서버가 부팅될 때 적용되므로, 변경 후에는 반드시 reboot

 

reboot 후 hostname 명령을 실행하면 mail.naver.com이 출력되어야 한다.

 

 

2) Server(B) → mail.daum.net

 

(1) 메일 서버의 호스트네임 지정: /etc/hostname

 

 

(2) IP와 도메인 매핑: /etc/hosts

 

 

(3) 메일 도메인 등록: /etc/mail/local-host-names

 

 

(4) 서버 자체 호스트네임 설정: /etc/sysconfig/network

 

reboot

 

 

설정 파일 정리

  • /etc/hostname → 메일 서버의 호스트네임 지정
  • /etc/hosts → IP와 도메인 매핑
  • /etc/mail/local-host-names → 메일 서버 도메인 등록
  • /etc/sysconfig/network → 서버 자체 호스트네임 지정

이렇게 맞춰줘야 메일 서버가 자신을 mail.naver.com, mail.daum.net 으로 올바르게 인식하고, 송수신 과정에서 오류가 발생하지 않는다.

 

 

3. DNS 서버 설정

1) BIND 설치 

 

 

2) named.conf 설정

options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { none; };
    allow-query     { any; };
    dnssec-validation no;
};

 

 

zone 등록

zone "naver.com" IN {
    type master;
    file "naver.com.db";
    allow-update { none; };
};

zone "daum.net" IN {
    type master;
    file "dauhttp://m.net.db";
    allow-update { none; };
};

 

 

3) 존 파일 설정

(1) 존 파일 생성

작업 경로 이동 후, 도메인 DB 파일 생성

 

 

(2) naver.com.db 설정

 

 

(3) daum.net.db 설정

 

 

(4) 설정 파일 검증

named-checkconf
named-checkzone naver.com naver.com.db
named-checkzone daum.net daum.net.db

 

여기까지 완료하면,

  • naver.com 도메인은 192.168.111.100 (mail.naver.com)
  • daum.net 도메인은 192.168.111.200 (mail.daum.net)

으로 매핑되어, 메일 서버가 올바르게 동작할 준비가 됩니다.

 

 

4) 네임 서버 서비스 가동

systemctl restart named

systemctl enable named

 

 

5) 방화벽 설정

방화벽에서 dns 포트 열기

 

 

Server

nmtui 명령 입력 후 DNS를 127.0.0.1로 변경

네임 서버는 외부 DNS를 사용하지 않고, 자기 자신을 기본 DNS 서버로 지정해야 한다.

 

 

네임 서버가 잘 설정되었는지 확인

  • mail.naver.com → 192.168.111.100
  • mail.daum.net → 192.168.111.200

 

DNS 설정 파일 resolv.conf 확인 결과,

네임 서버가 자기 자신(127.0.0.1)을 참조하도록 설정되어있다.

 

 

Server(B)

Server(B)의 DNS 주소도 변경하고 nslookup으로 확인

 

 

7) 방회벽 중지 및 비활성화

네임 서버가 외부에서 접근 가능하려면 방화벽(firewalld) 에서 DNS(53번 포트)를 열어줘야 한다.
이번 실습에서는 단순화를 위해 방화벽을 완전히 중지(disable)하고, named 서비스를 영구 실행되도록 설정하였다.

 

 

reboot해도 살아있는 것 확인

 

 

8) 클라이언트 서버 DNS 변경

LClient 서버 DNS 변경

 

 

WINClient 서버 DNS 변경

 

 

4. naver.com 메일 서버와 daum.net 서버 구현

1) 패키지 설치

Server

 

Server(B)

  • sendmail-cf: 메일 송신 서버(SMTP)용 Sendmail 설치.
  • dovecot: 메일 수신 서버(POP3, IMAP)용 설치

 

2) 설정 파일 수정

(1) Server (mail.naver.com)

/etc/mail/sendmail.cf

 

 

/etc/mail/access

 

 

/etc/dovecot/dovecot.conf

24, 30, 33행 주석 제거

 

 

 

/etc/dovecot/conf.d/10-ssl.conf

 

 

/etc/dovecot/conf.d/10-mail.conf

 

 

  • /etc/mail/sendmail.cf
    → SMTP 관련 포트/동작 방식 지정 (DaemonPortOptions 등).
  • /etc/mail/access
    → 어떤 도메인/네트워크 대역이 메일 중계를 허용할지(RELAY) 지정.
    (예: naver.com, daum.net, 192.168.111.0/24 네트워크 허용)
  • /etc/dovecot/dovecot.conf
    → 기본 프로토콜(IMAP, POP3)과 동작할 네트워크 인터페이스 지정.
  • /etc/dovecot/conf.d/10-ssl.conf
    → SSL 사용 여부 설정 (ssl = yes)
  • /etc/dovecot/conf.d/10-mail.conf
    → 메일 저장 경로(mail_location), 접근 그룹(mail_access_groups = mail), Lock 방식 등 설정

 

(2) Server(B) (mail.daum.net)

 

 

 

 

주석 제거

 

 

ssl = yes로 수정

 

 

주석 제거 및 주석 제거 후 수정

 

 

3) 사용자 생성

(1) Server

Server

naver.com 메일 계정의 사용자 생성

이 계정이 실제 메일 계정(lee@naver.com)으로 사용된다.

 

(2) Server(B)

Server(B)

daum.net 메일 계정의 사용자 생성

 

 

4) 서비스 재시작

(1) Server

Server

systemctl restart sendmail
systemctl enable sendmail
systemctl restart dovecot
systemctl enable dovecot

 

(2) Server(B)

Server(B)

sendmail, dovecot 서비스 시작

 

 

메일 서비스 관련 서비스를 여러개 실행해야하므로 방화벽을 잠시 끈다.

 

 

정리
지금 한 것은 메일 송수신 서버 구축 준비이다.

  • sendmail: 메일 송신 서버 (SMTP, 25번 포트)
  • dovecot: 메일 수신 서버 (POP3 → 110, POP3S → 995, IMAP → 143, IMAPS → 993)
  • /etc/mail/access에서 허용 도메인/네트워크를 RELAY로 설정하여 내부 네트워크에서 외부 메일 전송 가능하도록 설정
  • 사용자 생성 후, 이 계정을 기반으로 실제 메일을 보내고 받을 수 있게 되었다.

 

5. 메일 서버가 잘 작동하는지 테스트

1) Server [에볼루션]에서 메일 송수신 테스트

 

 

[보내기/받기] - [인증서 신뢰] - [계속 허용]

 

 

 

 

자신에게 메일 전송

 

 

보낸 편지함 확인

 

 

받은 편지함 확인

 

 

2) Server(naver.com) → LClient 메일 송수신

Server에서 보낸 메일 확인

 

 

3) WINClient → Server(naver.com) 메일 송수신

인터넷 접속을 위해 DNS 주소를 8.8.8.8로 변경하고 썬더버드 다운로드 및 설치

 

 

썬더버트 설치 끝나면 다시 원래 DNS로 변경

 

 

 

 

 

 

 

WINClient에서 Server(naver.com)로 메일 전송

 

 

Server로 메일이 수신된 것 확인.

 

끝.

 

 

728x90
반응형
LIST