본문 바로가기
컴소니/리눅스

[메일 서버 구축하기] 3. SMTPS(STARTTLS) 적용하기

by 금소니 2022. 6. 18.
반응형

#224

1. SMTPS(Simple Mail Transfer Protocol Security)란?

이전 포스팅에서 메일에서 사용하고 있는 프로토콜에 대해 말씀을 드린 적이 있습니다.

SMTP에 대한 설명도 드렸었는데요.

 

[메일 서버 구축하기] 1. 메일 서버 동작 원리 이해하기

#184 1. 메일 관련 프로토콜 1) SMTP(Smiple Mail Transfer Protocol), TCP 25  : 메일을 주고받을 때 사용하는 프로토콜(클라이언트 -> 서버, 서버 -> 서버) 2) POP3(Post Office Protocol version 3), TCP 11..

goldsony.tistory.com

여기서 SMTP에 보안을 적용한 프로토콜을 SMTPS라고 합니다.

 

그럼 왜 사용하느냐라고 했을때 Telnet과 SSH의 경우를 보시면 됩니다.

Telnet은 통신 내역이 암호화 되지 않아 패킷을 스니핑하였을때 평문으로 확인이 가능합니다.

하지만 SSH를 사용하였을 때는 암호화되어 확인이 불가능한데요.

 

마찬가지로 SMTP를 사용하였을 때는 메일 내용이 암호화되지 않아 스니핑을 통하여 쉽게 확인할 수 있습니다.

따라서, SMTPS의 경우 암호화를 하여 메일 내용이 보호될 수 있도록 하기위해 사용됩니다.

 

2. STARTTLS란?

제가 구축한 센드메일 서버에 적용할 SSL/TLS 기반의 SMTPS 기능입니다.

적용하기 위해서는 SSL 인증서가 필요하며, SMTP의 25번 포트가 아닌 465번 포트를 이용하여 통신합니다.

또한, 메일 내용이 암호화 되어 중간에 메일 내용을 가로채서 확인하는 것이 어렵습니다.

 

3. STARTTLS 적용하기

그럼 STARTTLS를 적용해보도록 하겠습니다.

 

먼저 적용하기 위해서는 SSL 인증서가 필요합니다.

인증서는 사설 인증서를 생성하여 적용해보도록 하겠습니다.

 

SSL 사설 인증서 생성하기(feat, openssl)

#223 1. SSL(Secure Sockets Layer) 인증서란? 웹 서비스를 이용하는데 신원을 확인하고 암호화 통신을 하기위해 사용되는 디지털 인증서입니다. SSL 프로토콜을 사용하여 SSL 인증서로 불립니다. 서비스하

goldsony.tistory.com

 

적용에 필요한 SSL 인증서가 준비되었다면 이제 본격적으로 적용해보겠습니다.

 

1) 인증서 경로 지정 및 권한 설정

생성된 인증서를 sendmail 설정 파일에서 인식할 수 있도록 경로를 지정해줘야합니다.

저의 경우에는 sendmail이 설치되어 있는 폴더에 생성하였습니다.

그리고 sendmail 쪽에서 인증서를 사용할 수 있도록 권한 설정을 합니다.

chmod 600 -R /etc/mail/cert

 

2) sendmail.mc 수정

인증서 경로를 정하였으니 sendmail쪽에서 인증서를 인식할 수 있도록 설정하도록 하겠습니다.

sendmail의 설정파일은 sendmail.mc를 통하여 sendmail.cf에 적용하면됩니다.

인증서와 관련된 부분은 아래와 같습니다.

주석을 제거하고 위에서부터 인증서가 저장되어있는 폴더, CA 인증서, 서버 인증서, 그리고 서버의 키의 경로를 설정합니다.

 

추가적으로 starttls를 위해 사용되는 옵션의 주석까지 제거합니다.

수정이 완료되었으면 저장하고 sendmail.cf 파일에 적용합니다.

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

 

3) sendmail 재시작

그리고 나서 sendmail을 재시작합니다.

systemctl restart sendmail

 

4) 서비스 확인하기

먼저 포트를 확인해보도록 하겠습니다.

STARTTLS를 적용하였을 때 사용하는 포트는 465번 포트입니다.

다음으로는 ehlo 명령을 통하여 현재 smtp에서 지원하고 있는 방식을 확인해보도록 하겠습니다.

제대로 적용이 안 되었을 경우 STARTTLS 방식이 보이지 않습니다.

 

다음으로 메일을 확인해보도록 하겠습니다.

 

STARTTLS가 성공적으로 적용되었다면 메일 헤더에 아래와 같은 내용을 확인하실 수 있습니다.

다행히 정상적으로 적용되었습니다!

 

테스트 메일 서버지만 보안이 적용되어 정말 뿌듯합니다.

반응형

댓글