금번 포스트는 Postfixadmin을 설치해 보겠습니다.

Postfixadmin은 메일서버를 시스템유저기반이 아닌 Virtual 기반일때 사용하기 좋은 프로그램입니다.

Virtual기반으로 메일서버를 운용하게 되면, 이메일 도메인 계정 및 사용자 메일계정은 MySQL에서 관리합니다. 다만, 이를 위해 시스템관리자가 일일히 도메인과 사용자 정보를 MySQL에 접속하여 관리해줘야 한다면, 여간 번거로운 일이 아닐 겁니다. 또한, 사용자가 자신의 메일계정에 대한 비밀번호를 변경시 스스로 하지 못하고 관리자에게 변경요청을 따로 해야 한다면, 번거로움을 떠나 1차적인 보안정보가 관리자라는 타인의 주체에게 노출이 된셈이니 옳바른 관리시스템은 아닐 것 입니다.

아래는 위에 설명한 Virtual 메일기반의 시스템의 관계를 간략히 요약해 본 것 입니다.

MySQL은 메일 도메인과 메일계정의 정보만 가지고 있습니다.
실제 메일은 하드디스크에 /home/vmail 디렉토리 밑으로 저장됩니다. Virtual 메일서버가 무엇인지 감을 잡으시라고 한번 만들어 봤습니다.

Postfixadmin이 관장하는 영역은 바로 MySQL 영역입니다. Postfixadmin을 통해 메일서버의 관리자는 손쉽게 도메인을 추가할 수 있고, 사용자 계정을 생성할 수 있으며, 사용자계정의 메일 용량관리도 가능합니다.

http://postfixadmin.sourceforge.net/ 이곳에 가서 직접 파일을 다운받아서 설치할 수 도 있지만, Ubuntu 리눅스는 역시나 기본 저장소에서 Postfixadmin에 넣어두고 있으므로, 간단히 설치를 해봅니다.

Copy to Clipboard

이해를 좀 더 돋구고자, 실제 설치화면을 곁들여 봅니다.

아 그런데, 문제가 발생했습니다. 패키지매니져가 갑자기 MySQL을 삭제합니다. Postfixadmin은 PostgreSQL을 사용을 유도하기 위함인지, 엄청 황당했습니다. 하지만, 조금도 당황하지 마시고, MySQL을 다시 설치하면 기존 데이터베이스가 삭제 되어있지 않고 고대로 보존되어 있으니 걱정하지 마십시오.

설치 중간에 GUI 화면이 나타납니다.

아래처럼 Postfixadmin이 관리할 도메인, 이메일 계정 등의 정보가 담길 데이터베이스를 선택해달라는 것이며, 그렇지 않으면 dbconfig-common이라는 것을 만들겠다는 것 입니다. 우리는 지난 강의의 마지막 부분에서 이미 MySQL에 ms_ubuntu라는 데이터베이스를 만들어 두었습니다.
잘 기억이 안나신다면, 지난 강의 링크
그러므로, “아니오”를 선택합니다.

지난 강의의 마지막 부분에서는 데이터베이스만 만든것이 아니라, 데이터베이스 계정 및 비밀번호를 만들어 두었으므로, 아래도 그냥 공란으로 두고 확인란을 누릅니다.

이로써, Postfixadmin의 설치는 끝났습니다. 이젠 환경설정을 맞춰줘야 합니다.

Postfixadmin의 접속하기 위해서는 브라우져에서 http://도메인명/postfixadmin  또는 http://localhost/postfixadmin 으로 연결합니다.

음…아래와 같이 에러가 나내요. 데이터베이스 타입을 pgsql을 써야 하는데, 다른것을 쓰고 있다고 컴플레인하내요. 우리는 MySQL에 데이터베이스를 만들었으니 당연한 결과입니다.(Postfixadmin의 개발자는 Postgre를 매우 사랑하나 봅니다.)

이경우, 아래와 같이 아래 설정파일의 내용을 수정합니다.

Copy to Clipboard

그리고 아래의 변수를 찾아내어 값을 아래와 같이 수정합니다.

Copy to Clipboard

다시 postfixadmin에 접속해 보면, 아래와 같이 모든 설정을 점검하고 문제가 없다면 OK를 표시해주고, 데이터베이스에 필요한 테이블을 알아서 만듭니다.

(기억하시겠지만, 지난 강의에서 우리는 데이터베이스만 만들어놨지 그안에 테이블을 만들지는 않았죠?)

아래와 같이 Super Admin을 만들어야 한다고합니다. 복잡하내요… Setup Password에 원하시는 아무 비밀번호를 넣어 봅니다.

내용을 잘보면, config.inc.php파일의 $CONF[‘setup_password’]의 값을 복잡한 암호로 바꾸라고 합니다.

이 암호는 실제는 당신이 Setup Password를 암호화해놓은 것입니다. 이 값을 복사해 둡니다.

다시 config.inc.php를 열어봅니다.

Copy to Clipboard

친절하게 자신을 바꾸라고 적혀 있습니다. 복사한 암호로 바꾸어 줍니다.

저장하고 닫은 다음 Postfixadmin에 다시 접속하시면, admin계정이 추가되었고 아까 적었던 셋업 비밀번호를 다시적으시고 admin 이메일계정과 비밀번호를 생성합니다.

이 과정이 끝나면, postfixadmin에 다시 접속하시어 Login 시도를 해봅니다.

로그인에 성공한 모습입니다.

naver2.com이라는 도메인을 만들어두고 Choi Donghyun이라는 사람의 메일 계정을 생성해 봅니다.

(메일의 도메인은 돈주고 사셔야 합니다…… 여기서는 그냥 보여주기 위한 예제입니다.) Quota는 500MB만 줘보죠.

마찬가지로 Kim Younghee사람의 계정도 만들어 봅니다. Quota는 300MB만 주겠습니다.

데이터베이스 상에 제대로 만들어 졌는지 MySQL에서 직접 확인해 본 결과 입니다.

MySQL에서 확인 결과, Postfixadmin이 다양한 테이블을 만들어 두었고, 등록한 메일계정도 문제 없이 잘 등록해주는 모습입니다.

Postfixadmin은 이렇듯 Virtual 기반의 메일서버에서 메일 도메인과 계정을 데이터베이스에 편리하게 인터페이스 시켜주는 좋은 프로그램입니다.

일단, 설치와 설정에 모두 성공하셨다면 원하는 도메인과 이메일 계정을 마음껏 생성할 수 있습니다.이를 통해 메일서버를 다수의 사용자를 위해 효과적으로 운용할 수 있을 것 입니다.

다만, Postfixadmin을 통한 메일서버 관리는 몇가지 문제가 있는데 그것은 아래와 같습니다.

  1. Postfixadmin은 데이터베이스에 이메일 도메인과 계정정보만을 담고 있기 때문에, Postfixadmin에서 사용자 계정을 삭제해도 하드디스크에 따로 저장된 사용자의 이메일까지 삭제하지는 않습니다.
  2. 그러므로, 홍길동@naver.com이라는 사용자 메일계정이 사용자의 탈퇴요청으로 Postfixadmin에서 삭제하였는데 실제 메일을 따로 삭제해주지 않으면, 나중에 동명이인인 또 다른 홍길동@naver.com의 계정이 생성되는 경우, 후자의 홍길동이 전자의 홍길동메일이 접근이 되는 보안사고 가능성이 있습니다.
  3. 그러므로, Postfixadmin을 통해 메일서버를 운용시 사용자의 가입과 탈퇴, 기존이메일의 처리에 대한 관리정책이 필요 합니다. 기업단위에서 운용한다면, 법적인 보호 장치도 마련되어야 겠지요?

메일서비스 회사들이 괜히 돈받고 서비스하는게 아니겠죠?

어쨋든, 본 강좌를 잘 따라오셨다면 여러분도 메일서버를 직접 운용하실 수 있습니다.

Postfixadmin과 관련하여 본 강의에서 빼먹은 내용은 Quota 설정입니다. Quota는 Dovecot을 설치하고 난후 작동이 됩니다. 따라서 이후에 진행하겠습니다.

다음 포스트는 Dovecot을 통해 IMAP서버를 구성하여, 스마트폰등 원격 디바이스에서 메일서버에 접근이 가능하도록 꾸며 보겠습니다.