Complete Virtual Mail Server/Admin Support Systems/ko
관리 인터페이스
이 문서는 이 장에서 언급한 프로그램에 의존하지 않습니다. 설치하고 사용할 수 있지만, 멀쩡한 시스템이라면 이들 없이도 돌아가야 합니다. 하지만 예외가 있다면, www-apps/postfixadmin 꾸러미입니다. postfixadmin은 초기 테이블을 만들 때 사용하므로 예외로 두었습니다. 이유는 간단한데, postfixadmin은 데이터베이스를 관리할 때 사용할 수 있으며 테이블 배치에 전적으로 만족하지 않으면 잘못될 수 있습니다. 따라서 postfixadmin이 테이블을 만들도록 하고 그대로 쓰도록 하는게 낫습니다.
Apache, PHP, PostgreSQL
Apache, PHP, PostgreSQL은 확장 꾸러미입니다. Apache를 설치 방법을 찾아보려면 Apache 게시물을 보십시오. 이 설치에 관련있는 PHP 위키 페이지도 있습니다. PHP에서 모든 기능을 쓸 수 있어야 하며, 계속하기 전에 Apache가 동작해야합니다. 따라서 웹 메일과 통계 프리젠테이션을 사용하려면 이들 과정이 중요합니다.
설치 핵심 구성요소중 하나는 PostgreSQL입니다. 계속 진행하기 전에 PostgreSQL 기반을 설정하는 위키 게시글을 따라 쭉 읽어내려가십시오. 대신 MySQL 또는 LDAP도 있습니다.
PostgreSQL과 Apache(및 기타)은 여러가지 방식으로 연결할 수 있는데, 예를 들자면 네트워크를 통해서라거나 유닉스 소켓을 통한 방법이 있습니다. 유닉스 소켓은 매우 빠르고 더 안전하지만 다중(가상) 서버를 연결할 경우 TCP/IP 연결을 고려할지도 모릅니다.
유닉스 소켓을 사용한다면, 일반 파일 시스템 권한을 사용하므로 apache와 postfix를 postgres 그룹에 넣어주는게 중요하긴 합니다.
root #
gpasswd -a apache postgres
Postfixadmin
도입부에 이미 이야기했듯이, postfixadmin은 테이블을 만들 떄 사용합니다. 이 과정에서 postfixadmin은 메일 계정 등을 관리할 때 사용할 지를 확인하며, 테이블 형식을 이해할 것입니다.
끝내지 않았다면, www-apps/postfixadmin 꾸러미를 이머지해야합니다:
root #
emerge --ask postfixadmin
postfixadmin은 웹 프로그램이므로, localhost/postfixadmin에 postfixadmin을 설치할 때 webapp-config를 사용합니다. 외부 도메인을 선호하며 필요로 한다면, Apache를 적절하게 설정하여 https로만 접근할 수 있게 해야합니다.
root #
webapp-config -I -h localhost -d postfixadmin postfixadmin 2.3.4
Postfixadmin은 데이터를 저장할 데이터베이스와 이 데이터베이스에 접근할 사용자가 필요합니다. postfixadmin이 데이터베이스에 접근하도록 postfixadmin 사용자를 만들고 이 데이터베이스를 읽을 다른 사용자를 만들겠습니다. 이 방식대로라면, 관리 권한과 일반 읽기 권한은 논리적으로 나뉩니다.
root #
createuser -U postgres --pwprompt postfixadmin
Enter password for new role: $password Enter it again: $password
이 사용자의 데이터베이스가 필요합니다. postfixadmin이 소유합니다.
root #
createdb -U postgres --owner=postfixadmin postfix
다음, postfixadmin 설정 파일을 편집하여 다른 것 중 이 데이터베이스를 가리키도록 편집해야합니다.
Postfixadmin은 설정 파일에 해시 기반 암호가 필요하며 http://localhost/postfixadmin/setup.php를 방문하면 만들어집니다. 그러나 실제 암호를 가져오려면, 설정 파일을 이전에 미리 설정해야 합니다. 보통 적당히 편집한 후에 config.inc.php에서 암호 입력칸을 채워 끝낼 수 있습니다.
-$CONF['configured'] = false;
+$CONF['configured'] = true;
-$CONF['postfix_admin_url'] = '';
+$CONF['postfix_admin_url'] = 'http://localhost/postfixadmin';
-$CONF['database_type'] = 'mysql';
+$CONF['database_type'] = 'pgsql';
$CONF['database_host'] = 'localhost';
-$CONF['database_user'] = 'postfix';
-$CONF['database_password'] = 'postfixadmin';
+$CONF['database_user'] = 'postfixadmin';
+$CONF['database_password'] = '$password';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
-$CONF['admin_email'] = 'postmaster@change-this-to-your.domain.tld';
+$CONF['admin_email'] = 'postmaster@example.com';
- 'abuse' => 'abuse@change-this-to-your.domain.tld',
- 'hostmaster' => 'hostmaster@change-this-to-your.domain.tld',
- 'postmaster' => 'postmaster@change-this-to-your.domain.tld',
- 'webmaster' => 'webmaster@change-this-to-your.domain.tld'
+ 'abuse' => 'abuse@example.com',
+ 'hostmaster' => 'hostmaster@example.com',
+ 'postmaster' => 'postmaster@example.com',
+ 'webmaster' => 'webmaster@example.com'
-$CONF['domain_path'] = 'NO';
+$CONF['domain_path'] = 'YES';
-$CONF['domain_in_mailbox'] = 'YES';
+$CONF['domain_in_mailbox'] = 'NO';
-$CONF['transport'] = 'NO';
+$CONF['transport'] = 'YES';
-$CONF['vacation_domain'] = 'autoreply.change-this-to-your.domain.tld';
+$CONF['vacation_domain'] = 'autoreply.example.com';
-$CONF['user_footer_link'] = "http://change-this-to-your.domain.tld/main";
+$CONF['user_footer_link'] = "http://example.com/";
-$CONF['footer_text'] = 'Return to change-this-to-your.domain.tld';
-$CONF['footer_link'] = 'http://change-this-to-your.domain.tld';
+$CONF['footer_text'] = 'Return to http://example.com/';
+$CONF['footer_link'] = 'http://example.com/';
-// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
+$CONF['mailbox_postcreation_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
-// $CONF['mailbox_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
+$CONF['mailbox_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-mailbox-postdeletion.sh';
-// $CONF['domain_postdeletion_script']='sudo -u courier /usr/local/bin/postfixadmin-domain-postdeletion.sh';
+$CONF['domain_postdeletion_script']='sudo -u vmail /usr/local/bin/postfixadmin-domain-postdeletion.sh';
마지막 세가지 항목은 안해도 그만이지만, 메일함과 도메인을 추가하고 삭제할 수 있게 하십시오. postfixadmin에서 이 기능을 못하게 막는다면 건너뛸 수 있습니다. 그렇지 하지 않겠다면 여기 언급한 스크립트를 /usr/share/doc/postfixadmin-2.3.7/ADDITIONS으로 복사할 수 있습니다. 스크립트를 동작하게 하려면 sudo를 설치하고 설정해야합니다. 사용할 스크립트는 실행 가능하게(chmod +x) 해야 하며, 저장 공간 스크립트의 윗부분에 있는
basedir
과 trashbase
변수를 바꾸어야 합니다.
root #
visudo
apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-domain-postdeletion.sh apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postcreation.sh apache ALL=(vmail) NOPASSWD: /usr/local/bin/postfixadmin-mailbox-postdeletion.sh
postfixadmin이 필요한 테이블을 만들고 나면, http://localhost/postfixadmin/setup.php로 이동하여 절차를 따르십시오. 또한 어떤 설정 오류든 꾸러미 빠짐 문제든 이 단계에 나옵니다. 이 시점에서 암호 해시도 만들며 설정 파일을 수정할 수 있습니다. 이 과정이 끝난 후, 최고 관리 사용자를 이 페이지에서 데이터베이스에 추가할 수 있습니다. 관리 페이지로 접속하려면 http://localhost/postfixadmin/ 로 이동하십시오.
메일 시스템은 postfixadmin과 완전히 호환되도록 설정을 끝내야합니다. 사용자/도메인을 직접 추가하거나 postfixadmin GUI에서 추가하든지 해야 합니다. 그러나, 사용자 -> 도메인 의존성이 있음은 잊지 마십시오.
postfixadmin을 시스템에서 고려하지 않는다면 테이블을 만든 다음에 제거할 수 있습니다. 다른 선택지가 있다면 postfixadmin이 테이블을 다른 테스트 시스템에 만들게 한 다음에, 그 테이블을 내보내고 가져오는 방법이 있습니다.