Debian 邮件服务器安装手册

来源: ChinaUnix博客  日期: 2008.12.15 13:02 (共有0条评论) 我要评论

1.安装postfix
#apt-get install postfix postfix-doc postfix-tls postfix-mysql squirrelmail
2.安装sasl2
#apt-get install libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin
#vi /etc/default/saslauthd
修改
START=yes

#/etc/init.d/saslauthd restart
3.安装mysql
#apt-get install mysql-server-5.0
#mysql –uroot –p

mysql>create database postfix;
mysql> GRANT ALL PRIVILEGES ON postfix.* TO postfix@"localhost" IDENTIFIED BY 'postfix' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
4.安装apache2
#apt-get install apache2 libapache2-mod-php5
5.安装postfixadmin
#wget http://jaist.dl.sourceforge.net/sourceforge/postfixadmin/postfixadmin_2.2.0.tar.gz
#tar zxvf postfixadmin_2.2.0.tar.gz
#mv postfixadmin-2.2.0 /var/www/mailadmin
#cd /var/www/mailadmin
#vi config.inc.php
修改数据库连接
$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfix';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';
修改密码编码
$CONF['encrypt'] = 'cleartext';
登陆postfixadmin管理界面
http://xxx.xxx.xxx.xxx/mailadmin/

注意:xxx.xxx.xxx.xxx为所在服务器IP地址,或者使用解析的域名
点击setup之后加入管理帐户
比如:账号:[email protected]密码:123456
#cd /var/www/mailadmin/
#mv setup.php setup.php.bak
#vi config.inc.php
修改$CONF['configured']
$CONF['configured'] = ture;
浏览器登陆http://xxx.xxx.xxx.xxx/mailadmin/
就会出现登陆界面:就可以用[email protected]/123456登陆管理了,先添加一个域,再添加一个测试邮件,例如:
域:test.com
邮件:[email protected]/123456

6.配置postfix
6.1添加系统需求帐户
#useradd postfix
#useradd maildrop
6.2添加邮件主目录
#mkdir /home/mailbox
#chown –R 33.33 /home/mailbox

注:33是apache运行帐户
6.3编辑postfix主配置文件
#cd /etc/postfix
#vi main.cf
内容如下:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = test.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = test.com localhost.com , localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#=============sasl2====================#
smtpd_sasl_auth_enable = yes
smtpd_sasl_application_name = smtpd
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain =
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, check_relay_domains, reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtpd_client_restrictions = permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_sender_domain,reject_unknown_recipient_domain,permit_mynetworks,reject_unauth_destination,reject_rbl_client relays.ordb.org,reject_rbl_client list.dsbl.org,reject_rbl_client sbl.spamhaus.org,reject_rbl_client cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,permit

smtpd_data_restrictions =reject_unauth_pipelining,permit

#=================mysql================#
virtual_transport = virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_mailbox_domains.cf
virtual_mailbox_base = /home/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_mailbox_maps.cf
virtual_minimum_uid = 33
virtual_uid_maps = static:33
virtual_gid_maps = static:33
virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_alias_maps.cf
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost =
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +

创建虚拟配置文件:
#mkdir /etc/postfix/mysql
# vi /etc/postfix/mysql/mysql_mailbox_domains.cf
内容:
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and active='1'

# vi /etc/postfix/mysql/mysql_mailbox_maps.cf
内容:
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = and active='1'

# vi /etc/postfix/mysql/mysql_alias_maps.cf
内容:
hosts = 127.0.0.1
user = postfix
password = postfix
dbname = postfix
table = alias
select_field = goto
where_field = address
additional_conditions = and active='1'
6.4 配置smtpd
#vi /etc/postfix/sasl/smtpd.conf
内容:
pwcheck_method: auxprop
mech_list: plain login digest-md5 cram-md5
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfix
sql_passwd: postfix
sql_database: postfix
sql_select: SELECT password FROM mailbox WHERE username='%u@%r' and domain='%r'and active='1'
注意:只支持明码认证
重启postfix和sasl
#/etc/init.d/postfix reload
#/etc/init.d/saslauthd restart
至此smtpd邮件服务已经安装完毕,可以在客户端,比如outlook或foxmail进行测试了。
7.安装pop3
7.1 安装
#apt-get install courier-base courier-pop courier-imap courier-authdaemon courier-authlib-mysql
7.2配置
# vi /etc/courier/authdaemonrc
加入
authmodulelist="authmysql"
#vi /etc/courier/ authmysql
加入
MYSQL_SERVER 127.0.0.1
MYSQL_SOCKET /var/run/mysqld/mysqld.sock
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_LOGIN_FIELD username
MYSQL_CLEAR_PWFIELD password
#MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD '33'
MYSQL_GID_FIELD '33'
MYSQL_HOME_FIELD '/home/mailbox/'
MYSQL_MAILDIR_FIELD maildir
#MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(username,'@',-1),'/',SUBSTRING_INDEX
(username,'@',1),'/')
MYSQL_NAME_FIELD name
MYSQL_QUOTA_FIELD quota
MYSQL_WHERE_CLAUSE active='1'
重启服务
#/etc/init.d/courier-authdaemon restart
#/etc/init.d/courier-imap restart
#/etc/init.d/courier-pop restart

注意:MYSQL_CLEAR_PWFIELD password 用明文方式去抓mysql中的用户密码,和postfixadmin的config.inc.php中的设置一致

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/88527/showart_1721721.html