RHEL54 Postfix 邮件系统的安装.docx
《RHEL54 Postfix 邮件系统的安装.docx》由会员分享,可在线阅读,更多相关《RHEL54 Postfix 邮件系统的安装.docx(62页珍藏版)》请在冰豆网上搜索。
RHEL54Postfix邮件系统的安装
第一篇邮件系统简介
邮件系统组成部分:
MTAMSA,MUA,MDA,MAA
1MUA:
是MialUserAgent的简称,是邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接口,如:
linux中的Mail,Windowns中的Foxmail,Outlook等
2MSA:
是MailSubmmissionAgent的简称。
是邮件提交代理,负责消息有MTA发送之前必须完成所有准备工作和错误检测,MSA是在MUA和MTA之间插入了一个头脑清醒的检测员,对所有的主机名,从MUA得到的头信息等信息进行检测
3MTA:
是MailTransferAgent的简称,邮件转发代理,负责邮件的存储和转发;监视用户的代理请求,根据电子邮件的目标地址找出对应的电子邮件服务器,并将信件在服务器之间传输并且将接受到的邮件进行缓冲。
Linux下有sendmail.Postfix,qmail等
4MDA:
是MailDdliveryAgent的简称。
邮件投递代理,从MTA接受邮件并进行适当的本地投递,可以投递一个本地用户,一个邮件列表,一个文件或者是一个程序
5MAA:
是MailAccessAgent。
邮件访问代理,用于将用户连接到系统邮件库,使用POP或者Imap协议收取邮件。
Linux下常用的MAA有,Cyrus-IMAP,COURIER-IMAP等邮件中继,当邮件的目的传输是一旦源地址和目的地址都不是本地系统,那么本地系统就是邮件中继站(即是中转站)
6邮件交换过程如下图
第二篇Postfix的安装
邮件系统的逻辑结构
注:
配置postfix系统时需要在DNS服务器中配置邮件服务器MX记录
需要的软件包
mysql-5.5.4-m3.tar.gz
openssl-1.0.0b.tar.tar
pcre-8.10.zip
perl-5.12.2.tar.gz
php-5.2.14.tar.bz2
postfix-2.7.1.tar.gz
Unix-Syslog-1.1.tar.gz.gz
zlib-1.2.5.tar.gz
httpd-2.2.17.tar.gz.gz
extman-1.1.tar.gz
extmail-1.2.tar.gz
DBD-mysql-4.018.tar.gz.gz
db-4.8.26.tar.gz
cyrus-sasl-2.1.23.tar.gz
courier-imap-4.8.1.tar.bz2
courier-authlib-0.63.0.tar.bz2
courier-analog-0.16.tar.bz2
clamav-0.96.5.tar.gz
maildrop-2.5.2.tar.bz
Mail-SpamAssassin-3.3.1.tar.gz
GD-2.45.tar.gz.gz
第二.安装mysql
1添加mysql用户
#groupaddmysql
#useradd–gmysql–s/bin/false–Mmysql
2编译安装mysql
#tarxvfmysql-5.5.4-m3.tar.gz
#cdmysql-5.5.4-m3
#./configure
--prefix=/usr/local/mysql
--enable-thread-safe-client
--enable-local-infile
--with-charset=gbk
--with-extra-charset=all
--with-low-memory
#make&&makeinstall
#cpsupport-files/my-f/etc/f
#cd/usr/local/mysql
#chown–Rmysql.mysql.
#bin/mysql_install_db–user=mysql
#chown–Rroot.
#chown–Rmysqlvar
#bin/mysqld_safe--user=mysql&
#cd/root/postfix/mysql-5.5.4-m3
#cpsupport/mysql.server/etc/rc.d/init.d/mysqld
#chmod700/etc/rc.d/init.d/mysqld
3把mysql加入到自动启动队列
#chkconfig–addmysqld
#chkconfigmysqldon
4测试mysql
#/usr/local/mysql/bin/mysqladminping
mysqldisalive
#/usr/local/mysql/bin/mysqladminversion
#/usr/local/mysql/bin/mysql
5添加root用户的密码
#/usr/local/mysql/bin/mysqladmin–uroot–p“Oldpassword”password“newpassword”
注:
此时的mysql的root用户的密码为空
6配置mysql的库文件搜索路径
#echo“/usr/local/mysql/lib/mysql”>>/etc/ld.so.conf
#ldconfig–v
注:
一定要执行ldconfig–v不然当前不会去指定的mysql的库文件中查找mysql的库文件
7把/usr/local/mysql/bin添加到环境变量PATH中
#vim/etc/profile
exportPATH=$PATH:
/usr/local/mysql/bin
、并执行
#source/etc/profile
第三安装openssl,在解压安装openssl时一定要配置好当前的系统时间,否则,在解压是和安装时会报错
1安装openssl
#openssl-1.0.0b.tar.tar
#cdopenssl-1.0.0b
#./configuresharedzlib
#make
#maketest
#makeinstall
2删除系统中的openssl文件
#mv/usr/bin/openssl/usr/bin/openssl.OFF
#mv/usr/include/openssl/usr/include/openssl.OFF
#rm/usr/lib/libssl.so
3创建新编译的openssl文件
#ln-sv/usr/local/ssl/bin/openssl/usr/bin/openssl
#ln-sv/usr/local/ssl/include/openssl/usr/include/openssl
#ln–sv/usr/local/ssl/lib/libssl.so.1.0.0/usr/lib/libssl.so
4配置openssl库文件搜索路径
#echo“/usr/local/ssl/lib”/etc/ld.so.conf
#ldconfig–v
5检测openssl的版本
#opensslversion
OpenSSL1.0.0b16Nov2010
第四安装cyrus-sasl
1安装cyrus-sasl
#tarxvfcyrus-sasl-2.1.23.tar.gz
#cdcyrus-sasl-2.1.23
#./configure--prefix=/usr/local/sasl2(注意使用续行符)
--disable-gssapi
--disable-anon
--disable-sample
--disable-digest
--enable-plain
--enable-login
--enable-sql
--with-mysql=/usr/local/mysql
--with-mysql-includes=/usr/local/mysql/include/mysql--with-mysql-libs=/usr/local/mysql/lib/mysql--with-authdaemond=/usr/local/courier-authlib/var/spool/authdaemon/socket
#make
#makeinstall
2关闭系统自带的sasl
#mv/usr/lib/libsasl2.a/usr/lib/libsasl2.a.OFF
#mv/usr/lib/libsasl2.so.2.0.22/usr/lib/libsasl2.so.2.0.22.OFF
#mv/usr/lib/sasl2/usr/lib/sasl2.OFF
#rm/usr/lib/libsasl2.so
#rm/usr/lib/libsasl2.so.2
3重新创建新编译的sasl库文件
#ln–sv/usr/local/sasl2/lib/*/usr/lib
Postfix2.3以后的版本会分别在/usr/local/lib和/usr/local/include中搜索sasl的库文件及其头文件,因此需要将其连接至此
#ln–sv/usr/local/sasl2/lib/*/usr/local/lib
#ln–sv/usr/local/sasl2/include/sasl/*/usr/local/include
4创建运行时需要的目录并调试启动
#mkdir-pv/var/state/saslauthd
#/usr/local/sasl2/sbin/saslauthd-ashadowpam-d
5启动并测试
#/usr/local/sasl2/sbin/saslauthd–ashadowpam
#/usr/local/sasl2/sbin/testsaslauthd–uroot–proot用户密码
6添加配之文件搜索路径
#echo“/usr/local/sasl2/lib">>/etc/ld.so.conf
#echo"/usr/local/sasl2/lib/sasl2">>/etc/ld.so.conf
#ldconfig–v注:
一定要执行该命令,否则不会生效,除非是重启系统
7添加开机自动启动
#echo“/usr/local/sasl2/sbin/saslauthd-ashadowpam”>>/etc/rc.local
第五安装BerkeleyDB
1解压并安装
#tarxvfDBD-mysql-4.018.tar.gz.gz
#cdDBD-mysql-4.018/dist
#./configure--prefix=/usr/local/BerkeleyDB
#make
#makeinstall
2修改相应的头文件
#mv/usr/include/db4/usr/include/db4.OFF
#rm/usr/include/db_cxx.h
#rm/usr/include/db.h
#rm/usr/include/db_185.h
#ln-sv/usr/local/BerkeleyDB/include/usr/include/db4
#ln-sv/usr/local/BerkeleyDB/include/db.h/usr/include/db.h
#ln-sv/usr/local/BerkeleyDB/include/db_cxx.h/usr/include/db_cxx.h
3配置库文件搜索路径
#echo“/usr/local/BerkeleyDB/lib“>>/etc/ld.so.conf
#ldconfig–v
第六安装httpd
1安装httpd
#tarxfvhttpd-2.2.17.tar.gz.gz
#cdhttpd-2.2.17
#./configure
--prefix=/usr/local/apache
--enable-so
--enable-ssl
--with-ssl=/usr/local/ssl
--enable-track-vars
--enable-rewrite
--with-zlib
--enable-mods-shared=most
--enable-suexec(后面extmail切换”运行时用户”时要用到)
--with-suexec-caller=daemon
#make
#makeinstall
2配置开机启动
#echo“/usr/local/apache/bin/apachectlstart”>>/etc/rc.local
第七,安装php
1安装php-5.2.14.tar.bz2
#tarxvfphp-5.2.14.tar.bz2
#cdphp-5.2.14
#./configure--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql
-with-mysqli=/usr/local/mysql/bin/mysql_config
--with-libxml-dir
--with-png-dir
--with-jpeg-dir
--with-zlib
--with-freetype-dir
--with-gd-dir
--enable-mbstring=all
#make
#makeinstall
2配置php的配置文件
#cpphp.ini-dist/usr/local/php/lib/php.ini
3整合php和apahce,且apache支持php
#cd/usr/local/apache/conf
#vimhttpd.conf
并找到AddTypeapplication/x-compress.Z
AddTypeapplication/x-gzip.gz.tgz并在其后添加一下两行
AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php-source.phps
4找到DirectoryIndexindex.html
修改为:
DirectoryIndexindex.phpindex.html
5验证apache是否能够正常支持配php文件
在/usr/local/apache/htdocs中创建
#vimTest.php
Phpinfo();
?
>
6重启apache
#/usr/local/apache/bin/apachectlstop
#/usr/local/apache/bin/apachectlstart
7访问http:
//IP/Test.php能够正常显示php的版本号及其配置信息
8将网站根目录指定到/var/www:
找到DocumentRoot“/usr/local/apache/htdocs”
修改为:
DocumentRoot“/var/www”(后文中我们还会注释掉此行,以启用虚拟主机)
找到
修改为:
第八安装postfix
1创建postfix和postdrop用户
#groupadd–g2525postfix
#useradd–gpostfix–u2525–s/sbin/nologin–Mpostfix
#groupadd–g2526postdrop
#useradd–gpostdrop–u2526–s/bin/false–Mpostdrop
2安装postfix-2.7.1
#tarxvfpostfix-2.7.1.tar.gz
#cdpostfix-2.7.1
#makemakefiles'CCARGS=-DHAS_MYSQL-I/usr/local/mysql/include/mysql-DUSE_SASL_AUTH-DUSE_CYRUS_SASL-I/usr/local/sasl2/include/sasl-I/usr/local/BerkeleyDB/include-DUSE_TLS-I/usr/local/ssl/include/openssl''AUXLIBS=-L/usr/local/mysql/lib/mysql-lmysqlclient-lz-lm-L/usr/local/sasl2/lib-lsasl2-L/usr/local/BerkeleyDB/lib-L/usr/local/ssl/lib-lssl-lcrypto'
#make
#makeinstall
按照以下的提示输入相关的路径
daemon_directory:
[/usr/local/postfix/libexec]
data_directory:
[/usr/local/postfix/lib]
html_directory:
[/var/www/postfix_html]
mail_owner:
[postfix]
mailq_path:
[/usr/bin/mailq]
manpage_directory:
[/usr/local/postfix/man]
newaliases_path:
[/usr/bin/newaliases]
queue_directory:
[/var/spool/postfix]
readme_directory:
[no]
sendmail_path:
[/usr/sbin/sendmail]
setgid_group:
[postdrop]
3生成别名二进制文件,此步能够提高postfix的效率,如果不生成二进制文件。
Postfix的效率比较低下
#newaliases
4配置postfix,并启动,测试postfix并进行发言
#cd/etc/postfix/
#vimmain.cf
myhostname=
mydomain=
myorigin=
inet_interfaces=all
mydestination=$myhostname,localhost.$mydomain,localhost,$mydomain
mynetworks=192.168.18.0/24,127.0.0.0/8
说明:
myorigin参数用来指明发件人所在的域名;
mydestination参数指定postfix接收邮件时收件人的域名,即您的postfix系统要接收到哪个域名的邮件;
myhostname参数指定运行postfix邮件系统的主机的主机名,默认情况下,其值被设定为本地机器名;
mydomain参数指定您的域名,默认情况下,postfix将myhostname的第一部分删除而作为mydomain的值;
mynetworks参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问;
inet_interfaces参数指定postfix系统监听的网络接口;
当然在上面的myorigin=同时也可以用$mydomain来代替
在配置或者修改postfix配置文件是,必须重新启动postfix或者reload,配置才能生效,但是如果是修改inet_interfaces,则需要重新启动postfix
如果一个参数的值有多个,可以将它们放在不同的行中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本行视为上一行的延续
5启动postfix
#/usr/local/postfix/sbin/postfixstart
6连接postfix,并验证postfix是否正常启动
#telnetlocalhost25
Trying127.0.0.1...
Connectedtolocalhost.localdomain(127.0.0.1).
Escapecharacteris'^]'.
220ESMTPPostfix
ehlo
250-
250-PIPELINING
250-SIZE10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250DSN
mailfrom:
root@
2502.1.0Ok
rcptto:
RedHat@
2502.1.5Ok
data
354Enddatawith.
subject:
test!
test!
!
!
.2502.0.0Ok:
queuedasAB94A1A561
quit
2212.0.0Bye
Connectionclosedbyforeignhost.
7切换到redhat,查看是否收到email切换到redhat用户进行收信:
#su-redhat
$mail
Mailversion8.16/6/93.Type?
forhelp.
"/var/spool/mail/redhat":
1message1new
>N1root@WedSep822:
4016/566"test!
"
&
第九为postfix开启基于cyrus-sasl的认证
1确认postfix是否支持cyrus风格的sasl的认证,