[구성도]
1. DNS Server 구축
- [CentOS] Linux DNS Server 정리 및 구축 [bind / Root Hint / hosts / resolv.conf]에서 기본적인 방법을 알 수 있다.
- 한 가지 다른 점은 MX Record를 사용한다는 것이다.
- 아래와 같이 MX Record를 생성하여 도메인 영역을 선언한다.
- DNS Server를 자기 자신으로 변경하여, 추가한 도메인 영역을 확인해본다.
2. Mail Server 구축
2.1) Sendmail 설치
yum -y install sendmail* telnet*
-Sendmail을 설치한다. 동시에 telnet 또한 설치하는데, 별다른 이유는 없고 Sendmail 설치 후 Port 확인을 위해 설치한다.
2.2) Sendmail 환경 설정
vi /etc/mail/sendmail.mc
- SMTP 인증 기능을 추가하기 위해 /etc/mail/sendmail.mc 에서 다음과 같이 수정한다.
- dnl을 삭제하여, SMTP 인증 기능을 추가한다.
= TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
이 행은 sendmail 서버가 신뢰하는 인증 메커니즘을 지정한다. 서버가 지정된 인증 메커니즘을 사용하는 클라이언트를 신뢰함을 나타낸다. # 참고 : ChatGPT
= define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')
이 줄은 Sendmail 서버가 수신 및 발신 이메일 모두에 대해 지원하는 인증 메커니즘을 정의한다. 이전 줄과 동일한 인증 메커니즘을 나열한다. 지원되는 메커니즘은 서버가 보안 연결을 설정하고 신원을 확인하기 위해 클라이언트 및 사용자와 상호 작용하는 방법을 결정한다. # 참고 : ChatGPT
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
- 위에서 변경한 사항을 적용한다.
vi /etc/mail/sendmail.cf
- Cwlocalhost =>Cwtiene.vm
= 등록한 도메인으로 변경한다.
- O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA
= Sendmail Daemon 를 이용할 때, 허용한 IP만 메일 전송이 가능한 설정이다. 테스트를 위해 0.0.0.0으로 지정하여 모두 가능하도록 한다.
/etc/mail/access
- 릴레이 허용파일. 메일은 메일 서버를 경유하여 메일을 전송하는데, 신뢰할 수 있는 도메인 / IP를 지정하여 메일을 릴레이할 수 있도록 허용한다.
= 생성한 도메인 네임(tiene.vm) 과 192.168.1.X/24의 IP 대역의 RELAY를 허용하도록 설정한다.
makemap hash /etc/mail/access < /etc/mail/access
- /etc/mail/access의 설정을 적용하기 위해, 다음과 같이 입력하여 적요한다.
/etc/mail/local-host-names
- Sendmail 서버가 담당하는 Local E-Mail Domain을 정의한다. 이 파일의 각 행은 서버에서 Local로 호스팅되는 Domain을 의미한다.
2.3) Sendmail 실행 및 확인
systemctl start saslauthd
systemctl enable saslauthd
systemctl start sendmail
systemctl enable sendmail
netstat -nlp | grep sendmail
- Sendmail과 SASL 인증 Daemon을 실행하고, 확인한다.
system ctl start saslauthd 명령을 실행하면 시스템에서 PLANE, LOGING, DIGST-MD5 등의 SASL 메커니즘을 사용하여 인증 요청을 처리하는 SASL 인증 데몬을 시작하도록 지시한다. # 참고 : ChatGPT
telnet localhost 25
- telnet을 통해 Port 번호 25으로 접속하여 SMTP를 확인해본다.
- 클라이언트(예: 이메일 클라이언트 또는 서버)는 EHLO(Extended Hello) 명령 다음에 도메인 이름을 전송하여 클라이언트를 식별하고 서버의 기능을 요청하는 데 사용할 수 있다.
- Wireshark에서도 동일하게 확인 가능하다.
3. dovecot 설정
- Mail Server에 접속하여 메일을 가져오는 Daemon
3.1) dovecot 설치
yum -y install dovecot
- dovecot을 설치한다.
3.2) dovecot 환경 설정
vi /etc/dovecot/dovecot.conf
- 사용할 Protocol을 추가하고, listen 항목을 수정하여 모든 ip에서 접속 가능 하도록 설정한다
vi /etc/dovecot/conf.d/10-mail.conf
- mail_location = mbox:MEMORY:INBOX=/var/spool/mail/%u:INDEX=MEMORY 을 사진과 같이 추가한다.
mbox 형식을 사용하여 MEMORY(메모리)으로 편지함 위치를 설정한다. 향상된 성능을 위해 편지함 콘텐츠와 인덱스는 모두 메모리에 저장되며, 편지함 파일 자체는 /var/spool/mail/디렉토리에 위치한다. 이 구성은 빠른 이메일 액세스가 우선시되고 스토리지 요구 사항을 수용하기에 충분한 사용 가능한 메모리가 있는 시나리오에 적합하다. # 참고 : ChatGPT
vi /etc/dovecot/conf.d/10-ssl.conf
- SSL을 사용하려면, 다음과 같이 변경하여 사용한다.
vi /etc/dovecot/conf.d/10-auth.conf
- 테스트를 위해 평문형태의 메일도 전송이 가능하도록 설정한다.
3.3) dovecot 실행 및 확인
systemctl start dovecot
systemctl enable dovecot
netstat -nlp | grep dovecot
- 정상적으로 동작하는 것을 확인할 수 있다.
Port Number | 993 | IMAPS (Internet Message Access Protocol over TLS/SSL) |
995 | POP3S (Post Office Protocol 3 over TLS/SSL) | |
110 | POP3 (Post Office Protocol 3) | |
143 | IMAP (Internet Message Access Protocol) |
3. Mail Client 구축
- Mail Server를 사용하기 위해, 계정을 생성했다.
yum -y install evolution
- Mail Client 을 설치한다.
- 이제는, Mail을 보내기 위해 GUI 환경에서 진행한다.
- Mail Client 프로그램으로 Mail 계정을 생성한다.
- Evolution을 실행하여 신상정보부터 진행한다. 생성한 계정 이름과 전자메일 주소를 입력한다.
- 옵션 확인 후 넘어간다.
- MX Record로 생성한 도메인 이름을 입력한다.
- [다음]을 눌러서, 계정 생성을 마무리한다.
- 위에서 systemctl start saslauthd 으로 인증을 실행했기 때문에 계정에 대한 암호를 다시 입력한다.
- [보내기/받기]를 눌러서 아무런 Error가 나오지 않는다면 정상적으로 동작하는 것이다.
4. Mail 송/수신 확인하기
- Linux#2에서 [3) Mail Client 구축] 을 진행하여 Mail 계정을 생성한다.
- m1 계정으로 Mail을 보내어 확인해본다.
- m1 계정에서 m2가 보낸 메일을 확인 할 수 있다.
- 회신까지 정상적으로 동작한다.
5. Win2003 Outlook 설정
5.1) Outlook 계정 생성
- Outlook을 실행한 뒤, 계정 이름을 입력한다.
- 계정이 사용할 전자 메일 주소를 입력한다.
- 받는 메일 서버 유형과 받는 메일 서버 / 보내는 메일 서버의 주소를 입력한다.
- 계정의 이름과 암호를 입력하여 마무리한다.
- Win2003 Outlook에서 보낸 메일을 확인할 수 있다.
- 수신까지 정상적으로 확인되었다.