收藏 分享(赏)

第六章 构建Postfix邮件服务器(二).ppt

上传人:hwpkd79526 文档编号:7898646 上传时间:2019-05-29 格式:PPT 页数:47 大小:2.66MB
下载 相关 举报
第六章 构建Postfix邮件服务器(二).ppt_第1页
第1页 / 共47页
第六章 构建Postfix邮件服务器(二).ppt_第2页
第2页 / 共47页
第六章 构建Postfix邮件服务器(二).ppt_第3页
第3页 / 共47页
第六章 构建Postfix邮件服务器(二).ppt_第4页
第4页 / 共47页
第六章 构建Postfix邮件服务器(二).ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、BENET3.0第二学期课程,第七章 构建Postfix邮件服务器(二), 理论部分,2,课程回顾,MTA、MUA、MDA分别表示什么意思? 常用的邮件服务器有哪些,各有什么特点/优点? postfix服务器的主要配置文件是什么? 如何启动postfix邮件服务系统? 一个完整的电子邮件系统包括哪些组成部分,使用了哪些应用层协议?,3,技能展示,会配置Postfix支持虚拟用户 会配置Extmail邮件用户界面 会配置Extman邮件管理平台 会为Postfix配置邮件地址过滤 会为Postfix配置反垃圾邮件及防病毒,4,本章结构,部署Extmail邮件使用界面,部署Extman Web管理

2、界面,构建Postfix邮件服务器(二),ExtMail邮件使用及管理平台,建立虚拟用户数据库,配置Postfix支持虚拟用户,修改postfix的配置,为虚拟用户设置SMTP发信认证,电子邮件过滤和防病毒,基于邮件地址的过滤,基于邮件内容的过滤,邮件内容过滤及防病毒测试,修改dovecot的配置,测试虚拟用户实现结果,5,虚拟用户配置案例,上一章已实现 Postfix支持系统用户 Dovecot支持系统用户Squirrelmai Webmail基于系统用户的SMTP认证,本章中将实现 Postfix支持虚拟用户 Dovecot支持虚拟用户Extmail Webmail Extman Web后

3、台管理基于虚拟用户的SMTP认证 邮件地址过滤 邮件内容过滤 邮件防毒,6,基于虚拟用户的邮件系统架构,1,2,3,4,7,配置虚拟用户支持 MySQL,新建虚拟用户数据库 通过MySQL存储虚拟邮件域、邮件用户的信息 方法1 参考第5章实验案例2的步骤手动创建 方法2 下载extman-0.2.5.tar.gz软件包 导入其中的SQL脚本文件:extmail.sql、init.sql,rootmail # tar zxvf extman-0.2.5.tar.gz rootmail # cd extman-0.2.5/docs rootmail docs# mysql -u root -p e

4、xtmail.sql rootmail docs# mysql -u root -p init.sql,8,配置虚拟用户支持 MySQL,extmail.sql 脚本进行的操作 创建 extmail 库,及该库中的一些表 创建用户 extmaillocalhost,密码为 extmail 创建用户 webmanlocalhost,密码为 extman init.sql脚本进行的操作 添加虚拟邮件域 extmail.org 的记录 创建用户 rootextmail.org,密码为 extmail*123* 创建用户 postmasterextmail.org,密码为 extmail,9,配置虚拟

5、用户支持 postfix,1. 修改 main.cf 文件,添加支持参数,rootmail # vi /etc/postfix/main.cf #mydestination = $mydomain, $myhostname virtual_mailbox_base = /mailbox virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_mailbox_

6、domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_uid_maps = static:1000 virtual_gid_maps = static:1000,虚拟邮箱的存储目录,映射的本地UID、GID号,别名、邮箱、邮件域的查询表位置,2. 建立虚拟用户映射表文件 复制 extman 软件包中docs子目录下的样例文件,rootmail # cd extman-0.2.5/docs rootmail docs# cp mysql_virtual_* /etc/postfix/,10,配置虚拟用户支持 SMTP

7、认证,实现原理 基于Cyrus SASL和courier-authlib程序实现,支持数据库认证,11,配置虚拟用户支持 SMTP认证,1. 编译安装 courier-authlib 软件 下载源码包 courier-authlib-0.60.2.tar.bz2官方站点:http:/www.courier-mta.org/ 解包、配置、编译及安装,rootmail courier-authlib-0.60.2# ./configure -prefix=/usr/local/courier-authlib -without-stdheaderdir -with-authmysql -with-m

8、ysql-libs=/usr/local/mysql/lib/mysql -with-mysql-includes=/usr/local/mysql/include/mysql rootmail courier-authlib-0.60.2# make & make install,安装配置文件authdaemonrc:主配置,设置使用的认证方式authmysqlrc:数据库配置,设置连接地址、查询方式等,rootmail courier-authlib-0.60.2# make install-configure,安装默认的配置文件,12,配置虚拟用户支持 SMTP认证,2. 修改主配置,a

9、uthdaemonrc文件 建议只保留 authmysql 认证方式,rootmail # cd /usr/local/courier-authlib/etc/authlib/ rootmail authlib# vi authdaemonrc authmodulelist=“authmysql“ authmodulelistorig=“authmysql“,13,配置虚拟用户支持 SMTP认证,3. 修改数据库配置,authmysqlrc文件,rootmail # cd /usr/local/courier-authlib/etc/authlib/ rootmail authlib# vi

10、authmysqlrc MYSQL_SERVER localhost MYSQL_USERNAME extmail MYSQL_PASSWORD extmail MYSQL_SOCKET /tmp/mysql.sock MYSQL_DATABASE extmail MYSQL_USER_TABLE mailbox MYSQL_HOME_FIELD concat(/mailbox/,homedir) MYSQL_MAILDIR_FIELD concat(/mailbox/,maildir),数据库管理账号/ 密码,合出用户宿主目录,合出用户邮箱目录,14,配置虚拟用户支持 SMTP认证,4. 其

11、他调整 修改smtpd.conf 配置文件改为通过 authdaemond 进行认证 调整socket目录权限,添加库文件搜索路径,rootmail # vi /etc/ld.so.conf /usr/local/courier-authlib/lib/courier-authlib rootmail # ldconfig,15,配置虚拟用户支持 SMTP认证,5. 启动 counrier-authlib 服务程序,rootmail # cd /usr/src/courier-authlib-0.60.2/ rootmail courier-authlib-0.60.2# cp courier

12、-authlib.sysvinit /etc/init.d/courier-authlib rootmail courier-authlib-0.60.2# chmod 755 /etc/init.d/courier-authlib rootmail courier-authlib-0.60.2# service courier-authlib start,复制脚本样例,16,配置虚拟用户支持 dovecot,1. 调整 dovecot.conf 配置文件,rootmail # vi /etc/dovecot.conf mail_location = maildir:/mailbox/%d/%

13、n/Maildir auth default mechanisms = plainpassdb sql args = /etc/dovecot-mysql.confuserdb sql args = /etc/dovecot-mysql.conf,修改邮箱存储 位置,用户名及密码查询在独立的配置文件中指定,17,配置虚拟用户支持 dovecot,2. 创建数据查询配置文件,rootmail # vi /etc/dovecot-mysql.conf driver = mysql connect = host=localhost dbname=extmail user=extmail passwo

14、rd=extmail default_pass_scheme = CRYPT password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = %u user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = %u,查询用户身份的语句,查询用户密码的语句,18,3. 建立邮箱目录,并调整权限,配置虚拟用户支持 dovecot,rootmail # mk

15、dir -p /mailbox/extmail.org/postmaster/Maildir/ rootmail Maildir# chown -R postfix:postfix /mailbox,4. 重新启动dovecot服务 kill pgrep vsftpd ; dovecot,19,配置虚拟用户支持,测试虚拟用户配置结果 使用 authtest 验证数据库查询 使用 telnet 进行认证登录 用于测试的邮箱账号用户:postmasterextmail.org ,密码:extmail,rootmail # cd /usr/local/courier-authlib/sbin/ ro

16、otmail # ./authtest -s login postmasterextmail.org extmail Authentication succeeded. Authenticated: postmasterextmail.org (uid 1000, gid 1000) Home Directory: /home/mail/extmail.org/postmaster Maildir: /home/mail/extmail.org/postmaster/Maildir/ Quota: (none) Encrypted Password: $1$phz1mRrj$3ok6Bjeao

17、JYWDBsEPZb5C0 Cleartext Password: extmail Options: (none),rootmail # printf “postmasterextmail.org“ | openssl base64 cG9zdG1hc3RlckBleHRtYWlsLm9yZw= rootmail # printf “extmail“ | openssl base64 ZXh0bWFpbA=,获得加密的认证字串,rootmail # telnet localhost 25 AUTH LOGIN 334 VXNlcm5hbWU6 cG9zdG1hc3RlckBleHRtYWlsL

18、m9yZw= 334 UGFzc3dvcmQ6 ZXh0bWFpbA= 235 2.0.0 Authentication successful QUIT 221 2.0.0 Bye,虚拟用户认证成功,20,小结,请思考: 虚拟用户映射表文件是从哪个软件包获得的? virtual_mailbox_base配置参数的作用是什么? 针对虚拟用户的SMTP认证应如何实现? 如何配置dovecot才能支持数据库查询?,21,Extmail和Extman概述,使用perl语言开发的中文Webmail系统 官方站点:http:/www.extmail.org extmail 套件提供从浏览器中登录、使用邮件

19、系统的Web操作界面 extman 套件 提供从浏览器中管理邮件系统的Web操作界面,22,部署Extmail邮件使用界面,1. 编译安装相关的perl依赖包 Unix-Syslog-1.1.tar.gz DBI-1.607.tar.gz DBD-mysql-4.011.tar.gz,rootmail # cd Unix-Syslog-1.1 rootmail Unix-Syslog-1.1# perl Makefile.PL rootmail Unix-Syslog-1.1# make & make install,perl模块安装示例,23,部署Extmail邮件使用界面,2. 安装 ex

20、tmail 程序套件 解包至Web服务的网页目录/usr/local/apache2/htdocs/extmail 将 cgi 目录的属主和属组改为postfix,rootmail # cd /usr/local/apache2/htdocs/extmail/ rootmail extmail# chown -R postfix:postfix cgi/,建立 webmail.cf 配置文件,24,部署Extmail邮件使用界面,3. 调整httpd.conf配置,并重载服务,rootmail # vi /usr/local/apache2/conf/httpd.conf NameVirtua

21、lHost 173.17.17.11ServerName DocumentRoot /usr/local/apache2/htdocs/extmail/html/ScriptAlias /extmail/cgi/ /usr/local/apache2/htdocs/extmail/cgi/Alias /extmail /usr/local/apache2/htdocs/extmail/html/SuexecUserGroup postfix postfixrootmail # /usr/local/apache2/bin/apachectl restart,25,部署Extmail邮件使用界面

22、,4. 登录并使用Extmail系统 在浏览器中访问 http:/ 邮箱账号:postmaster 密码:extmail,26,部署Extman Web管理界面,1. 编译安装相关的依赖包 GD-2.41.tar.gz File-Tail-0.99.3.tar.gz rrdtool-1.2.23-3.el5.i386.rpm rrdtool-perl-1.2.23-3.el5.i386.rpm,27,部署Extman Web管理界面,2. 安装 extman 程序套件 解包至Web服务的网页目录/usr/local/apache2/htdocs/extman 将 cgi 目录的属主和属组改为p

23、ostfixcd /usr/local/apache2/htdocs/extman/ chown -R postfix:postfix cgi/ 创建临时会话目录,rootmail htdocs# mkdir /tmp/extman rootmail htdocs# chown -R postfix:postfix /tmp/extman,建立 webman.cf 配置文件,28,部署Extman Web管理界面,3. 调整httpd.conf配置,并重载服务,rootmail htdocs# vi /usr/local/apache2/conf/httpd.conf ServerName D

24、ocumentRoot /usr/local/apache2/htdocs/extmail/html/ScriptAlias /extmail/cgi/ /usr/local/apache2/htdocs/extmail/cgi/Alias /extmail /usr/local/apache2/htdocs/extmail/html/ScriptAlias /extman/cgi/ /usr/local/apache2/htdocs/extman/cgi/Alias /extman /usr/local/apache2/htdocs/extman/html/SuexecUserGroup p

25、ostfix postfixrootmail # /usr/local/apache2/bin/apachectl restart,添加对应的别名设置,29,部署Extman Web管理界面,4. 启用 mailgraph_ext 图形日志插件 更直观的查看各种邮件日志信息,包括邮件投递成功/失败、邮件投递流量IMAP/POP3登陆、WebMail登陆事件、邮件队列消息 启用方法直接执行脚本程序 mailgraph-init、qmonitor-init可以为上述程序建立符号链接,以简化路径切换过程,rootmail # cd /usr/local/apache2/htdocs/extman/a

26、ddon/mailgraph_ext/ rootmail mailgraph_ext# mkdir /usr/local/mailgraph_ext/ rootmail mailgraph_ext# cp mailgraph_ext.pl qmonitor.pl /usr/local/mailgraph_ext/ rootmail mailgraph_ext# ./mailgraph-init start rootmail mailgraph_ext# ./qmonitor-init start,需要手动拷贝程序,30,登录并使用Extman,5. 登录并使用Extman系统 在浏览器中访问

27、http:/ 管理账号:rootextmail.org 密码:extmail*123*,31,基于邮件地址的过滤,根据客户端的主机名/地址过滤 smtpd_client_restrictions 根据HELO主机名地址过滤 smtpd_helo_required smtpd_helo_restrictions 根据发件人的地址过滤 smtpd_sender_login_maps smtpd_sender_restrictions 根据收件人的地址过滤 smtpd_recipient_restrictions,32,基于邮件地址的过滤,应用示例1:根据主机名/地址过滤 创建access文件 修改

28、 main.cf 文件,添加过滤设置,rootmail # vi /etc/postfix/access 192.168.4 REJECT 192.168.4.1 OK REJECT rootlocalhost # postmap /etc/postfix/access rootmail # vi /etc/postfix/main.cf smtpd_client_restrictions = check_client_access hash:/etc/postfix/access,转换出 access.db,33,基于邮件地址的过滤,应用示例2:根据HELO宣告的地址过滤 修改 main.

29、cf 文件,添加过滤设置,rootmail # vi /etc/postfix/main.cf smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_hostname,拒绝无效的主机名,34,基于邮件地址的过滤,应用示例3:根据发件人地址过滤 修改 main.cf 文件,添加过滤设置,rootmail # vi /etc/postfix/main.cf smtpd_sender_login_maps =mysql:/etc/postfix/mysql_virtual_sender_maps.cf,mysql:/et

30、c/postfix/mysql_virtual_alias_maps.cf smtpd_sender_restrictions =permit_mynetworks,reject_sender_login_mismatch, reject_non_fqdn_sender, reject_unknown_sender_domain, check_sender_access hash:/etc/postfix/sender_access,与登录地址不符时拒绝,拒绝无效的主机名,发件人过滤查询表,rootmail # vi /etc/postfix/sender_access REJECT mar

31、keting REJECT REJECT rootmail # postmap /etc/postfix/sender_access,35,基于邮件地址的过滤,应用示例4:根据收件人地址过滤 修改 main.cf 文件,添加过滤设置,rootmail # vi /etc/postfix/main.cf smtpd_recipient_restrictions =permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient, reject_unknown_re

32、cipient_domain,收件域未知或不存在时拒绝,拒绝非授权网络的收件地址,36,邮件内容过滤及防病毒,内容过滤及防病毒协作过程 Postfix、MailScanner、SpamAssassin、F-Prot,主要起调度作用,37,邮件内容过滤及防病毒,1. 安装MailScanner调度工具 下载 MailScanner-4.75.11-1.rpm.tar.gz 软件包官方站点:http:/www.mailscanner.info 解包后,执行目录中的 install.sh 脚本完成安装 修改配置文件 MailScanner.conf,rootmail # vi /etc/MailSc

33、anner/MailScanner.conf Run As User = postfix Run As Group = postfix Incoming Queue Dir = /var/spool/postfix/hold Outgoing Queue Dir = /var/spool/postfix/incoming MTA = postfix Required SpamAssassin Score = 7 High SpamAssassin Score = 10 Spam Actions = deliver header “X-Spam-Status: Yes“ High Scoring

34、 Spam Actions = delete forward spamextmail.org,高于7分的视为垃圾邮件 高于10分的视为高分垃圾邮件,如何处理高分垃圾邮件,38,邮件内容过滤及防病毒,2. 配置postfix支持调用MailScanner,rootmail # vi /etc/postfix/main.cf header_checks = regexp:/etc/postfix/header_checks,rootmail # vi /etc/postfix/header_checks /Received:/ HOLD rootmail # cd /var/spool/MailS

35、canner/ rootmail MailScanner# chown -R postfix.postfix incoming rootmail MailScanner# chown -R postfix.postfix quarantine rootmail MailScanner# service MailScanner start,3. 调整过滤队列目录,启动MailScanner服务,检查邮件头,39,邮件内容过滤及防病毒,4. 安装 SpamAssassin 过滤器 从RHEL5光盘中查找安装即可,包括存在依赖关系的相关perl软件包 启动 spamassassin 服务servic

36、e spamassassin start,40,邮件内容过滤及防病毒,5. 安装 F-Prot 病毒扫描工具 下载 fp-Linux-i686-ws.tar.gz 软件包官网地址:www.f- 解包释放至 /opt/ 目录 执行安装脚本 install-f-prot.pl 手动升级病毒库(需能访问Internet)/opt/f-prot/fpupdate,41,本章总结,部署Extmail邮件使用界面,部署Extman Web管理界面,构建Postfix邮件服务器(二),ExtMail邮件使用及管理平台,建立虚拟用户数据库,配置Postfix支持虚拟用户,修改postfix的配置,为虚拟用户设

37、置SMTP发信认证,电子邮件过滤和防病毒,基于邮件地址的过滤,基于邮件内容的过滤,邮件内容过滤及防病毒测试,修改dovecot的配置,测试虚拟用户实现结果,BENET3.0第二学期课程,第七章 构建Postfix邮件服务器(二), 上机部分,43,实验案例:构建Postfix高级邮件系统,需求描述 使用MySQL数据库存储虚拟邮件用户的帐号信息 配置使用ExtMail套件ExtMail,为普通用户提供Web邮件使用界面ExtMan,为管理员提供管理邮件域及用户的Web界面 添加虚拟邮件域、,并分别添加2个虚拟邮件用户:和 用户woo和nee能够互相发送、收取邮件 通过图形化的形式查看邮件日志信

38、息 使用MailScanner、Spamasassin和F-port协同提供反垃圾邮件和防病毒功能,44,实验案例:构建Postfix高级邮件系统,实现思路 任务1 首先编译安装MailScanner,以节省时间 配置Postfix邮件系统支持虚拟用户 安装配置Extmail和Extman程序套件 使用Extman管理界面:添加虚拟邮件域、添加虚拟邮件用户:、 使用Extmail邮件用户界面:分别以用户woo、nee登录,互相发送邮件进行测试成功发送邮件后,通过Extman管理平台查看图形日志信息,45,实验案例:构建Postfix高级邮件系统,学员练习,60分钟内完成,46,实验案例:构建Postfix高级邮件系统,实现思路 任务2 MailScanner安装完毕以后,配置安装Spamasassin和F-port软件,并参考教材进行简单测试,47,实验案例:构建Postfix高级邮件系统,学员练习,20分钟内完成,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报