RHEL 4配置Postfix的完美4步
Postfix是Wietse Venema在IBM的GPL協(xié)議之下開發(fā)的MTA(郵件傳輸代理)軟件。在其應(yīng)該在RHEL 4的過程中存在著很繁瑣的一個過程,所以針對在RHEL 4配置Postfix的問題,在下面的文章中進行了詳細(xì)的分析過程:
1.RHEL 4配置Postfix基本軟件安裝 
安裝RHEL 4 U2,使用默認(rèn)安裝,語系為簡體中文。關(guān)閉SE Linux,配置網(wǎng)卡,使其能訪問Internet。進入X window,開始->系統(tǒng)設(shè)置->添加/刪除應(yīng)用程序,安裝上文中提及“系統(tǒng)自帶”的軟件,包括: 萬維網(wǎng)服務(wù)器:mysql & php 相關(guān)的 郵件服務(wù)器:SquirrelMail perl-cyrus SQL 數(shù)據(jù)庫:全部。 下載其它需要的軟件。 
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]。
設(shè)置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 為以下內(nèi)容
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 為以下內(nèi)容 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = alias 
select_field = goto 
where_field = address 
編輯/etc/postfix/ mysql_virtual_domains_maps.cf 為以下內(nèi)容 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = domain 
select_field = description 
where_field = domain 
編輯/etc/postfix/ mysql_virtual_mailbox_limit_maps.cf 為以下內(nèi)容 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = mailbox 
select_field = quota 
where_field = username 
編輯/etc/postfix/ mysql_virtual_mailbox_maps.cf 為以下內(nèi)容 
user = postfix 
password = postfix 
hosts = localhost 
dbname = postfix 
table = mailbox 
select_field = maildir 
where_field = username 
4.RHEL 4配置Postfix要有SMTP 認(rèn)證 
編輯 /usr/lib/sasl2/smtpd.conf 為以下內(nèi)容 
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 為以下內(nèi)容,其中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 
手動啟動服務(wù): 
# service courier-authlib start 
此時你已經(jīng)擁有一臺帶驗證的SMTP 服務(wù)器,用Outlook 、Foxmail測試一下吧,用戶名采用[email]usename@domainName.com[/email] 形式。
Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性,所以RHEL 4配置Postfix是一個很重要的工作,在這里筆者對RHEL 4配置Postfix的過程用四個大部分進行了詳細(xì)的描敘。
【編輯推薦】















 
 
 
 
 
 
 