POSTFIX 2.2.10+VDA补丁+courier-authlib 0.58+cyrus-sasl 2.1.22+Courier-IMAP 4.1.1+maildrop 2.0.2+postfixadmin 2.1.0 安装记录_microsea
- Posted at May 31st, 2006 09:54
- Filed under 资讯火药库/LINUX/UNIX
2006年5月31日
经过几天的postfix安装研究,虽然还是没有完全透彻理解postfix的原理,但是从两次的安装过程了解了postfix邮件系统的的大概构成情况和结构,下面是两次安装过程的记录和整理,可能在第三,第四次安装后会更完善点.
本次文档参考的是:
1.CNGNU Postfix邮件系统系列指南之二 作者:王兴宇 版本:0.21 版权:GPL 发布日期:2004-02-04
http://www.cngnu.org/technology/Postfix_II.html
安装体会: 文档完整,内容详细,按照该文档安装顺利,比较容易搭建基本邮件系统,但是时间久远,postfix的数据库结构已经改变很多,文档中提供的IMP webmail设置复杂烦琐,中文支持不好.因此其他的webmail配合该postfix库结构困难.
2.张微波的笔记postfix + cyrus-sasl2 + courier-authlib + Courier-IMAP + postfixadmin 发布日期:May 07, 2006
http://blog.5ilinux.com/archives/2006/05/postfix_cyrussa.html
安装体会: 安装软件版本均为目前最新,安装方法准确,但是一些细节没有提到,需要自己揣摩.结合王兴宇文档基本上可以设定好postfix2.2.x系统的完整体系.
我将两者稍做整理,但是尚未进行第三次安装确认,自我感觉仍较粗糙.
===========================================================
1.首先安装courier-authlib
下载地址:
http://prdownloads.sourceforge.net/courier
安装时最新版本0.58
more..
安装之前添加postfix和maildrop相关的用户&用户组
groupadd postfix -g 1000
groupadd postdrop
useradd postfix -u 1000 -g postfix -G postdrop
groupadd vmail -g 1001
useradd vmail -u 1001 -g 1001
mkdir /home/mail
chown vmail:vmail /home/mail
chmod -R 775 /home/mail
./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --without-authuserdb --without-authpam --without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql --with-authdaemonvar=/var/spool/authdaemon --without-authcustom --with-authmysql --with-mysql-libs=/usr/lib --ith-mysql-includes=/usr/include/mysql --with-redhat --with-authmysqlrc=/usr/local/courier-authlib/etc/authmysqlrc --with-mailuser=vmail --with-mailgroup=vmail --with-authdaemonrc=/usr/local/courier-authlib/etc/authdaemonrc CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
make
make install
1.如果courier-authlib安装到非标准位置(例如安装到/usr/local下),一定记得在./configure时增加--without-stdheaderdir,这样以后在编译Courier-IMAP和maildrop的时候,不用特别指定courier-authlib的库文件位置
2.投递过程出现如下错误:
May 30 16:08:27 microsea-work postfix/pipe[25422]: D822E210104: to=<microsea@microsea-work.com>, relay=maildrop, delay=1248, status=deferred (temporary failure. Command output: ERR: authdaemon: s_connect() failed: Permission denied /usr/local/bin/maildrop: Temporary authentication failure. )
说明编译authlib时没有指定maildrop的用户和组,加上--with-mailuser和--with-mailgroup 指定用户和组后重编译安装.
增加"/usr/local/courier-authlib/lib/courier-authlib"到"/etc/ld.so.conf",并执行ldconfig命令。
vi /usr/local/courier-authlib/etc/authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=5
authdaemonvar=/var/spool/authdaemon
DEBUG_LOGIN=0
DEFAULTOPTIONS=""
LOGGEROPTS=""
vi /usr/local/courier-authlib/etc/authmysqlrc
MYSQL_SERVER 10.5.21.46
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_SOCKET /usr/local/mysql/data/mysql.sock
MYSQL_PORT 3306
MYSQL_OPT 0
MYSQL_DATABASE postfix
MYSQL_USER_TABLE mailbox
MYSQL_CRYPT_PWFIELD password
MYSQL_CLEAR_PWFIELD clear_password
MYSQL_UID_FIELD 1001
MYSQL_GID_FIELD 1001
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD '/home/mail'
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD quota
MYSQL_WHERE_CLAUSE active='1'
启动courier-authlib
/usr/local/courier-authlib/sbin/authdaemond start
2.安装 cyrus-sasl:
下载地址:
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
安装时最新版本2.1.22
删除以前的rpm包以及相关目录
rpm -e --nodeps cyrus-sasl-2.1.15 cyrus-sasl-plain-2.1.15 cyrus-sasl-md5-2.1.15 cyrus-sasl-devel-2.1.15
rm -rf /usr/lib/sasl
rm -rf /usr/lib/sasl2
./configure --prefix=/usr/local/cyrus-sasl --with-mysql=/usr/local/mysql --disable-sample --disable-saslauthd --isable-pwcheck --disable-cram --disable-digest --disable-krb4 --disable-gssapi --disable-anon --enable-plain --enable-login --enable-sql --disable-ntlm --disable-otp --disable-srp --disable-srp-setpass -with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket --with-mysql-includes=/usr/local/mysql/include/ --with-mysql-libs=/usr/local/mysql/lib/
make
make install
ln -s /usr/local/cyrus-sasl/lib/sasl2 /usr/lib/sasl2
添加以下两行:
/usr/local/cyrus-sasl/lib/sasl2
/usr/local/cyrus-sasl/lib
到"/etc/ld.so.conf",并执行ldconfig命令.
vi /usr/local/cyrus-sasl/lib/sasl2/smtpd.conf
pwcheck_method: authdaemond
log_level: 3
mech_list: PLAIN LOGIN
authdaemond_path:/var/spool/authdaemon/socket
注意,这个文件的编辑不要多写一个空格,否则会出现smtp验证不过的问题
3.安装postfix
下载地址:
http://www.postfix.org
下载VDA补丁,使postfix支持磁盘限额
http://web.onda.com.br/nadal/postfix/VDA/
目前postfix最新版本:2.2.10,VDA也要下载相应版本补丁.
tar xvzf postfix-2.2.10.tar.gz
gzip -d postfix-2.2.10-vda.patch.gz
mv postfix-2.2.10-vda.patch postfix-2.2.10
chkconfig --level 2345 sendmail off
安装postfix之前添加相关的用户&用户组
groupadd postfix -g 1000
groupadd postdrop
useradd postfix -u 1000 -g postfix -G postdrop
groupadd vmail -g 1001
useradd vmail -u 1001 -g 1001
mkdir /home/mail
chown vmail:vmail /home/mail
chmod -R 775 /home/mail
打补丁
patch -p1 < postfix-2.2.10-vda.patch
make tidy
make -f Makefile.init makefiles 'CCARGS=-DUSE_SASL_AUTH -DHAS_MYSQL -I/usr/local/mysql/include -I/usr/local/cyrus-sasl/include/sasl/' 'AUXLIBS=-L/usr/lib/mysql -L/usr/local/cyrus-sasl/lib/sasl2 -lmysqlclient -lsasl2 -lz -lm'
make
make install
mv /etc/aliases /etc/aliases.old
ln -s /etc/postfix/aliases /etc/aliases
echo 'root: >/etc/postfix/aliases">admin@microsea-work.com'>>/etc/postfix/aliases
/usr/bin/newaliases
touch /etc/postfix/mysql_virtual_alias_maps.cf
touch /etc/postfix/mysql_virtual_domains_maps.cf
touch /etc/postfix/mysql_virtual_mailbox_maps.cf
touch /etc/postfix/mysql_virtual_limit_maps.cf
mv /usr/bin/mailq /usr/bin/mailq.orig
mv /usr/sbin/sendmail /usr/sbin/sendmail.orig
mv /usr/bin/newaliases /usr/bin/newaliases.orig
mv /usr/bin/newaliases.postfix /usr/bin/newaliases
mv /usr/sbin/sendmail.postfix /usr/sbin/sendmail
mv /usr/bin/mailq.postfix /usr/bin/mailq
vi /etc/postfix/main.cf
myhostname = mail.microsea-work.com
mydomain = microsea-work.com
myorigin = $mydomain
mydestination =
alias_maps = hash:/etc/aliases
home_mailbox = Maildir/
#=====================MySQL=====================
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_base = /home/mail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 102400000
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 1001
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
virtual_transport = virtual
#"virtual_gid_maps"和"virtual_uid_maps"是postfix用户的gid和uid, "virtual_minimum_uid"应当≤"virtual_uid_maps",
"virtual_mailbox_limit"是每个邮箱的大小.
#=====================Quota=====================
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes
#virtual_trash_count=yes
#virtual_trash_name=.Trash
#====================SASL======================
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
#reject_rbl_client opm.blitzed.org,
#reject_rbl_client list.dsbl.org,
#reject_rbl_client bl.spamcop.net,
#reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
#=============================================
mail_owner = postfix
mailq_path = /usr/bin/mailq
manpage_directory = /usr/local/man
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
编辑cf配置文件
vi /etc/postfix/mysql_virtual_alias_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
additional_conditions = AND active = '1'
=================================
vi /etc/postfix/mysql_virtual_domains_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
additional_conditions = AND active = '1'
=================================
vi /etc/postfix/mysql_virtual_mailbox_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
additional_conditions = AND active = '1'
=================================
vi /etc/postfix/mysql_virtual_limit_maps.cf
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
additional_conditions = AND active = '1'
启动和停止postfix服务:
/usr/sbin/postfix start
/usr/sbin/postfix stop
发信过程可能会出现:
May 18 16:19:51 bb06 postfix/cleanup[5371]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
数据库连接失败造成,将/var/lib/mysql/mysql.sock link到你的mysql.sock文件即可.
4.编译安装安装Courier-IMAP
下载地址:
http://prdownloads.sourceforge.net/courier
目前最新版4.1.1
tar jvxf courier-imap-4.1.1.tar.bz2
./configure --prefix=/usr/local/courier-imap --with-redhat --enable-unicode --disable-root-check --with-trashquota --without-ipv6 CPPFLAGS='-I/usr/local/courier-authlib/include' COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'
CPPFLAGS='-I/usr/local/courier-authlib/include' 如果编译courier-authlib没有安装在默认路径,必须指定这个,如果之前编译courier-authlib加了--without-stdheaderdir,就不需要指定了.
没有加COURIERAUTHCONFIG='/usr/local/courier-authlib/bin/courierauthconfig'会出现:
checking for courierauthconfig... no
configure: WARNING: === Courier authentication library not found.
configure: WARNING: === You need to download and install
configure: WARNING: === http://www.courier-mta.org/download.php#authlib first.
configure: WARNING: === If courier-authlib is installed in a non-default
configure: WARNING: === directory, set the COURIERAUTHCONFIG environment
configure: WARNING: === variable to the full path to the courierauthconfig
configure: WARNING: === binary and rerun this configure script.
configure: WARNING:
configure: error: courierauthconfig not found
export COURIERAUTHCONFIG=/usr/local/courier-authlib/bin/courierauthconfig
再执行configure.
make
make install
cp /usr/local/courier-imap/etc/imapd.dist /usr/local/courier-imap/etc/imapd
cp /usr/local/courier-imap/etc/imapd-ssl.dist /usr/local/courier-imap/etc/imapd-ssl
cp /usr/local/courier-imap/etc/pop3d.dist /usr/local/courier-imap/etc/pop3d
cp /usr/local/courier-imap/etc/pop3d-ssl.dist /usr/local/courier-imap/etc/pop3d-ssl
配置Courier-IMAP,为用户提供pop3服务:
vi /usr/local/courier-imap/etc/pop3d
POP3DSTART=yes
vi /usr/local/courier-imap/etc/imapd
IMAPDSTART=YES
cp courier-imap.sysvinit /etc/rc.d/init.d/imapd
chmod 755 /etc/rc.d/init.d/imapd
chkconfig --add imapd
现在创建邮箱。
mkdir -p /home/mail
chown vmail.vmail /home/mail
su -s/bin/bash vmail
cd /home/mail
mkdir -p microsea-work.com/microsea
/usr/local/bin/maildirmake microsea-work.com/microsea/Maildir
5.安装maildrop
下载地址:http://internap.dl.sourceforge.net/sourceforge/courier/
目前最新版本:2.0.2
groupadd vmail -g 1001
useradd vmail -u 1001 -g 1001
tar jvxf maildrop-2.0.2.tar.bz2
ln -s /usr/local/courier-authlib/bin/courierauthconfig /usr/bin/courierauthconfig
./configure --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1001 --enable-maildrop-uid=1001 --with-trashquota --with-dirsync
make
make install
注意源码安装的,将courierauthconfig 命令链接到/usr/bin里,假设装在:
/usr/local/courier-authlib/bin/courierauthconfig,则:
ln -s /usr/local/courier-authlib/bin/courierauthconfig /usr/bin/courierauthconfig
这样编译出来的maildrop才会ourier Authentication Library extension enabled.
maildrop -v
maildrop 2.0.2 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
否则会出现:
May 19 09:19:14 bb06 postfix/pipe[8746]: 3707B298212: to=<root@bb06.com>, relay=maildrop, delay=0, status=bounced (user unknown. Command output: Invalid user specified. )
May 19 09:19:14 bb06 postfix/qmgr[6106]: 3707B298212: removed
说明maildrop没有编译支持ourier Authentication Library extension enabled.
6.编译安装postfixadmin
下载地址:
http://high5.net/postfixadmin/
目前最新版本是2.1.0
tar -zxvf postfixadmin-2.1.0.tgz
mv postfixadmin-2.1.0/ /home/httpd/html/postfixadmin
cd /home/httpd/html/postfixadmin/
INSTALL.TXT文件建议改文件属性:
$ cd /usr/local/www/postfixadmin
$ chmod 640 *.php *.css
$ cd /usr/local/www/postfixadmin/admin/
$ chmod 640 *.php .ht*
$ cd /usr/local/www/postfixadmin/images/
$ chmod 640 *.gif *.png
$ cd /usr/local/www/postfixadmin/languages/
$ chmod 640 *.lang
$ cd /usr/local/www/postfixadmin/templates/
$ chmod 640 *.tpl
$ cd /usr/local/www/postfixadmin/users/
$ chmod 640 *.php
设置完后无法打开网页,我再加上了read属性
chmod +r * -R
导入数据库
mysql -uroot -p < DATABASE_MYSQL.TXT
访问:
http://域名/postfixadmin/
有些地方设置要手工改,比如新增用户时,maildir字段没有提供自定义,而且根据系统设置默认添加的内容都不能用.
Posted by microsea
- Tag
- courier-authlib, cyrus-sasl, IMAP, maildrop, postfix, postfix 安装, postfixadmin
- Response
- No Trackback , 6 Comments
Trackback URL : 无法向此文章发送引用
Comments List
-
public fucking prag
2008/May/23-03:16
#
M/D
Reply
정보를 위한 감사합니다.
-
fix hot rhinestone
2008/May/23-03:47
#
M/D
Reply
너는 아름다운 웹사ì´íŠ¸ê°€ 있는다!
-
toplist girls
2008/May/23-04:17
#
M/D
Reply
걸출한 뉴스!! 종류 블로그!
-
upskirt down blouse
2008/May/23-04:49
#
M/D
Reply
그런 위치를 ê²½ì´ë¡ 위해 ë§Žê²Œì˜ ê°ì‚¬!
-
anime drawing japan
2008/May/23-04:57
#
M/D
Reply
유용한 정보. 좋은 디자인.
-
sex twin sisters
2008/May/23-06:21
#
M/D
Reply
아주 ì¢‹ì€ ë‚˜ëŠ” 위치 ê·¸ê²ƒì„ ê°ì‚¬ 좋아한다!
