메일 서버 구축(PostfixAdmin 설정)
11441 단어 postfixpostfixadmin
검증 환경
Amazon EC2에 2014년 11월 구축
centos version 6.5 64bit
postfix-2.6.6
PHP 버전 5.3.3
Apache/2.2.15 (CentOS)
mysql Ver 14.14 Distrib 5.1.73
Postfixadmin 2.92
Postfix는 설치되었습니다.
SELINUX 비활성화
다음 구성 파일을 수정합니다.
/etc/selinux/config
# SELINUX=enforcing
SELINUX=disabled
다시 시작하고 SELINUX가 비활성화되어 있는지 확인합니다.
check
getenforce
> Disabled
Postfixadmin 설치
Postfixadmin이란?
Postfix와 연계하여 웹 화면에서 Virtual Domain 설정이나 이메일 주소 추가 등을 할 수 있는 툴입니다.
설정
시작하려면 Posfixadmin을 실행하기 위해 apache를 설치하고 서비스를 시작합니다. Postfixadmin은 PHP를 사용하기 위해 설치합니다.
yum install httpd php
service httpd start
chkconfig httpd on
웹에 액세스할 수 있도록 iptables를 중지합니다.
chkconfig iptables off
service iptables stop
chkconfig ip6tables off
service ip6tables stop
localhost에 액세스하여 확인합니다.
check
curl http://localhost
Postfixadmin을 다운로드하여 설치합니다.
wget http://nchc.dl.sourceforge.net/sourceforge/postfixadmin/postfixadmin-2.92.tar.gz
tar zxvf postfixadmin-2.92.tar.gz
mv postfixadmin-2.92 /var/www/html/postfixadmin
vi /etc/httpd/conf/httpd.conf
합니다./var/www/html 아래에서 PHP를 실행할 수 있도록 ExecCGI를 추가합니다./etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# ( 略 )
# for more information.
#
# Options Indexes FollowSymLinks
Options Indexes FollowSymLinks ExecCGI
http://localhost/postfixadmin/setup.php 로 이동합니다.
다음 오류 메시지에 따라 구성 파일을 수정합니다.
Please edit config.inc.php - change $CONF['configured'] to true after setting your database settings
cd /var/www/html/postfixadmin
cp config.inc.php config.inc.php.org
vi config.inc.php
이하 일부 변경 부분 주변만 발췌합니다.
/var/www/html/postfixadmin/config.inc.php
/*****************************************************************
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* You have to set $CONF['configured'] = true; before the
* application will run!
* Doing this implies you have changed this file as required.
* i.e. configuring database etc; specifying setup.php password etc.
*/
// $CONF['configured'] = false;
$CONF['configured'] = true;
// In order to setup Postfixadmin, you MUST specify a hashed password here.
// To create the hash, visit setup.php in a browser and type a password into the field,
// on submission it will be echoed out to you as a hashed value.
// $CONF['setup_password'] = 'changeme';
$CONF['setup_password'] = 'test!123';
// Language config
// Language files are located in './languages', change as required..
// $CONF['default_language'] = 'en';
$CONF['default_language'] = 'ja';
// Database Config
// mysql = MySQL 3.23 and 4.0, 4.1 or 5
// mysqli = MySQL 4.1+
// pgsql = PostgreSQL
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'test!123';
$CONF['database_name'] = 'postfix';
// Site Admin
// Define the Site Admin's email address below.
// ...
$CONF['admin_email'] = '[email protected]';
// Mailboxes
// If you want to store the mailboxes per domain set this to 'YES'.
// Examples:
// YES: /usr/local/virtual/domain.tld/[email protected]
// NO: /usr/local/virtual/[email protected]
$CONF['domain_path'] = 'YES';
// If you don't want to have the domain in your mailbox set this to 'NO'.
// Examples:
// YES: /usr/local/virtual/domain.tld/[email protected]
// NO: /usr/local/virtual/domain.tld/username
// Note: If $CONF['domain_path'] is set to NO, this setting will be forced to YES.
$CONF['domain_in_mailbox'] = 'NO';
// Default Domain Values
// Specify your default values below. Quota in MB.
$CONF['aliases'] = '100';
$CONF['mailboxes'] = '100';
$CONF['maxquota'] = '300';
// Quota
// When you want to enforce quota for your mailbox users set this to 'YES'.
$CONF['quota'] = 'YES';
기본 quota는 10MB와 POP로도 너무 적기 때문에 100MB에.
암호 관계에 대한 보충입니다. 기본적으로 DB는 암호화되어 저장됩니다. 또한 암호 정책이 설정되었습니다. 설정 변경으로 비밀번호 자동 생성 및 관리 화면에서 볼 수 있습니다.
/var/www/html/postfixadmin/config.inc.php
// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// md5 = md5 sum of the password
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
// mysql_encrypt = useful for PAM integration
// authlib = support for courier-authlib style passwords
// dovecot:CRYPT-METHOD = use dovecotpw -s 'CRYPT-METHOD'. Example: dovecot:CRAM-MD5
// (WARNING: don't use dovecot:* methods that include the username in the hash - you won't be able to login to PostfixAdmin in this case)
$CONF['encrypt'] = 'md5crypt';
// In what flavor should courier-authlib style passwords be encrypted?
// md5 = {md5} + base64 encoded md5 hash
// md5raw = {md5raw} + plain encoded md5 hash
// SHA = {SHA} + base64-encoded sha1 hash
// crypt = {crypt} + Standard UNIX DES-encrypted with 2-character salt
$CONF['authlib_default_flavor'] = 'md5raw';
// Password validation
$CONF['password_validation'] = array(
# '/regular expression/' => '$PALANG key (optional: + parameter)',
'/.{5}/' => 'password_too_short 5', # minimum length 5 characters
'/([a-zA-Z].*){3}/' => 'password_no_characters 3', # must contain at least 3 characters
'/([0-9].*){2}/' => 'password_no_digits 2', # must contain at least 2 digits
);
// Generate Password
// Generate a random password for a mailbox or admin and display it.
// If you want to automagically generate passwords set this to 'YES'.
$CONF['generate_password'] = 'NO';
// Show Password
// Always show password after adding a mailbox or admin.
// If you want to always see what password was set set this to 'YES'.
$CONF['show_password'] = 'NO';
EXECCGI에서 CGI 실행을 허용합시다.
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
# Options Indexes FollowSymLinks
Options Indexes FollowSymLinks ExecCGI
다시 http://localhost/postfixadmin/setup.php 로 이동합니다.
몇 가지 오류가 있다고 생각하므로 수정합니다.
Error Smarty template ...
템플릿 파일의 저장 위치를 쓸 수 있도록 액세스 권한을 변경합니다.
chmod 777 /var/www/html/postfixadmin/templates_c/
Error There is no database support ...
Mysql을 설치하고 시작합니다.
yum -y install mysql-server php-mysql
service mysqld start
chkconfig mysqld on
service httpd restart
Error: Can't connect to database
mysql에 로그인하여 Postfixadmin 데이터베이스와 사용자를 만듭니다. 사용자는 postfix 데이터베이스에 로컬 호스트에서만 권한을 부여하고 flush 문으로 액세스 권한 설정을 반영합니다.
mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
mysql> create database postfix;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'postfix'@'localhost' identified by 'test!123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on postfix.* to 'postfix' identified by 'test!123';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
Error: Depends on: multibyte string - NOT FOUND
Warning: Depends on: IMAP functions - NOT FOUND
php 모듈을 넣습니다.
yum -y install php-mbstring php-imap
service httpd restart
다시 액세스하면 데이터베이스와 테이블이 만들어집니다.
Everything seems fine... attempting to create/update database structure
Updating database:
- old version: 0; target version: 1685
mysql -u postfix -p
Enter password: test!123
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql> use postfix;
mysql> show tables;
+-----------------------+
| Tables_in_postfix |
+-----------------------+
| admin |
| alias |
| alias_domain |
| config |
| domain |
| domain_admins |
| fetchmail |
| log |
| mailbox |
| quota |
| quota2 |
| vacation |
| vacation_notification |
+-----------------------+
13 rows in set (0.00 sec)
Setup password 는 test!123
$CONF['setup_password']
에서 설정한 것입니다. 관리자는 포스트 마s r @ 에어 mpぇ. 이 m 암호는 여기 postfix! 123입니다.Setup password not specified correctly
If you want to use the password you entered as setup password, edit config.inc.php or config.local.php and set
$CONF['setup_password'] = > '2c2bdf2f6bab1166db15bee22b2a3d63:b2ed1ede7e2a64eb6af69d1e89bd25201ad8bad0';
와 나오므로
$CONF['setup_password']
를 수정합니다./var/www/html/postfixadmin/config.inc.php
// In order to setup Postfixadmin, you MUST specify a hashed password here.
// To create the hash, visit setup.php in a browser and type a password into the field,
// on submission it will be echoed out to you as a hashed value.
// $CONF['setup_password'] = 'changeme';
//$CONF['setup_password'] = 'test!123';
$CONF['setup_password'] = '2c2bdf2f6bab1166db15bee22b2a3d63:b2ed1ede7e2a64eb6af69d1e89bd25201ad8bad0';
http://hogehoge/postfixadmin/
에 접속해 로그인 할 수 있으면 성공입니다.
Reference
이 문제에 관하여(메일 서버 구축(PostfixAdmin 설정)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kobineko/items/b3850ce17495b7bbf329텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)