메일서버 포스트가 벌써 5회째 연재입니다. 계속 서로다른 프로그램이 설치가 되면서 그것들이 서로 연계가 되니 복잡함이 이루말할 수 없습니다. 대부분은 중도에 포기하시게 될 줄 압니다. 하지만, 조금만 더 집중을 하셔서 꼭 성공해 내셨으면 합니다. 메일서버를 직접 다룰줄 알게 된다면, 웹사이트에서 메일서비스 제공을 통해 다른 어떤 사이트보다도 경쟁력을 갖추게 될 것 입니다.

앞으로, DOVECOT 설치 및 IMAP 설정 그리고 RoundCube를 통한 웹메일, 보안을 위해 이메일암호화 및 최종결론을 도출하려 합니다. 4개의 포스트가 더 남은 셈이지요.

오늘은 DOVECOT에 대해 포스팅합니다.

바로 설치를 해봅니다.

Copy to Clipboard

설치가 끝났다면 Dovecot의 환경설정을 점검해 봅니다.
그냥 따라 하시면 됩니다. 모든 주석 파일은 없애시고 아래를 그대로 붙혀넣으시면 됩니다.

dovecot은 imap서비스를 지원하는데, imap에서 메일데이터베이스에 접근하려면 이전 포스트에서 작성한 것처럼 데이터베이스에 대한 정보 및 계정과 비밀번호를 아래와 같이 기입해주셔야 합니다.

Copy to Clipboard
Copy to Clipboard

그리고 또 다른 파일을 하나 더 수정합니다.

Copy to Clipboard
Copy to Clipboard

Dovecot은 환경설정 파일에서 손대야 할것이 좀 많은 편입니다.

아래의 파일들은 필요에 따라서 편집을 하셔야 합니다.

/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-ssl.conf
/etc/dovecot/conf.d/15-mailboxes.conf
/etc/dovecot/conf.d/20-imap.conf
/etc/dovecot/conf.d/90-quota.conf

차례 차례 들러 보겠습니다.

저는 pop3는 쓰지 않고 imap만 씁니다. 예전처럼 서버의 디스크용량이 문제가 되전 시절이 아니기에 요즘은 pop3는 잘 쓰지 않을것으로 압니다.

헌데, 저는 imap을 쓰지 않고 imaps를 씁니다. imap서비스를 보안을 위해 암호화된 상태에서 서비스 한다는 말이지요.
이를 위해서 10-master.conf 환경파일을 아래와 같이 바꿔주시면 됩니다.

Copy to Clipboard
Copy to Clipboard

dovecot은 imap과 pop서비스를 위함이지만, 기본적으로 메일저장서버를 위한 것으로 dovecot을 통해 메일 계정을 취급하고 실제 메일을 저장하는 것에 대해서도 dovecot에 알려줘야 합니다.
데이터베이스에 대한 것은 위에서처럼 10-master.conf에 알려줬으니, 메일저장경로에 대해서도 알려줍니다.

그러기 위해서 /etc/dovecot/conf.d/10-mail.conf 설정을 수정해 줍니다

Copy to Clipboard
Copy to Clipboard

보안 포트 993을 통해 암호화 통신을 하려면, 공개키와 개인키를 포함하는 인증서가 설치되어 있어야 합니다.
(우리가 아는 공인인증서가 바로 이것 입니다.)

다른 포스팅으로 Letsencrypt를 통해 인증서를 무료로 설치하는 방법을 알려드릴 계획이지만, 그것은 일단 나중에 하기로 하고 10-ssl.conf 파일을 대략적으로 둘러 보겠습니다.

10-ssl.conf 설정을 아래와 같이 한다면, 이메일클라이언트 프로그램에서 무난히 nas 메일서버와 보안 통신이 가능해 집니다. 메일서버에 접속해본 클라이언트들은 아래와 같으며 사용상 아무런 하자를 발견하지 못했습니다.(자주쓰는 메일 클라이언트 들이죠)

마이크로소프트
아웃룩
모질라 썬더버드
안드로이드 삼성 갤럭시 기본 메일앱
애플 아이폰 기본 메일앱
마이크로소프트 Windows10 기본메일앱

10-ssl.conf 파일을 둘러 보겠습니다.

Copy to Clipboard
Copy to Clipboard

나머지 설정파일들인

/etc/dovecot/conf.d/15-mailboxes.conf
/etc/dovecot/conf.d/20-imap.conf
/etc/dovecot/conf.d/90-quota.conf

은 굳이 기본값을 건드릴 필요는 없습니다. 하지만 그내용을 알아두면 좋습니다.

15-mailboxes.conf 는 사용자의 메일함에 대한 플래그를 수정할 수 있습니다.
기본적으로 메일은 파일시스템(하드디스크에)의 계정디렉토리 하단의 /cur 디렉토리 밑에 차례차례 저장됩니다.

하지만, 메일에 대해 플래그를 해놓지 않는다면, 보낸메일, 받은메일, 읽지 않은 메일, 정크메일, 휴지통에 버린 메일이 모두 섞여 있어 사용자의 메일 가독성이 극히 저하되게 됩니다.

그래서 보통 메일함은 받은메일/보낸메일/휴지통/정크메일 등으로 분류가 되어 있는데 이게 플래그 처리입니다.
15-mailboxes.conf 파일은 플래그에 대한 정의를 어떻게 내릴지 정할 수 있지만, 가급적 손대지 않는것을 추천드립니다. 이유는 메일함의 플래그에 대한 정의는 전세계적으로 완전 표준화되어 있지 않아서, 어떤 메일함은 정크메일이라고 할때 다른 곳은 스팸메일이라고 합니다.
둘다 같은 의미지만, 플래그를 다르게 처리 하다보니 정크메일, 스팸메일이 각각 생겨 뭐가 뭔지 엉망이 되기도 합니다.

궁금하시다면, 15-mailboxes.conf 설정파일을 직접 관찰해 보시는걸 추천합니다.

마지막으로 90-quota.conf 파일입니다.

메일서버관리자는 다수의 사용자를 위한 메일서버를 운용하다보면 쿼타 관리가 필요합니다.
기본적으로 서버 파일시스템의 용량은 무제한이 아니며, 특정 사용자가 모든 파일시스템의 용량을 차지하여 다른 사용자가 용량부족으로 메일을 사용하지 못하는 일은 없어야 할 것 입니다.

메일서버도 비용이 투입되는 시스템이므로 사용자에게 허용되어야 하는 쿼타(허용 용량)에 대한 관리가 필요합니다.

쿼타관리에 대해서는 저도 아직 완벽히 이해하지는 못했습니다만, 제 설정을 한번 둘러보시고 활용해 보시면 좋을것 같습니다.

Copy to Clipboard
Copy to Clipboard

각 설정에 대해 설명을 약간 곁들여 보겠습니다.

quota = maildir:User quota
이것은 사용자가 설정한 quota용량을 가져가라는 것 입니다. 이번 메일시리즈 포스팅을 잘따라오신 분은 눈치 채셨겠지만, 사용자가 설정한 Quota는 우리는 postfixadmin을 설치하면서 메일계정 데이터베이스에 쿼타 정보를 포함하고 있습니다.

quota_rule = *:storage=100M, 이것은 사용자의 quota를 100Mbyte로 제한한다는 말입니다. 우리는 postfixadmin을 통해 사용자 마다 다르게 Quota를 줄 수 있으므로 제 설정파일에서 본 문장은 주석 처리되어 있습니다.

quota_rule2 = Trash:storage=+100M
이놈은 휴지통을 포함하여 100Mbyte까지 quota를 추가 인정한다는 의미 입니다.

quota_rule3 = SPAM:ignore
이것은 스팸함은 메일용량으로 포함하지 않는다는 의미 입니다.

이제 Dovecot의 설정은 마친것 같습니다.

Copy to Clipboard

메일서버는 이렇게 서로 다른 프로그램 패키지들이 상호연동하여 작동하기 때문에 진행과정이 굉장히 까다롭게 느껴집니다.

다음 포스팅은 메일클라이언트를 통해 imap에 연결을 해보려 했는데, 지금까지 포스팅이 보안통신 imap기준이므로 일단 인증서를 먼저 설치해야할 것 같습니다.

따라서, 다음 포스팅은 Letsencrypt를 통해 인증서를 설치하는 것을 먼저 배운 후 메일서버 포스팅을 진행하겠습니다.