RHEL 4配置Postfix的完美4步


Postfix是Wietse Venema在IBM的GPL协议之下开发的MTA邮件传输代理)软件。在其应该在RHEL 4的过程中存在着很繁琐的一个过程,所以针对在RHEL 4配置Postfix的问题,在下面的文章中进行了详细的分析过程:

1.RHEL 4配置Postfix基本软件安装
安装RHEL 4 U2,使用默认安装,语系为简体中文。关闭SE Linux,配置网卡,使其能访问Internet。进入X window,开始->系统设置->添加/删除应用程序,安装上文中提及“系统自带”的软件,包括: 万维网服务器:mysql & php 相关的 邮件服务器:SquirrelMail perl-cyrus SQL 数据库:全部。 下载其它需要的软件。

2.RHEL 4配置PostfixAdmin、Mysql、Apache
◆[root@localhost tmp]# tar xzf postfixadmin-2.1.0.tgz 
◆[root@localhost tmp]# mv postfixadmin-2.1.0 /var/www/html/pa
◆[root@localhost tmp]# service mysqld start
◆[root@localhost tmp]# mysql -uroot < /var/www/html/pa/DATABASE_MYSQL.TXT 
◆[root@localhost tmp]# cp /var/www/html/pa/config.inc.php.sample  /var/www/html/pa/config.inc.php
◆[root@localhost tmp]# service httpd start

打开浏览器访问 http://localhost/pa,然后按提示增加两个虚拟域名d1.com 和 d2.com,增加两个虚拟用户[email]a@d1.com[/email],[email]b@d2.com[/email]。

设置Mysql和Apache自动启动
[root@localhost tmp]# chkconfig --level 35 mysqld on
[root@localhost tmp]# chkconfig --level 35 httpd on

3.RHEL 4配置Postfix编译、配置Postfix
先删除sendmail
◆[root@localhost tmp]# rpm –e sendmail –nodeps
◆[root@localhost tmp]# groupadd postfix
◆[root@localhost tmp]# groupadd postdrop
◆[root@localhost tmp]#useradd postfix -g postfix -c "Postfix user" -d /dev/null -s /sbin/nologin
◆[root@localhost tmp]# tar xzf postfix-2.2.7.tar.gz 
◆[root@localhost tmp]# cd postfix-2.2.7
◆[root@localhost postfix-2.2.7]# make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL-I/usr/include/mysql-DUSE_TLS-DUSE_SASL_AUTH-I/usr/include/sasl' '
AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib -lssl -lcrypto -lsasl2' 
◆[root@localhost postfix-2.2.7]# make
◆[root@localhost postfix-2.2.7]# make install
注:“make install”命令后的所有问题都直接敲回车键即可。

编辑/etc/postfix/main.cf 为以下内容

myhostname = mail.d1.com
mydomain = d1.com
myorigin = $mydomain
mydestination = $myhostname localhost localhost.$mydomain
mynetworks = 192.168.1.0/24 127.0.0.0/8
inet_interfaces = all
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:501
virtual_gid_maps = static:502
virtual_transport = virtual
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit = 1
message_size_limit = 14336000
virtual_mailbox_limit = 20971520
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_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
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,
reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination,permit
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_banner=$myhostname ESMTP "Version not Available"
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
html_directory = no
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /usr/local/man
daemon_directory = /usr/libexec/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix

编辑/etc/postfix/ mysql_virtual_alias_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address

编辑/etc/postfix/ mysql_virtual_domains_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain

编辑/etc/postfix/ mysql_virtual_mailbox_limit_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username

编辑/etc/postfix/ mysql_virtual_mailbox_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

4.RHEL 4配置Postfix要有SMTP 认证
编辑 /usr/lib/sasl2/smtpd.conf 为以下内容
pwcheck_method: authdaemond 
log_level: 3
mech_list: plain login
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket

安装Courier authentication library
[root@localhost tmp]# tar jxf courier-authlib-0.58.tar.bz2 
[root@localhost tmp]# cd courier-authlib-0.58
[root@localhost courier-authlib-0.58]# ./configure --prefix=/usr/local/courier-authlib --without-authpam --without-authldap --without-authpwd --without-authshadow --without-authvchkpw --without-authpgsql  --with-authmysql --with-mysql-libs=/usr/lib/mysql --with-mysql-includes=/usr/include/mysql --with-redhat  --with-authmysqlrc=/usr/local/courier-authlib/etc/authmysqlrc  --with-authdaemonrc=/usr/local/courier-authlib/etc/authdaemonrc CFLAGS="-march=i686 -O2 -fexpensive-optimizations" CXXFLAGS="-march=i686 -O2 -fexpensive-optimizations"
[root@localhost courier-authlib-0.58]# make
[root@localhost courier-authlib-0.58]# make install
[root@localhost courier-authlib-0.58]# chmod 755 /usr/local/courier-authlib/var/spool/authdaemon
[root@localhost courier-authlib-0.58]# cp /usr/local/courier-authlib/etc/authdaemonrc.dist /usr/local/courier-authlib/etc/authdaemonrc

修改/usr/local/courier-authlib/etc/authdaemonrc 文件
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10

编辑/usr/local/courier-authlib/etc/authmysqlrc 为以下内容,其中501,502 为postfix 用户的UID和GID。
◆MYSQL_SERVER         localhost
◆MYSQL_USERNAME       postfix
◆MYSQL_PASSWORD       postfix
◆MYSQL_SOCKET         /var/lib/mysql/mysql.sock
◆MYSQL_DATABASE       postfix
◆MYSQL_USER_TABLE     mailbox
◆MYSQL_CRYPT_PWFIELD   password
◆MYSQL_UID_FIELD       '501'
◆MYSQL_GID_FIELD       '502'
◆MYSQL_LOGIN_FIELD     username
◆MYSQL_HOME_FIELD     concat('/var/spool/mail/',maildir)
◆MYSQL_MAILDIR_FIELD   concat('/var/spool/mail/',maildir)
◆MYSQL_NAME_FIELD     name

# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
# chmod 755 /etc/init.d/courier-authlib
# chkconfig --add courier-authlib
# chkconfig --level 35 courier-authlib on

手动启动服务:
# service courier-authlib start
此时你已经拥有一台带验证的SMTP 服务器,用Outlook 、Foxmail测试一下吧,用户名采用[email]usename@domainName.com[/email] 形式。

Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性,所以RHEL 4配置Postfix是一个很重要的工作,在这里笔者对RHEL 4配置Postfix的过程用四个大部分进行了详细的描叙。

  1. RHEL5 上网配置局域网
  2. 简单讲述使用RHEL合法
  3. 设置ORACLE11g随RHEL5自动启动与关闭
  4. RHEL引导故障解决过程详解
  5. RHEL配置NIS网络信息服务实例(1)

相关内容

    暂无相关文章