马哥linux高薪中级-POSTFIX邮件服务(四)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

安装配置httpd文件

由于extmail要进行本地邮件的投递操作,所以必须以邮件投递代理所认可的用户身份运行httpd服务器。本利中打开了httpd服务器的suexec功能,所以使用一下方法来实现虚拟主机运行身份的指定。

<VirtualHost *:8081>

    ServerName mail.dtedugongbing.com

    DocumentRoot /var/www/extsuite/extmail/html/

    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

    Alias /extmail /var/www/extsuite/extmail/html/

    CustomLog logs/mail.qupeiyin.net.log common

    suexecusergroup postfix postfix

</VirtualHost>

suexec:

默认情况下,运行httpd程序的用户会以相同的身份运行httpd的cgi功能,如果要实现两者的运行身份分离,就使用到了suexec参数。

也可以直接修改user、group两个全局控制用户权限的参数。

user postfix

Group postfix

listen 8081

修改CGI执行文件属主为postfix运行身份用户。

   chown -R postfix:postfix /var/www/extsuite/extmail/cgi/


通过WEB界面配置extmail。

登录邮箱管理后台,默认密码为extmail*123*

217356.tmp

后台界面:

124866.tmp

邮件加密传输SSL的运用

TCPDUMP

数据包抓包分析工具,常用的还有wireshark的tshark。

tcpdum语法:

tcpdump [optins] [protocol][direction][hosts][value][logical oprations][other expression]

反垃圾邮件工具:

内容过滤:

  APACHE:spanassassin,垃圾邮件分拣器,对英文支持比较好,中午支持并不太好。属于内容过滤器。

病毒邮件网关:

clamav:开源杀毒软件,通常作为病毒邮件服务器网关

邮件服务器呼叫器:

用于调用反垃圾工具及病毒网关等。

常见工具:amavisd-new(常用),mailscanner,mimedefang

RBL:实时黑名单列表,通常是付费的,是提供反垃圾邮件的一种方法。

补充知识:

使用maildrop替换postfix默认的邮件投递代理(MDA)virtual。

1、安装前先将courier-authlib的头文件、库文件、执行文件进行系统定位。并创建用于启动maildrop的用户及uid。

下面进入报错的解决方案:

extmail报错:

Can't locate CGI.pm in @INC (@INC contains: /var/www/extsuite/extmail/libs /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /var/www/extsuite/extmail/libs/Ext/CGI.pm line 20. BEGIN failed--compilation aborted at /var/www/extsuite/extmail/libs/Ext/CGI.pm line 20. Compilation failed in require at /var/www/extsuite/extmail/libs/Ext/App.pm line 23. BEGIN failed--compilation aborted at /var/www/extsuite/extmail/libs/Ext/App.pm line 23. Compilation failed in require at /var/www/extsuite/extmail/libs/Ext/App/Login.pm line 16. BEGIN failed--compilation aborted at /var/www/extsuite/extmail/libs/Ext/App/Login.pm line 16. Compilation failed in require at index.cgi line 20.

解决:yum install perl-CGI

报错: Can't locate /var/www/cgi-bin/extmail//lang//en_US in @INC (@INC contains: /var/www/extsuite/extmail/libs /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /var/www/extsuite/extmail/libs/Ext/Lang.pm line 65.

解决:没有主文件

[root@vm1 extmail]# cp webmail.cf.default webmail.cf 

[root@vm1 extmail]# pwd /var/www/extsuite/extmail

报错:

Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86.

解决方案:

没有这个包: Unix-Syslog-1.1.tar.gz

# perl Makefile.PL  

 

 

安装这个包的报错

Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1. BEGIN failed--compilation aborted at Makefile.PL line 1.

解决

yum install -y perl-ExtUtils-MakeMaker

# perl Makefile.PL # make install

报错

DBI connect('database=extmail;host=localhost;mysql_socket=/var/lib/mysql/mysql.sock','db_user',...) failed: Access denied for user 'db_user'@'localhost' (using password: YES) at /var/www/extsuite/extmail/libs/Ext/Auth/MySQL.pm line 45

解决:进入数据库失败,修改主配置文件。 SYS_MYSQL_USER = extmail SYS_MYSQL_PASS = extmail

 

报错 Can't chdir to /home/domains/extmail.org/postmaster/Maildir/, No such file or directory

解决:

 

SYS_MAILDIR_BASE = /home/vmail 

# mail support@extmail.org 发封邮件让它创建邮件目录

 extmail后台的配置

后台的操作 同样的操作

NameVirtualHost *:80 <VirtualHost *:80> ServerName mail.example.com DocumentRoot /path/to/your/document/root/ ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi Alias /extman /var/www/extsuite/extman/html SuexecUserGroup vuser vgroup </VirtualHost>

只需要下面2行插入,mail前台配置中 ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi Alias /extman /var/www/extsuite/extman/html

最终Apache写入的配置:

<VirtualHost *:80>

ServerName mail.extmail.org

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

Alias /extmail /var/www/extsuite/extmail/html

ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

Alias /extman /var/www/extsuite/extman/html

SuexecUserGroup vmail vmail

</VirtualHost>

 

/var/www/extsuite/extman chown vmail.vmail . -R

验证码

/var/www/extsuite/extman

cp webman.cf.default webman.cf

vim webman.cf SYS_CAPTCHA_ON = 1

SYS_CAPTCHA_LEN = 4

关于主页的显示:

vim /etc/rc.local

/var/www/extsuite/extman/daemon/cmdserver &

后台图形监控报错:

Can't locate RRDs.pm in @INC (@INC contains: /var/www/extsuite/extman/libs /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /var/www/extsuite/extman/libs/Ext/GraphLog.pm line 23. BEGIN failed--compilation aborted at /var/www/extsuite/extman/libs/Ext/GraphLog.pm line 23. Compilation failed in require at /var/www/extsuite/extman/libs/Ext/MgrApp/ViewLog.pm line 22. BEGIN failed--compilation aborted at /var/www/extsuite/extman/libs/Ext/MgrApp/ViewLog.pm line 22. Compilation failed in require at viewlog.cgi line 18.

解决方法: 下载软件包:rrdtool-perl-1.3.8-6.el6.x86_64.rpm yum localinstall rrdtool-perl-1.3.8-6.el6.x86_64.rpm

虽然显示出来监控目录,但是点击没反映:

# cp mailgraph_ext/ /usr/local/ -r 为什么要cp到/usr/local/下?

/usr/local/mailgraph_ext vim mailgraph-init会发现执行脚本的路经:BASEDIR=/usr/local/mailgraph_ext

# /usr/local/mailgraph_ext/mailgraph-init start

报错: Starting mail statistics grapher: mailgraph_ext Can't locate File/Tail.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/mailgraph_ext/mailgraph_ext.pl line 296. BEGIN failed--compilation aborted at /usr/local/mailgraph_ext/mailgraph_ext.pl line 296. Starting queue statistics grapher: qmonitor

下载包: File-Tail-0.99.3.tar.gz

tar -zxf File-Tail-0.99.3.tar.gz # cd File-Tail-0.99.3 # perl Makefile.PL

报错: File::Tail will be installed without debugging information. This information isn't usefull unless you intend to tinker with the code. To install with debugging enabled, use: perl Makefile.PL LOGIT Checking if your kit is complete... Looks good Warning: prerequisite Time::HiRes 1.12 not found. Writing Makefile for File::Tail

解决方法: # yum install perl-Time-HiRes -y # perl Makefile.PL # make install

# /usr/local/mailgraph_ext/mailgraph-init start

之后就会看到图形化监控。



本文转自 blackstome 51CTO博客,原文链接:http://blog.51cto.com/137783/1916986,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
25天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
42 5
linux系统服务二!
|
25天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
43 3
linux系统服务!!!
|
4月前
|
Linux
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
在Linux中,怎么把脚本添加到系统服务里,即用 service 来调用?
|
1月前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
149 3
|
1月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
74 3
|
2月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
26 2
|
2月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
79 0
|
3月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
441 3
|
3月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
4月前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?