[구성도]
![](https://blog.kakaocdn.net/dn/42TXH/btssbilLUGB/AKxbbh84VVdlV2JRMbR21k/img.png)
![](https://blog.kakaocdn.net/dn/bXEpBf/btsq0EYSnnD/zgFXDrYhnAKSNkGm8nuzr0/img.png)
1. DNS Server 구축
- [CentOS] Linux DNS Server 정리 및 구축 [bind / Root Hint / hosts / resolv.conf]에서 기본적인 방법을 알 수 있다.
- 한 가지 다른 점은 MX Record를 사용한다는 것이다.
- 아래와 같이 MX Record를 생성하여 도메인 영역을 선언한다.
![](https://blog.kakaocdn.net/dn/81aHJ/btsrdil6AMz/5p5kDRXzmoJjRD0TOgYpyK/img.png)
- DNS Server를 자기 자신으로 변경하여, 추가한 도메인 영역을 확인해본다.
![](https://blog.kakaocdn.net/dn/bnowk2/btsq2jTUnqf/NQpf0sX8rj6rRhdfk46kt1/img.png)
2. Mail Server 구축
2.1) Sendmail 설치
yum -y install sendmail* telnet*
-Sendmail을 설치한다. 동시에 telnet 또한 설치하는데, 별다른 이유는 없고 Sendmail 설치 후 Port 확인을 위해 설치한다.
![](https://blog.kakaocdn.net/dn/bNEywz/btsq8IlbAcx/nSXtkwmpPQV421koz5iY41/img.png)
2.2) Sendmail 환경 설정
vi /etc/mail/sendmail.mc
- SMTP 인증 기능을 추가하기 위해 /etc/mail/sendmail.mc 에서 다음과 같이 수정한다.
- dnl을 삭제하여, SMTP 인증 기능을 추가한다.
![](https://blog.kakaocdn.net/dn/da1E8V/btsq0wffdtb/RTFNEkbKDRPlu5rIu1PZ30/img.png)
![](https://blog.kakaocdn.net/dn/b9JxBL/btsq50fk6Zf/XUUd0hdslhS47mkyt6YyK0/img.png)
= 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
- 위에서 변경한 사항을 적용한다.
![](https://blog.kakaocdn.net/dn/FCOip/btsq1awe6Og/76aEzeIXyaHap0bKNAb58k/img.png)
vi /etc/mail/sendmail.cf
- Cwlocalhost =>Cwtiene.vm
= 등록한 도메인으로 변경한다.
![](https://blog.kakaocdn.net/dn/V8x6k/btsq2jNaZeM/Vn5BA5VVmFfz4dLErcrhS1/img.png)
- O DaemonPortOptions=Port=smtp,Addr=0.0.0.0, Name=MTA
= Sendmail Daemon 를 이용할 때, 허용한 IP만 메일 전송이 가능한 설정이다. 테스트를 위해 0.0.0.0으로 지정하여 모두 가능하도록 한다.
![](https://blog.kakaocdn.net/dn/7owXG/btsqZ2loCKU/KLcwRQWkVNOCQYXt92Ykk0/img.png)
/etc/mail/access
- 릴레이 허용파일. 메일은 메일 서버를 경유하여 메일을 전송하는데, 신뢰할 수 있는 도메인 / IP를 지정하여 메일을 릴레이할 수 있도록 허용한다.
= 생성한 도메인 네임(tiene.vm) 과 192.168.1.X/24의 IP 대역의 RELAY를 허용하도록 설정한다.
![](https://blog.kakaocdn.net/dn/eiob8p/btsqZvnGWmh/xcEklxlmMX84OPFHkOvD1K/img.png)
makemap hash /etc/mail/access < /etc/mail/access
- /etc/mail/access의 설정을 적용하기 위해, 다음과 같이 입력하여 적요한다.
![](https://blog.kakaocdn.net/dn/bC8K7q/btsq0wGnFAo/xA8Jh33V41fY9RzY1t5YM0/img.png)
/etc/mail/local-host-names
- Sendmail 서버가 담당하는 Local E-Mail Domain을 정의한다. 이 파일의 각 행은 서버에서 Local로 호스팅되는 Domain을 의미한다.
![](https://blog.kakaocdn.net/dn/cxfubb/btsq69pI3BK/kdT4fM1xcYp6hsEpLOFSkK/img.png)
2.3) Sendmail 실행 및 확인
systemctl start saslauthd
systemctl enable saslauthd
systemctl start sendmail
systemctl enable sendmail
netstat -nlp | grep sendmail
- Sendmail과 SASL 인증 Daemon을 실행하고, 확인한다.
![](https://blog.kakaocdn.net/dn/bzVTOT/btsq8LoGaST/kWyrwbl0Zd40l9N6xKSgt0/img.png)
system ctl start saslauthd 명령을 실행하면 시스템에서 PLANE, LOGING, DIGST-MD5 등의 SASL 메커니즘을 사용하여 인증 요청을 처리하는 SASL 인증 데몬을 시작하도록 지시한다. # 참고 : ChatGPT
telnet localhost 25
- telnet을 통해 Port 번호 25으로 접속하여 SMTP를 확인해본다.
- 클라이언트(예: 이메일 클라이언트 또는 서버)는 EHLO(Extended Hello) 명령 다음에 도메인 이름을 전송하여 클라이언트를 식별하고 서버의 기능을 요청하는 데 사용할 수 있다.
![](https://blog.kakaocdn.net/dn/8akr5/btsq0EduWWp/E1kkHVu7bolNOAbm4k5pz1/img.png)
- Wireshark에서도 동일하게 확인 가능하다.
![](https://blog.kakaocdn.net/dn/w8NHu/btsqZvOLntG/0tUFjhd5OYtFwjuxr7bsx1/img.png)
3. dovecot 설정
- Mail Server에 접속하여 메일을 가져오는 Daemon
3.1) dovecot 설치
yum -y install dovecot
- dovecot을 설치한다.
![](https://blog.kakaocdn.net/dn/ce3FJB/btsrdil6AMY/3LkIRL6tzENF9z2lBC9Ik1/img.png)
3.2) dovecot 환경 설정
vi /etc/dovecot/dovecot.conf
- 사용할 Protocol을 추가하고, listen 항목을 수정하여 모든 ip에서 접속 가능 하도록 설정한다
![](https://blog.kakaocdn.net/dn/bOugZa/btsqZDMyx4M/JGAhkLcZM0FvNQ7iNBDO2k/img.png)
vi /etc/dovecot/conf.d/10-mail.conf
- mail_location = mbox:MEMORY:INBOX=/var/spool/mail/%u:INDEX=MEMORY 을 사진과 같이 추가한다.
![](https://blog.kakaocdn.net/dn/ZMFZt/btsratuGFhl/EdnuzhtglCM0KkHcjXhRe0/img.png)
mbox 형식을 사용하여 MEMORY(메모리)으로 편지함 위치를 설정한다. 향상된 성능을 위해 편지함 콘텐츠와 인덱스는 모두 메모리에 저장되며, 편지함 파일 자체는 /var/spool/mail/디렉토리에 위치한다. 이 구성은 빠른 이메일 액세스가 우선시되고 스토리지 요구 사항을 수용하기에 충분한 사용 가능한 메모리가 있는 시나리오에 적합하다. # 참고 : ChatGPT
vi /etc/dovecot/conf.d/10-ssl.conf
- SSL을 사용하려면, 다음과 같이 변경하여 사용한다.
![](https://blog.kakaocdn.net/dn/x9mVP/btsq2QD5nXj/7WeU3FpxOEeepX57gslpW0/img.png)
vi /etc/dovecot/conf.d/10-auth.conf
- 테스트를 위해 평문형태의 메일도 전송이 가능하도록 설정한다.
![](https://blog.kakaocdn.net/dn/XE0GK/btsq8LhVD03/dy2eKwkE7CREw3227CCoo0/img.png)
3.3) dovecot 실행 및 확인
systemctl start dovecot
systemctl enable dovecot
netstat -nlp | grep dovecot
- 정상적으로 동작하는 것을 확인할 수 있다.
![](https://blog.kakaocdn.net/dn/xVD9f/btsq5eEOCxZ/H8CJ8ZwVe99xIsX7SbI9sk/img.png)
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를 사용하기 위해, 계정을 생성했다.
![](https://blog.kakaocdn.net/dn/bQCO5s/btsq7aoCpDs/kOrKG5yfYkFNkh6l5GlGMk/img.png)
yum -y install evolution
- Mail Client 을 설치한다.
![](https://blog.kakaocdn.net/dn/cdzZI0/btsq5Yu5IA8/QbDfqzBZktKBw2xEgXl8RK/img.png)
- 이제는, Mail을 보내기 위해 GUI 환경에서 진행한다.
- Mail Client 프로그램으로 Mail 계정을 생성한다.
- Evolution을 실행하여 신상정보부터 진행한다. 생성한 계정 이름과 전자메일 주소를 입력한다.
![](https://blog.kakaocdn.net/dn/66EWx/btsq2jfmrUJ/AwK5nvkwagoirn3MAmWWR0/img.png)
- 옵션 확인 후 넘어간다.
![](https://blog.kakaocdn.net/dn/bduNQC/btsqZDsdnOQ/Je2deKxfj6R697aLHfZ4xk/img.png)
- MX Record로 생성한 도메인 이름을 입력한다.
- [다음]을 눌러서, 계정 생성을 마무리한다.
![](https://blog.kakaocdn.net/dn/caEev8/btsrfiztnKj/54d7rQZCAm8fRn4KNQ4Po0/img.png)
- 위에서 systemctl start saslauthd 으로 인증을 실행했기 때문에 계정에 대한 암호를 다시 입력한다.
- [보내기/받기]를 눌러서 아무런 Error가 나오지 않는다면 정상적으로 동작하는 것이다.
![](https://blog.kakaocdn.net/dn/mGycn/btsqZDyXfcP/K0UPESRb4uu7ldgZxYYwyk/img.png)
4. Mail 송/수신 확인하기
- Linux#2에서 [3) Mail Client 구축] 을 진행하여 Mail 계정을 생성한다.
![](https://blog.kakaocdn.net/dn/sQJlw/btsq1bBWkIk/kyiMRk5BjfaD1Z8FlaQnx1/img.png)
- m1 계정으로 Mail을 보내어 확인해본다.
![](https://blog.kakaocdn.net/dn/b2x5Hl/btsrcuGW4fA/0uJbNk3ZWDwDeu8wToOKhk/img.png)
- m1 계정에서 m2가 보낸 메일을 확인 할 수 있다.
![](https://blog.kakaocdn.net/dn/bXlP6R/btsrffCKkJ3/g9TZKp1bOR28fcdcK6vUuk/img.png)
- 회신까지 정상적으로 동작한다.
![](https://blog.kakaocdn.net/dn/bUyDTJ/btsq8KDjdWc/zYJ3yDFywqAvYSyyfWtGj1/img.png)
5. Win2003 Outlook 설정
5.1) Outlook 계정 생성
- Outlook을 실행한 뒤, 계정 이름을 입력한다.
![](https://blog.kakaocdn.net/dn/35UwN/btsq2jl7eiP/uLBiCdAvjGJ0bm8s2v2bwK/img.png)
- 계정이 사용할 전자 메일 주소를 입력한다.
![](https://blog.kakaocdn.net/dn/eHkOD3/btsrcrwGCP3/KomljK3Z10DroKht09Gyo0/img.png)
- 받는 메일 서버 유형과 받는 메일 서버 / 보내는 메일 서버의 주소를 입력한다.
![](https://blog.kakaocdn.net/dn/bn5mHQ/btsq1cHKo5c/5U8p4tyz7efgLphOFYXpK1/img.png)
- 계정의 이름과 암호를 입력하여 마무리한다.
![](https://blog.kakaocdn.net/dn/bwGqGm/btsq8LCcIkK/FaSFQZtx1vnzKFALGjVgKK/img.png)
- Win2003 Outlook에서 보낸 메일을 확인할 수 있다.
![](https://blog.kakaocdn.net/dn/5FaGa/btsq1dzUuIy/wLqkw2hNuKutSosoKP0MNK/img.png)
- 수신까지 정상적으로 확인되었다.
![](https://blog.kakaocdn.net/dn/cCejcl/btsrcuAb0ug/JLRxuDhJUXDqgNmhkOKDq1/img.png)