금번 포스트는 Postfixadmin을 설치해 보겠습니다.
Postfixadmin은 메일서버를 시스템유저기반이 아닌 Virtual 기반일때 사용하기 좋은 프로그램입니다.
Virtual기반으로 메일서버를 운용하게 되면, 이메일 도메인 계정 및 사용자 메일계정은 MySQL에서 관리합니다. 다만, 이를 위해 시스템관리자가 일일히 도메인과 사용자 정보를 MySQL에 접속하여 관리해줘야 한다면, 여간 번거로운 일이 아닐 겁니다. 또한, 사용자가 자신의 메일계정에 대한 비밀번호를 변경시 스스로 하지 못하고 관리자에게 변경요청을 따로 해야 한다면, 번거로움을 떠나 1차적인 보안정보가 관리자라는 타인의 주체에게 노출이 된셈이니 옳바른 관리시스템은 아닐 것 입니다.
아래는 위에 설명한 Virtual 메일기반의 시스템의 관계를 간략히 요약해 본 것 입니다.
MySQL은 메일 도메인과 메일계정의 정보만 가지고 있습니다.
실제 메일은 하드디스크에 /home/vmail 디렉토리 밑으로 저장됩니다. Virtual 메일서버가 무엇인지 감을 잡으시라고 한번 만들어 봤습니다.
Postfixadmin이 관장하는 영역은 바로 MySQL 영역입니다. Postfixadmin을 통해 메일서버의 관리자는 손쉽게 도메인을 추가할 수 있고, 사용자 계정을 생성할 수 있으며, 사용자계정의 메일 용량관리도 가능합니다.
http://postfixadmin.sourceforge.net/ 이곳에 가서 직접 파일을 다운받아서 설치할 수 도 있지만, Ubuntu 리눅스는 역시나 기본 저장소에서 Postfixadmin에 넣어두고 있으므로, 간단히 설치를 해봅니다.
이해를 좀 더 돋구고자, 실제 설치화면을 곁들여 봅니다.
아 그런데, 문제가 발생했습니다. 패키지매니져가 갑자기 MySQL을 삭제합니다. Postfixadmin은 PostgreSQL을 사용을 유도하기 위함인지, 엄청 황당했습니다. 하지만, 조금도 당황하지 마시고, MySQL을 다시 설치하면 기존 데이터베이스가 삭제 되어있지 않고 고대로 보존되어 있으니 걱정하지 마십시오.
설치 중간에 GUI 화면이 나타납니다.
아래처럼 Postfixadmin이 관리할 도메인, 이메일 계정 등의 정보가 담길 데이터베이스를 선택해달라는 것이며, 그렇지 않으면 dbconfig-common이라는 것을 만들겠다는 것 입니다. 우리는 지난 강의의 마지막 부분에서 이미 MySQL에 ms_ubuntu라는 데이터베이스를 만들어 두었습니다.
잘 기억이 안나신다면, 지난 강의 링크
그러므로, “아니오”를 선택합니다.
지난 강의의 마지막 부분에서는 데이터베이스만 만든것이 아니라, 데이터베이스 계정 및 비밀번호를 만들어 두었으므로, 아래도 그냥 공란으로 두고 확인란을 누릅니다.
이로써, Postfixadmin의 설치는 끝났습니다. 이젠 환경설정을 맞춰줘야 합니다.
Postfixadmin의 접속하기 위해서는 브라우져에서 http://도메인명/postfixadmin 또는 http://localhost/postfixadmin 으로 연결합니다.
음…아래와 같이 에러가 나내요. 데이터베이스 타입을 pgsql을 써야 하는데, 다른것을 쓰고 있다고 컴플레인하내요. 우리는 MySQL에 데이터베이스를 만들었으니 당연한 결과입니다.(Postfixadmin의 개발자는 Postgre를 매우 사랑하나 봅니다.)
이경우, 아래와 같이 아래 설정파일의 내용을 수정합니다.
그리고 아래의 변수를 찾아내어 값을 아래와 같이 수정합니다.
다시 postfixadmin에 접속해 보면, 아래와 같이 모든 설정을 점검하고 문제가 없다면 OK를 표시해주고, 데이터베이스에 필요한 테이블을 알아서 만듭니다.
(기억하시겠지만, 지난 강의에서 우리는 데이터베이스만 만들어놨지 그안에 테이블을 만들지는 않았죠?)
아래와 같이 Super Admin을 만들어야 한다고합니다. 복잡하내요… Setup Password에 원하시는 아무 비밀번호를 넣어 봅니다.
내용을 잘보면, config.inc.php파일의 $CONF[‘setup_password’]의 값을 복잡한 암호로 바꾸라고 합니다.
이 암호는 실제는 당신이 Setup Password를 암호화해놓은 것입니다. 이 값을 복사해 둡니다.
다시 config.inc.php를 열어봅니다.
친절하게 자신을 바꾸라고 적혀 있습니다. 복사한 암호로 바꾸어 줍니다.
저장하고 닫은 다음 Postfixadmin에 다시 접속하시면, admin계정이 추가되었고 아까 적었던 셋업 비밀번호를 다시적으시고 admin 이메일계정과 비밀번호를 생성합니다.
이 과정이 끝나면, postfixadmin에 다시 접속하시어 Login 시도를 해봅니다.
로그인에 성공한 모습입니다.
naver2.com이라는 도메인을 만들어두고 Choi Donghyun이라는 사람의 메일 계정을 생성해 봅니다.
(메일의 도메인은 돈주고 사셔야 합니다…… 여기서는 그냥 보여주기 위한 예제입니다.) Quota는 500MB만 줘보죠.
마찬가지로 Kim Younghee사람의 계정도 만들어 봅니다. Quota는 300MB만 주겠습니다.
데이터베이스 상에 제대로 만들어 졌는지 MySQL에서 직접 확인해 본 결과 입니다.
MySQL에서 확인 결과, Postfixadmin이 다양한 테이블을 만들어 두었고, 등록한 메일계정도 문제 없이 잘 등록해주는 모습입니다.
Postfixadmin은 이렇듯 Virtual 기반의 메일서버에서 메일 도메인과 계정을 데이터베이스에 편리하게 인터페이스 시켜주는 좋은 프로그램입니다.
일단, 설치와 설정에 모두 성공하셨다면 원하는 도메인과 이메일 계정을 마음껏 생성할 수 있습니다.이를 통해 메일서버를 다수의 사용자를 위해 효과적으로 운용할 수 있을 것 입니다.
다만, Postfixadmin을 통한 메일서버 관리는 몇가지 문제가 있는데 그것은 아래와 같습니다.
- Postfixadmin은 데이터베이스에 이메일 도메인과 계정정보만을 담고 있기 때문에, Postfixadmin에서 사용자 계정을 삭제해도 하드디스크에 따로 저장된 사용자의 이메일까지 삭제하지는 않습니다.
- 그러므로, 홍길동@naver.com이라는 사용자 메일계정이 사용자의 탈퇴요청으로 Postfixadmin에서 삭제하였는데 실제 메일을 따로 삭제해주지 않으면, 나중에 동명이인인 또 다른 홍길동@naver.com의 계정이 생성되는 경우, 후자의 홍길동이 전자의 홍길동메일이 접근이 되는 보안사고 가능성이 있습니다.
- 그러므로, Postfixadmin을 통해 메일서버를 운용시 사용자의 가입과 탈퇴, 기존이메일의 처리에 대한 관리정책이 필요 합니다. 기업단위에서 운용한다면, 법적인 보호 장치도 마련되어야 겠지요?
메일서비스 회사들이 괜히 돈받고 서비스하는게 아니겠죠?
어쨋든, 본 강좌를 잘 따라오셨다면 여러분도 메일서버를 직접 운용하실 수 있습니다.
Postfixadmin과 관련하여 본 강의에서 빼먹은 내용은 Quota 설정입니다. Quota는 Dovecot을 설치하고 난후 작동이 됩니다. 따라서 이후에 진행하겠습니다.
다음 포스트는 Dovecot을 통해 IMAP서버를 구성하여, 스마트폰등 원격 디바이스에서 메일서버에 접근이 가능하도록 꾸며 보겠습니다.
postfixadmin을 설치하신 후 mysql을 다시 설치할때 데이터베이스가 남아있는 경우도 있고 사라지는 경우도 있더라구요.
그리고 사용자 권한 설정을 다시 해주셔야 하는것 같아요.
안그러면 테이블 쓰기 권한이 없다고 뜨네요 grant all on ms_ubuntu.* to ‘userid’@’localhost’ identified by ‘userpwd’;
저의 경우엔 template_c 파일에 쓰기 권한이 없다는 에러가 뜹니다.
sudo find / -name ‘templates_c’ 를 실행해보면 /usr/share/postfixadmin/위치에 templates_c 폴더가 있습니다.
이것의 권한을 조정해야합니다.
sudo chmod 777 /usr/share/postfixadmin/templates_c
굿대디님의 환경과 저랑 다른점이 있어서 발생한 차이점인지 모르겠습니다.
제 환경은 우분투 18.04 LTS AWS 에서 인스턴스 사용중입니다.
굿대디님 질문이 있습니다. mailbox를 생성하면 자동으로 /home/vmail/ 하위폴더에 그 계정으로 된 폴더가 생겨야 정상인가요? 저의 경우엔 안생기네요
그리고 계정생성시 계정이 mysql db에는 제대로 생성됬다고 메시지가 뜨는데 이메일을 보낼수 없다는 에러가 뜨네요…
어디서부터 잘못된것인지 잘 모르겠습니다…
/home/vmail 폴더의 권한설정을 777로 하였는데도 아무런 폴더는 생성되지 않네요
안녕하세요. June님 제 블로그에 다시 방문해주셔서 감사합니다.
/home/vmail/도메인주소/메일주소 순으로 디렉토리가 생성되는게 맞으나, Postfixadmin 패키지가 그것을 수행하는 것이 아니고 실제 메일함의 생성은 Dovecot 패키지가 수행합니다.
Postfixadmin은 메일도메인과 메일주소에 대한 계정관리만이 목적이며 메일 자체에 대해서는 관여하지 않습니다.
Dovecot에 대한 설명은 NAS 메일서버 5번 포스트에 설명하여 두었습니다.
안녕하세요. 메일서버 구축에 관하여 궁금한게 있어 댓글드립니다.
postfixadmin apt install로 설치 후 vi /etc/postfixadmin/config.inc.php에서 본문처럼 수정 후 postfixadmin페이지 들어가면
‘ invalid query table ‘postfixadmin.config’ doesn’t exist ‘ 이런 문구로 오류가 생깁니다.. 찾아봤지만.. 답을 찾지 못했습니다..
혹시 답변주실 수 있으신가요..!?
송사가 바뻐서 답변이 늦어 죄송합니다.
config.inc.php는 환경설정 파일입니다. 환경 설파일의 변수만 몇개 저장해놓고 아직은 데이터베이스를 만들지 않았으니 당연히 쿼리 오류라고 나올 것 입니다.
postfixadmin페이지로 바로 들어가지 마시고, postfixadmin이 연결된 도메인명뒤에 setup.php를 먼저 실행하셔서 데이터베이스를 생성시키는
트리거를 하셔야 합니다.
생각해보니 제가 설정 파일 이미지에는 해당내용을 내용을 넣어놨음에도 , 정작 글로는 설명이 부족했내요.