메일 서버 · 2 min read · Oct 05, 2025

가상 도메인 및 사용자와 함께하는 전체 메일 서버 솔루션 (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - 페이지 10

VII. 안전한 이메일

이상적인 세상에서는 사용자들이 인터넷에 접속할 때마다 전 세계 어디에서나 이메일을 주고받을 수 있습니다. 불행히도, 이는 믿을 수 없을 만큼 불안정합니다… 비밀번호가 SMTP 및 IMAP 프로토콜을 통해 일반 텍스트로 주고받고 있으며, 이는 원하는 누구나 비밀번호를 ‘엿볼’ 수 있다는 것을 의미합니다.

사용자가 메일 솔루션에 직접 접근할 필요가 없다면, 그들에게 접근 권한을 주지 마세요! 모든 사용자가 필요한 것이 웹메일이라면 안전한 이메일 설정에 대해 스트레스를 받을 필요가 없습니다! 웹메일 서버에 대한 연결을 안전하게 만들고, 웹메일 서버가 메일 서버와 통신할 때 안전한 네트워크 연결을 사용하도록 하세요. 문제 해결 완료! 반면에, 사용자가 웹메일을 사용하지 않고 인터넷을 통해 이메일을 주고받을 수 있어야 한다면, 이는 상황을 더 어렵게 만듭니다. 불가능하지는 않지만, 어렵습니다.

그래서, 당신의 문제는 다음과 같습니다: SMTP와 IMAP은 비밀번호를 일반 텍스트로 전송합니다. MD5를 사용하여 비밀번호를 전송하도록 할 수 있지만, 기본 MD5는 해킹될 수 있습니다. MD5CRYPT를 사용하여 비밀번호를 전송하도록 할 수 있지만, 그러면 여러 구현을 다루어야 합니다 (모든 이메일 클라이언트가 MD5 비밀번호를 지원하는 것은 아닙니다). 해결책은? TLS (전송 계층 보안). 우리는 인터넷을 통해 암호화된 연결을 지원하도록 솔루션을 설정할 것입니다. 기존 서버 중 일부를 수정할 수 있지만, 그들의 설정을 복잡하게 만들 필요는 없습니다. 모든 것을 처리할 별도의 서버를 운영할 것입니다: secure-mail.example.com

참고: 원래 시나리오에서 소규모 비즈니스는 여러 개의 정적 IP 주소를 가지고 있었습니다. 이 경우, 우리는 포트 25에서 SMTP+TLS를 실행할 수 있었습니다. 여러 개의 IP 주소가 없다면, 이는 불가능합니다. 이유는 간단합니다: IMAPS(보안 IMAP)는 표준 IMAP(143)과 다른 포트(993)에서 실행되지만, SMTP+TLS는 SMTP와 동일한 포트(25)에서 실행됩니다. 따라서 포트를 기반으로 라우팅하는 방화벽을 사용하면 별도의 IMAP 및 IMAPS 서버를 실행할 수 있지만, 세상에 어떤 방화벽도 포트 25를 두 대의 다른 머신으로 라우팅할 수는 없습니다. 그럼에도 불구하고, 비표준 포트에서 SMTP+TLS를 실행할 수 있습니다… 어쩌면 더 안전할 수도 있습니다.

따라서, 이를 염두에 두고, 우리는 이메일 전송을 위해 SMTP+TLS를 사용하고, 수신을 위해 IMAPS를 사용하는 안전한 메일 서버를 설정할 것입니다.

A. SSL 인증서

가장 간단한 형태의 암호화는 서버에 간단한 자체 서명된 인증서를 갖는 것입니다. 클라이언트가 처음 연결할 때 경고 메시지가 생성되지만, 이후 사용을 위해 저장할 수 있어야 합니다. 인증서를 저장하지 않으면 누구나 중간자 공격을 실행할 수 있기 때문에 실제로 안전하지 않습니다.

다음 단계는 상업적인 인증 기관(CA) 또는 회사 내부 CA에 의해 서명된 서버 인증서를 사용하는 것입니다. 이렇게 하면 서버 인증서가 신뢰를 받게 되며, 이제 경고를 받는다면 잠재적으로 문제가 발생하고 있다는 것입니다.

마지막으로, 클라이언트 인증서를 사용하여 서버에 로그인하고, 서버 인증서를 사용하여 서버를 클라이언트에 인증하는 것입니다. 이는 꽤 안전하지만 모든 메일 클라이언트에서 지원되지는 않습니다. Thunderbird와 같은 일부 클라이언트는 이를 지원합니다.

1. 자체 서명된 서버 인증서

먼저 디렉토리를 생성하고, 개인 키를 생성한 다음, 마지막으로 인증서를 생성합니다.

# mkdir -p /etc/ssl/example.com/mailserver/  
# cd /etc/ssl/example.com/mailserver/  
# openssl genrsa 1024 > mail-key.pem  
# chmod 400 mail-key.pem  
# openssl req -new -x509 -nodes -sha1 -days 365 -key mail-key.pem > mail-cert.pem

“Common Name (eg, YOUR name)”은 반드시 서버의 이름과 일치해야 하며, 이 경우 secure-mail.example.com입니다.

2. CA 서명 인증서

실제 CA 서명 인증서를 사용하는 것은 자체 서명된 인증서를 사용하는 것과 다르지 않습니다. 키 쌍 생성의 또 다른 단계일 뿐입니다. 회사에 자체 CA가 있다면, 메일 서버에 대한 인증서를 발급해야 합니다. 필요하다면 ‘자체 CA 만들기’를 구글에서 검색하면 스스로 생성하는 데 충분한 답을 얻을 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.