收藏 分销(赏)

postfix电子邮件服务器配置.docx

上传人:pc****0 文档编号:8900892 上传时间:2025-03-07 格式:DOCX 页数:53 大小:5.33MB 下载积分:10 金币
下载 相关 举报
postfix电子邮件服务器配置.docx_第1页
第1页 / 共53页
postfix电子邮件服务器配置.docx_第2页
第2页 / 共53页


点击查看更多>>
资源描述
postfix+dovecot+openwebmail安装设置 Postfix 实验名称: postfix电子邮件服务器配置 实验目的:实现postfix电子邮件服务器的基本环境配置,在些基础上提高postfix防垃圾邮件能力、防电子邮件包含病毒及保护postfix的安全措施(拒绝服务攻击);如何定期地去清理日志及利用工具查看日志,即是:postfix+dovecot+cyrus-sasl+openwebmail/squirrelmail+mailScanner+Antivirus+spamAssassin(解释:dovecot提供imap、pop3服务(在新版本的redhat linux 中dovecot代替了imap软件包);cyrus-sasl提供认证功能的;openwebmail/squirrelmail都是提供webmail服务,其中squirrelmail是redhat自带的,在第三张光盘;而openwebmail则是第三方软件;mailScanner好像是邮件扫描用的,主要与Antivirus(防病毒)结合;spamAssassin是用来处理垃圾邮件的,判断邮件是否为垃圾邮件) 实验内容: 1.设置服务器的IP地址为10.2.46.129/24,首先DNS为10.2.46.129,关闭防火墙(便于测试) 2. 安装dns服务器所需要的软件包:bind-utils(第一张光盘)、bind、bind-libs(第一张光盘)、bind-chroot(第二张光盘)、caching-nameserver(第四张光盘) 3. 配置dns服务器的主机记录、邮件记录及测试 4.安装postfix(第三张光盘)和postfix-pflogsumm(依赖于perl-Date-Calc→perl-Bit-Vector→perl-Carp-Clan)软件包---------所有包都在第二张光盘 5. dovecot及cyrus-sasl(Cyrus-sasl的功能就是实现密码验证机制)一般在系统安装时,都安装上去了 6.配置postfix的主配置文件main,cf及其它文件的配置,如:virtual、 access(访问文件)、master.cf(控制文件) 7. 安装openwebmail/squirrelmail、mailScanner、Antivirus、spamAssassin及它们相关的配置 8.在实验中遇到的问题时,如何解决,记录解决的方法,做好实验的总结 实验过程: 一、设置服务器的IP地址,关闭iptables及SE linux #service network restart #service iptables restart #ifconfig eth0 二、DNS配置 #vi named.conf #vi named.zones #vi 123.zone #vi 123.local ▼DNS测试: 先关闭防火墙、selinux,开启dns服务 #chkconfig --level 345 named on 三、postfix的基本配置及启用SMTP认证机制 1、设置服务器的主机名为 #vi /etc/sysconfig/network #reboot ------重启后主机名就是,可以用#hostname来查看 2、由于之前用过sendmail,所以在安装启动postfix时,停止sendmail服务,最好就是卸载sendmail。这里我停止sendmail服务 3、安装postfix-pflogsumm和postfix软件包,由于postfix-pflogsumm依赖于perl-Date-Calc→perl-Bit-Vector→perl-Carp-Clan,所以先安装这些软件包 ●安装好后在/etc/postfix/目录下,就有相应的配置文件了 主要文件: /etc/postfix/master.cf是控制文件 /etc/postfix/main.cf是主配置文件 /etc/postfix/virtual是虚拟域名文件 /etc/aliases是别名配置文件 /etc/access允许那些网段、区域邮件进行转发 4.编辑/etc/postfix/main.cf #vi /etc/postfix/main.cf 指定运行Postfix邮件系统的主机名称 指定Postfix邮件系统使用的域名 指定发件人所在的域名 注意:这里的$mydomain是一个变量,myorigin的值等于前面赋予 配置文件main.cf默认开启的,必须注释,否则inet_interfaces = all就不生效 指定Postfix邮件系统监视的网络接口 指定Postfix接收邮件时收件人的域名 注意:这里的mynetworks_style的值 class =>与伺服器位于同一级IP网路的主机都可以使用代转服务 subnet =>所在网域的任一个IP都可以使用代转服务 host =>仅开放localhost为信任?可代转的主机 指定您所在的网络地址10.2.46.0/24 5.保存并退出,重启postfix服务,如果DNS服务器开启了,此时你就会发现在启动postfix服务时,很慢很慢,甚至启动失败;如果关闭DNS服务器,再启动postfix服务时,就可启动了。但是实验中要用到DNS域名解释。出现此问题的原因主要是:对于redhat的linux默认的mta是sendmail(之前用过sendmail电子邮件服务),所以要设置mta是postfix才行,就是使用alternatives –-config mta 然后选择postfix(当然你系统要已经安装了postfix)就可以使用postfix来作默认的mta了。 #chkconfig --level 345 postfix on 6.此时就可以发邮件了,但还不能收邮件;在新版本的linux里已经用dovecot代替了pop3、imap4,dovecot接收邮件软件包,包含了pop3 imap4等协议,所以还必须安装dovecot和启用dovecot服务,其中dovecot依赖于perl-DBI、mysql,有的还会提示libpq.so.4 is needed by dovecot-1.0-1.2.rc15.el5.i386;还需安装postgresql-libs。这里采用在安装系统时,就安装好的dovecot,#service dovecot restart域者#vi /etc/dovecot.conf #protocols = imap imaps pop3 pop3s前面的#去掉,再#service dovecot restart也可以。 #netstat -antl 7.安装好cyrus-sasl(Cyrus-sasl的功能就是实现密码验证机制)后,修改#vi /etc/sysconfig/saslauthd 通过shadow来认证登录用户 #service saslauthd restart 测试一下是否成功 #testsaslauthd -u root -p root用户密码 若看到0: OK "Success. ",那么启动密码验证机制就成功了 #saslauthd -v 可以查看saslauthd有支持哪些密码管理机制 8.开启smtpd认证机制 (1)SMTPd_sasl_auth_enable:设置是否要启动sasl认证的意思,如果设置,Postfix会主动去加载cyrus sasl的函数库,而该函数库会依据/usr/lib/sasl2/SMTPd.conf的设置来连接到正确的管理账号与密码的服务,即saslauthd。 (2)broken_sasl_auth_Clients:这是针对早期非正规MUA的设置项目,因为早期软件开发商在开发MUA时没有参考通信协议标准,所以造成在SMTP认证时可能会发生的一些困扰。例如MS的Outlook Express第4版就是这样,后来的版本应该没有这个问题。所以这个设置值您也可以不设置。 (3)SMTPd_sasl_security_options:要取消哪些登录方式的意思。可以取消匿名登录的可能性,所以设置为noanonymous即可。由于saslauthd使用的是plaintext,所以不能设置noplaintext,这里需要留意。 (4)smtpd_sasl_local_domain: 确认已经通过认证的网域 (5)SMTPd_recipient_restrictions:最重要的就是这个。sasl认证可以放在第二行,在局域网的可信任区域的后面加以认证。上述代码的设置意义是:局域网内的MUA不需要认证也能够进行Relay,而非局域网内的其他来源才需要进行SMTP认证。 ●smtp认证机制测试是否成功 可以用Outlook Express来测试,也可以用telnet 测试,方法:telnet命令可以连接到Postfix服务器的25号端口,也就是发信服务器端口,然后输入几个命令,就可以知道配置是否成功了。由于telnet用的明文的密码,而postfix的SMTP用户身份认证采用的不是明文方式,所以首先要计算出用户名和密码,通过perl命令就可以很快计算出来:用户名为lili、密码为123的等价模式 经过编码后的用户名bGlsaQ 经过编码后的密码为MTIz #telnet 25 同时也可以通printf “lili” |openssl base64和printf “123” |openssl base64计算出用户名和密码。如果在测试时,出现出现:{535 5.7.8 Error: authentication failed: another step is needed in authentication}表示输入的BASE64编码有问题 9.到此时配置的基本环境已经起来了,可以进行测试了 提示解释失败 解释方法:# vi /etc/resolv.conf #service network restart 10.新建两个用户分别是redhat和rongli,利用outlookup进行测试 同样方法,邮箱 rongli@ redhat@ 此时查看#tail /var/log/maillog,就可以看到用户redhat和rongli登录postfix服务器的信息了,如下: 测试收发信 查看/var/log/maillog 四、用tls加密SMTP会话 1.进入 目录/etc/pki/tls/certs,运行命令# openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509 2.此时就会在当前目录下生成smtpd.cert和smtpd.key文件,移动smtpd.key到/etc/pki/tls/private/目录下 3.编辑/etc/postfix/main.cf文件,加入下面的内容 smtpd_use_tls = yes 是启用tls加密smtp会话 smtpd_tls_cert_file = /etc/pki/tls/certs/smtp.cert TLS需要的ssl证书存放位置 smtpd_tls_key_file = /etc/pki/tls/private/smtpd.key TLS需要的ssl私钥存放位置 4.保存退出,并重新读取配置文件 5.测试 当出现(250 — STARTTLS )说明tls已经启用了 五、使用ssl加密的方法接收邮件 ◆pop3及IMAP4协议都是采用明文方式进行数据传输,不过可以通过SSL对其数据传输进行加密,在/etc/pki/tls/certs目录下输入以下命令生成密钥(dovecot.pem只是文件名可任意) 有空格 ◆此时生成的密钥及证书,就在当前目录下的dovecot.pem。密钥及证书都在dovecot.pem里面, cp /etc/pki/tls/certs/dovecot.pem /etc/pki/tls/private/dovecot.pem就可以了 #cat dovecot.pem ◆编辑/etc/dovecot.conf文件 ◆在dovecot配置完成后可以通过mutt命令对pop3/pops及imap/iamps进行测试。具体方法如下: 1、使用POP3方法验证Dovecot mutt -f pop://user@server[:port] mutt -f pops://user@server[:port] 输入命令可通过pop(如使用pops方式,将下图命令中pop改为pops即可)方式收取邮件,注意是接服务器名称。 mutt -f pops://redhat@ 按“o”同意, 按“o” 输入密码: ◆使用IMAP4方法验证Dovecot mutt -f imap://user@server[:port] mutt -f imaps://user@server[:port] 同样,输入命令可通过imap(如使用imaps方式,将下图命令中imap改为imaps即可)方式收取邮件,注意是接服务器名称。 mutt -f imaps://redhat@ 输入”o”同意开始通过imap连接服务器,测试也同上面的一样 Outlook Express测试 把用户的客户端软件outlook express的“工具”-----“帐户”-----“属性”-----“高级” 出现这样的情况,可能是证书没有授权的原因,因为证书是自己做的,证书不是由证书颁发机构颁发的,但还可以继续使用这个服务器。 六、以Web方式收发电子邮件 由于在sendmail配置时,用过了Openwebmail。所以想在postfix里使用一下SquirrelMai,Red Hat Enterprise Linux 5内置了Postfix的Web支持--SquirrelMail,但在默认情况下并没有安装。 1. 将Red Hat Enterprise Linux 5的第2、3张安装盘放入光驱,加载光驱后在光盘的Server目录下分别找到SquirrelMail的RPM安装包文件php-mbstring(第二张光盘) 和squirrelmail(第三张光盘),然后使用下面的命令安装。 2.配置squirrelmail SquirrelMail的主配置文件为/etc/squirrelmail/config.php。要配置SquirrelMail,可以直接修改该文件的内容,但是使用SquirrelMail的配置工具来配置更方便、更直观,配置工具是:/usr/share/squirrelmail/config/conf.pl #vi /etc/squirrelmail/config.php #/usr/share/squirrelmail/config/conf.pl ◆SquirrelMail的配置界面包括组织信息、服务器设置、目录设置、一般选项、界面主题、地址簿、插件、数据库、语言、设置IMAPservers、保存和退出等部分,这就要根据个人意向去设置了(主要的设置是在Server Settings) ▼配置SquirrelMail的imap服务器,输入D→dovecot→回车 ▼配置Squirrelmail的缺省语言,选择“10”→ “1”→zh_CN→回车,再选择“2” →“GB2312” →回车 ▼配置Squirrelmail的域名和smtp服务器,选择“2” →“1” →输入域名→回车→“3” →“2” →回车 ▼保存配置,选择主菜单s保存,配置将保存在 ▼创建squirremail别名 #vi /etc/httpd/conf.d/squirrelmail.conf添加如下内容(默认存在,无需设置) alias /webmail /usr/share/squirrelmail 启动apache服务,使squirrelmail别名生效 #service httpd start 3.测试:打开SquirrelMail的登录界面,如下 ◆用redhat用户登录后,记住账号是:redhat,而不是redhat@ ◆收发信测试:选择“撰写邮件”,还可以增加附件 ◆发信箱“Sent” ◆rongli用户登录 4.通过tls安全连接 #/usr/share/squirrelmail/config/conf.pl ,选择“2”→“A” →“7” →“y” →回车→“5” →“993” →“回车” →“B” →“8” →“y” →回车,之后保存退出 #service httpd restart ◆测试,不过可能连接过程有点慢 Tls连接 七、安装防范病毒软件 F-Prot Antivirus软件包安装和配置过程,可以通过迅雷下载F-Prot Antivirus软件包,下载地址:安装F-Prot Antivirus软件包前,请先启动SpamAssassin服务器,其中SpamAssassin(SA)是较为流行的反垃圾邮件软件,SpamAssassin利用Perl语言来对邮件内容进行规则匹配,从而达到判断过滤垃圾邮件的目的。它的判断方式是基于评分的方式,也就是说如果这封邮件符合某条规则,则给与一定分值;当累计的分值超过了一定限度时,则判定该邮件为垃圾邮件。对Sendmail、Qmail、Postfix和Exim等各种邮件平台都适用。SpamAssassin的安装过程比较简单。而在RHEL5.0 默认已经安装了,如果没有安装, spamassassin是(在第二张光盘) #service spamassassin start # rpm -ivh fp-linux-ws.rpm 出现上面的情况,并不是fp-linux-ws.rpm安装不成功,只是提示不能升级的F-Prot Antivirus病毒库而已,可以用#rpm –q fp-linux-ws查看有没有安装了。 若以后想对病毒库进行升级,可以输入如下命令进行升级 #cd /usr/local/f-prot/tools/ #./check-updates.pl 由于我这里不能上网,所以升级不了,可以设定时间对病毒库进行升级,假如在星期日的5:00定时对病毒库进行升级方法如下 #crontab -u root -e #crontab –l –u root --------可以查看 ★MailScanner软件包安装和配置过程 可以先到网上下载mailscanner软件包,之后进行解压安装,安装过程如下: #tar -zxvf MailScanner-4.80.4-1.rpm.tar.gz # cd MailScanner-4.80.4-1 如果不会安装,可以阅读# more README帮助文档 # ./install.sh (执行MailScanner软件的安装命令)安装过程如下: 安装过程时间比较长,大概要30分钟左右,可以使安装在后台进行#./install.sh & ★更改incoming、quarantine两个目录相关用户和组的使用权限 incoming quarantine ★修改/etc/MailScanner/目录下的MailScanner.conf文件 #vi /etc/MailScanner/MailScanner.conf ★修改/etc/postfix/目录下的header_checks文件,新增加以下一行内容到文件中,详细内容如下 #vi /etc/postfix/header_checks ★修改/etc/postfix/目录下的main.conf文件 ★停止Postfix服务器,因为启动MailScanner服务时会自动启动Postfix服务器 启动MailScanner服务器和设置开机时自动启动: ※病毒检测测试 添加附件:H:\portfix\email病毒\.txt ☆在发送后查看日志/var/log/maillog 我做的测试不成功,是不是没有上网更新病毒库,所以扫不出病毒来??? 八、自动监控Postfix邮件服务器 安装源代码软件包Time-HiRes-1.9721.tar.gz File-Tail-0.99.3.tar.gz rrdtool-1.2.15.tar.gz mailgraph-1.14.tar.gz #tar –zxvf Time-HiRes-1.9721.tar.gz #cd Time-HiRes-1.9721 #perl Makefile.PL #make #make test #make install #cd .. #tar –zxvf File-Tail-0.99.3.tar.gz #cd File-Tail-0.99.3 #perl Makefile.PL #make #make test #make install #cd .. #tar rrdtool-1.2.15.tar.gz #cd rrdtool-1.2.15 #./configure #make #make install # make site-perl-install #tar –zxvf mailgraph-1.14.tar.gz #cd mailgraph-1.14.tar.gz 修改配置文件/etc/init.d/mailgraph-init #service httpd restart #/etc/init.d/mailgraph-init start ◎在启动mailgrap-init时,会遇到上面的错误;解决方法:修改mailgraph.pl文件,保证RRDs.pm模块能包含进来。打开/usr/local/bin/mailgraph.pl文件,在第二行加上 use lib '/usr/local/rrdtool-1.2.15/lib/perl/'; 可以通过命令来查找RRDs.pm模块#find /usr -name “RRDs.pm” -print ◎再启动mailgraph-init就不会出现刚才的错误了 ◎可是在访问会出现错误 ◎而查看web日志时,#tail -f /var/log/httpd/error_log,还是出现上面的问题 ◎根据日志,可以看出Can’t locate RRDs.pm in @INC,而@INC是一个很多路径的集合,在这些路径里,都找不到这RRDs.pm,所以解决方法就做一个软件链接RRDs.pm,具体情况如下: ◎再测试,还会遇下面的问题,找不到RRDs模块,即是RRDs.so,找到RRDs.so,再做一个软链接 #service httpd restart ◎再测试,就可以了 ◎编辑/var/log/www/cgi-bin/ mailgraph.cgi #service httpd restart 在网上查看了一些资料,出现错误的还有一种情况,就是Can't locate File/Tail.pm in @INC,这时就要上网下载安装File:Tail,不过前面已经安装了,也可以这样安装 #cpan cpan> install Time::HiRes cpan> install File::Tail cpan> exit 或者 #perl -MCPAN -e shell cpan> install File::Tail) 九、自动向管理员发送日志分析文件 -参考<<linux服务器安全策略详解>> 安装postfix-pflogsumm软件包,如果没有安装,可以到第二张光盘里找到,也可以到网上找源代码。 Logrotate是系统自身带的一个日志轮循程序,它的执行程序所在的目录是/usr/sbin/logrotate ,是专门对各种系统日志; Red Hat Linux 缺省的crontab 来每天运行logrotate(syslogd,mail)进行轮循的程序  logrotate 的配置文件是 /etc/logrotate.conf。 主要参数: compress 通过gzip 压缩转储以后的日志 nocompress 不需要压缩时,用这个参数 copytruncate 用于还在打开中的日志文件,把当前日志并截断 nocopytruncate 备份日志文件但是不截断 create mode owner group 转储文件,使用指定的文件模式创建新的日志文件 nocreate 不建立新的日志文件 delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩 nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。 errors address 专储时的错误信息发送到指定的Email 地址 ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。 notifempty 如果是空文件的话,不转储 mail address 把转储的日志文件发送到指定的E-mail 地址 nomail 转储时不发送日志文件 olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 noolddir 转储后的日志文件和当前日志文件放在同一个目录下 prerotate/endscript. 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行 postrotate/endscript. 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 daily 指定转储周期为每天 weekly 指定转储周期为每周 monthly 指定转储周期为每月 rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份 tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem). ⊙修改/etc/logrotate.con配置文件,添加以下内容 ⊙修改配置文件/etc/logrotate.d/syslog ----去掉/var/log/maillog ⊙建立一个脚本/usr/local/sbin/postfix_report.sh,其中管理员的邮箱是postfix@ ⊙设置定时发送邮件给管理员 #crontab –e –u postfix ⊙这样用户每天的9点会自动收取日志文件到时管理员邮箱了 十、postfix电子邮件服务器的其他设置 这里所说的其他设置,就是上面没有提到的一些设置,例如:用户发信信件容量不能超过多少、用户邮箱容量限制(磁盘配额)、别名、虚拟域等等,都没有弄。一个电子邮件服务器要的涉及内容太多了 总结与体会:在这次实验中,遗憾的是防病毒测试没有成功,我做了很多的检查,最后还是不知是什么原因?在日志里又没有提示什么错误。我想应该是我没有mailScanner工作原理,很多设置参数都不太懂。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服