NAS를 통해 메일서버를 구현을 시작해 봅니다.

시작에 앞서, 메일서버란 무엇이고 어떤 용도에 써야하는지 짚어 보고자 합니다.

메일서버가 있다면, 자신이 원하는 도메인을 활용하여 그룹메일을 활용하여 기업, 협동조합 및 여타의 단체와 같은 소속원들에게 이메일계정을 배부하여 소속감을 높이고, 조직의 정체성을 분명히 할 수 있습니다.

메일서버를 통한 그룹메일관리는 시중에 벌써 월 1~2만원에 서비스되고 있습니다. 계정이 늘어나면 늘어날 수 록 비용도 비례하겠죠.

우리는 Ubuntu 리눅스위에 이러한 메일서버를 NAS에 구현할 수 있습니다.

우리는 지금까지 NAS위에 서버측 서비스 프로그램을 많이 설치해봤습니다. Apache, OwnCloud, PLEX, vsftpd 등등, 아마도 패키지 설치명령어 몇줄 실행하고 설정파일 항목 다소 수정하면 큰 무리없이 설치부터 실행까지 진행이 가능했을 겁니다. 이것은 위에 서비스들의 설치가 세부적인 것들은 내부적으로 통합되어 모두 블랙박스 형태로 진행되어 세부적인 것들을 설치하려는 자가 굳이 자세히 알 필요가 없었기 때문 입니다.

만일, OwnCloud를 설치하는데 설치 위치와 php 버젼부터 신경을 써야하는 상황이라면, 초심자들은 OwnCloud 설치가 매우 어렵게 느껴지실 겁니다.

메일서버가 바로 약간 이런 케이스인데, 지금까지 포스팅했던 프로그램들 보다 설치 난이도가 매우 높습니다.

그 이유는 이메일서비스란 메일을 쓰고, 전송하고, 수신하고, 이것을 열람하고자 하는 클라이언트와 연결하는 등의 일련의 모든 프로세스들이 통합화된 서비스가 아닌 모두 독립적인 패키지에 의해 통제되고 관리되기 때문에 이전 프로그램들과 달리 패키지 명령어 한줄로 설치가 끝나지 않습니다.

그러므로 메일서버 운용시, 문제가 발생하면 이메일 서비스에 대한 전체적 메커니즘의 이해 없이는 도대체 어디서 무엇이 잘못되었는지 인지하기 어렵습니다.

괜히 시놀리지 같은 고가의 상용NAS를 사는게 아니겠죠? 자작 NAS는 이렇듯 좀 고통스러운 과정이 필요 합니다 !!!

먼저, 우리가 쓰는 이메일에 대해 전체적 메커니즘을 이해해 보고자 합니다.

먼저 그림으로 이해해 봅시다.

이메일은 크게 두가지로 형태로 서비스가 가능한데,

첫번째가 바로 웹메일입니다. 웹메일은 별도의 클라이언트 프로그램없이도 웹브라우져를 통해 사용자 인증을 거쳐 사용하는 이메일로 우리가 포털에서 흔히 무료로 사용하는 네이버 이메일, 다음메일, 지메일이 모두 여기에 해당 됩니다.

두번째가 IMAP/POP 프로토콜을 이용하여 별도의 클라이언트 측 프로그램 도구를 통해 메일에 접근하는 방법 입니다.

사실, 저 두가지 형태는 알고보면 다르지 않습니다.

이미 포털은 웹메일의 형태로 이메일서비스를 표면적으로 제공하고 있지만, IMAP/POP 프로토콜도 지원합니다. 사용자는 원하는 방식으로 자신의 이메일 계정에 접근할 수 있습니다.
그것이 왜그런고 하면, 웹메일도 결국은 내부적으로 MTA/MDA같은 이메일 처리방법을 따를 뿐, 다만 그 과정들이 웹메일서비스라는 블랙박스 형태로 존재하기 때문에 서로 달라보이는거 뿐이죠.

먼저 용어를 설명드리겠습니다.

Webmail : 위에 설명드렸습니다. 웹브라우져를 통해 사용자 인증을 거쳐 브라우져상에서 이메일 서비스를 사용하는 것을 말합니다.
MTA : SMTP 연결을 통해 원하는 수신인에게 발송하는 역할을 하는 서비스 입니다. MDA : MTA로 부터 받은 이메일을 목적 수신인에게 전달하는 역할을 수행하는 서비스 입니다. , 즉 MTA는 발신, MDA는 수신이다라고 생각하시면 됩니다.
IMAP/POP : 이메일 전송과 관련한 네트워크 계층인데, 제가 네트워크 전문가가 아니라서 간단하게..그냥 이메일 오고가는 특정 규칙의 인터넷 포트를 정한 규약 이라고 이해하면 될 것 같습니다.

이번 시리즈는 Ubuntu 리눅스에서 Postfix , dovecot, Roundcube를 통해 IMAP/POP서비스는 물론, 웹메일까지 이용가능한 메일서버를 구축해 보겠습니다.

먼저 준비사항입니다.

첫째, SMTP 통신을 위한 25번 포트가 ISP로 부터 개방되어 있어야 합니다. 25번 포트는 가정용 유동IP인 경우 막혀 있을 수 있습니다. 저는 항상 KT만 쓰고있고 25번포트가 막혔던 경험은 없습니다만, 사전에 외부에서 포트스캔 등으로 포트 개방여부를 확인해 보시기 바랍니다. KT의 경우 25번 포트가 개방되어 있지만, 네이버 같은 경우 몇몇 KT 유동IP 대역의 25번 포트발로 오는 메일에 대해서 방화벽단에서 원천적으로 차단해버리기도 합니다.
(다음이나 지메일의 경우 그냥 스팸처리 함으로 감) 이것은, 스팸메일이 하도 난립하여 포털들이 어쩔 수 없이 막는 것으로 꼭 자신의 자작 메일서버를 활용해야 겠다면 여유가 되신다면 고정IP 서비스를 받아 보시는것도 하나의 대안입니다. 저 같은 경우 현재 제가 쓰는 유동IP는 25번 포트에 대해 개방도 되어있고, 네이버 메일 송신도 문제가 없지만 현재 제가 쓰는 대역폭에서 누군가 해킹당해 스팸메일좀비가 됐다던가, 의미 있는 해킹사건이 발생한다면 제가 쓰는 IP대역도 언젠가 블록이 될지도 모르죠.

둘째, MySQL이 설치되어 있어야 합니다. 웹서버 포스팅에서 이미 MySQL을 설치했고 MySQL이 왜 필요한지 궁금하시면 한번 돌아보시기 바랍니다.
MySQL 설치 포스트 바로가기

셋째, 메일서버가 완성되면 실제 메일을 발송할 수 있고, 수신할 수 있는 현존하는 도메인을 소유하셔야 합니다. 도메인이 있어야 XX@XXX.XXX  형태의 이메일주소를 갖출 수 있습니다. 뭐 당연한 애기 입니다.

모두 준비가 되셨다면, 다음 포스트에서 MTA/MDA서비스인 Postfix를 설치해 보겠습니다.