[메일서버] Postfix, Dovecot, SSL/TLS 인증

email

[Postfix]

CentOS(레드햇 계열)에서는 sendmail을 기본 MTA로 사용하고, Postfix 는 우분투에서 기본 설정된 Mail Transfer Agent (MTA)로 사용한다.
Postfix는 빠르고 관리와 보안이 수월하다. 그리고 MTA 인 sendmail 과 호환이 된다.

설치에 앞서 메일서버에서 사용할 smtp(25), smtps(465), pop3(110), pop3s(995), submission(587, pop3 대체 포트) 중의 포트를 선택하여 열어두어야 한다.

 

1. 설치

설치를 하면 관련성이 있는 패키지들(procmail, postfix-mysql, postfix-pgsql, postfix-ldap, postfix-pcre, sasl2-bin, dovecot-common, postfix-cdb, mail-reader, postfix-doc, openssl-blacklist)을 함께 설치한다.

설치시 질문을하면 리턴키만 누르기만하면 다음 단계에서 더 자세히 수행된다.

2. 기본적인 설정

“인터넷 사이트”를 선택하여 자신의 도메인에 대한 메일서버를 설정할 것이다.

→ 서버 설정형식을 ‘인터넷사이트’로 선택한다. <Internat Site>
→ 메일서버가 사용할 도메인명(FQDN)을 입력한다. <your-domain.com>
→ root 메일을 수신할 사용자명을 입력한다. <user01>
→ 메일을 수신할 호스트명을 모두 입력한다. <mail.your-domain.com, localhost.localdomain, localhost>
→ 메일큐(queue)에 동기 업데이트의 강제유무를 결정한다. <No>
→ 메일서버가 이메일을 릴레이할 네트워크 블럭을 지정한다. <127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128>
→ 메일함의 크기 제한을 설정한다. <0>
→ 로컬주소 확장용 문자를 지정한다. <+>
→ 사용할 인터넷 프로토콜을 지정한다. <all>

Maildir 형식의 메일박스를 사용하도록 설정하려면:

postconf 명령은 /etc/postfix/main.cf에 수정 및 저장이 된다. 직접 main.cf 파일을 수정해도 되지만 미리 작성된 내용과 중복이 되지 않도록 주의해야 한다.

1) SMTP 인증

SMTP-AUTH를 사용하면 클라이언트가 인증 메커니즘 (SASL)을 통해 자신을 식별 할 수 있다. 인증 프로세스를 암호화하려면 TLS (전송 계층 보안)를 사용해야한다. 일단 인증되면 SMTP 서버는 클라이언트가 메일을 릴레이 할 수있도록 허용한다.


2) TLS/SSL 인증서 생성

openssl을 통한 인증서를 생성해서 사용해도 되지만, 여기서는 LetsEncrypt 무료 SSL 인증서를 적용하여 사용할 것이다.

Let’s Encrypt는 HTTPS를 통해 암호화 통신을 할 수 있도록 무료 SSL 인증서를 제공해주는 프로젝트로서 ISRG(Internet Security Research Group)라는 비영리기관에 의해 운영되고 있다.
LetsEncrypt는 크롬, 모질라, 시스코 등 여러 기업들로 부터 후원을 받고 있고, 이미 상당한 숫자의 사용자를 확보하고 있다.
단, 인증서 유효기간이 90일이라 짧은 편이지만 자동갱신 설정이 가능하다. 또한, *.domain.com과 같이 일괄적인 서브도메인 등록은 불가하고, 각각의 서브 도메인에 대한 등록이 필요하다.

우분투 16.04에는 패키지가 기본 포함되어 있어 apt로 간단하게 설치가 가능하다.

우선 Apache나 Nginx 같은 웹서버가 동작중이라면 서비스를 먼저 정지한 후 아래 명령을 통하여 인증서를 생성할 수 있다.

인증서가 잘 생성되었다면 아래와 같은 형식의 메시지를 볼 수 있다.

메세지에 나온 디렉토리로 이동해보면 아래 4개의 파일이 생성된다. 잃어버리거나 유출되지 않도록 잘 보관하도록 하자.

이제 정지되었던 웹서비스를 재가동시키면 된다.

제대로 적용이 되었다면 90일마다 ‘letsencrypt renew’ 명령으로 수동 갱신을 해야하지만, 우리는 crontab을 활용하여 매월 자동 갱신되도록 해두자.

‘매월 1일 12시에 인증서를 갱신하고, 5분 뒤에 아파치를 리로드시킨다’라는 설정이다.

3) 입출력 메일에 대한 TLS 암호화 사용을 위한 설정


4) /etc/postfix/master.cf 파일을 열어 주석을 없애주어 smtps(465)와 submission(587)을 사용할 수 있도록 해준다.


5) 여기까지 설정을 마친 후 postfix 데몬을 리스타트 한다.

 

3. SASL 설정하기

1) Dovecot SASL 이용을 위하여 dovecot-common 패키지를 설치한다.

2) 다음으로 /etc/dovecot/conf.d/10-master.conf 설정파일 아래 내용부분을 찾아 주석을 제거하고 수정한다.


3) TLS/SSL 암호화 설정

먼저 SSL/TLS 암호화가 사용되지 않으면 일반 텍스트 인증이 비활성화 되도록 /etc/dovecot/conf.d/10-auth.conf를 열어 아래 라인을 찾아 주석을 제거한다.

4) 또한, Outlook 클라이언트가 SMTP 사용자 인증을 사용하도록 “auth_mechanisms” 섹션의 “plain”을 “plan login”으로 변경해준다.

dovecot 데몬을 리스타트하면 SASL을 이용한 Postfix의 SMTP 사용자인증 설정은 완료된 것이다.

 

4. TEST

SMTP 사용자인증이 잘 설치되었는지 테스트를 해보자.

접속이 된 후 아래 명령을 입력하여 결과를 확인하자.

만약, 아래 내용들이 보인다면 정상적으로 설치가 완료된 것이다.

 

[Dovecot 서버]

Dovecot 은 보안 우선을 염두에 두고 쓰여진 Mail Delivery Agent 이다. 이것은 mbox 와 Maildir 같은 주요 메일박스 형식을 지원한다. 여기서는 imap 또는 pop3 서버로서 Dovecot을 어떻게 설정하는 지를 설명 하고자 한다.

1. dovecot-imapd 와 dovecot-pop3d 설치

 

2. 설정

IMAPS 및 POP3S는 SSL 암호화를 사용하여 연결하기 때문에 단순한 IMAP 및 POP3보다 안전하다. 프로토콜을 선택했으면 /etc/dovecot/dovecot.conf 파일에서 다음 내용을 추가하자.


1) 이제 메일함 형식을 지정

Dovecot은 maildir 및 mbox 형식을 지원한다. 우리는 Postfix에서 maildir 형식을 사용하기로 했으므로 /etc/dovecot/conf.d/10-mail.conf 를열어 “mail_location”을 아래와 같이 수정한다.


2) /etc/dovecot/conf.d/20-pop3.conf를 열어 아래 줄을 찾아 주석을 제거한다.

여기까지 설정을 마쳤으면 dovecot 데몬을 리스타트 시킨 후 설정을 테스트해보자.

imap 또는 pop3을 활성화 한 경우 telnet localhost pop3 또는 telnet localhost imap2 명령을 사용하여 로그인 할 수도 있다. 다음과 같은 메시지가 나타나면 설치가 성공적으로 완료된 것이다.

 

3. Dovecot SSL 설정

1) SSL을 사용하도록 dovecot을 구성하려면 /etc/dovecot/conf.d/10-ssl.conf 파일을 편집하고 다음 행을 수정하자.

ssl을 허용하고, SSL/TLS 인증서와 개인키의 위치를 지정한 것이다.

dovecot 데몬을 리스타트하면 끝~

 

4. TEST

1) 접속 테스트
pop3(110), imap(143), pop3s(995), imap3s(993)에 telnet으로 접속해서 모두 접속되면 설정완료.

2) 메일 발송 테스트
이제 Mozilla Thunderbird와 같은 데스크탑 이메일 클라이언트를 열고 메일 계정을 추가해보자.

수신 서버 섹션에서 IMAP 프로토콜을 선택하고, 서버 이름으로 mail.your-domain.com을 입력 한 다음,포트 993 및 SSL/TLS를 선택.
송신 서버 섹션에서 SMTP 프로토콜을 선택하고, 서버 이름으로 mail.your-domain.com을 입력하고, 포트 587 및 STARTTLS를 선택.

이제 자신의 이메일 서버에 연결해서 이메일 클라이언트로 전자 메일을 보내고받을 수 있을 것이다.

 

[참고자료]
1. 우분투 서버 가이드>>이메일 서비스>>Postfix
2. 우분투 서버 가이드>>이메일 서비스>>Dovecot 서버
3. https://www.linuxbabe.com/mail-server/secure-email-server-ubuntu-16-04-postfix-dovecot


답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.