暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

原创|NO.A.0020|网络服务|——|企业邮件部署|DNS|发送bind|接收dovecot|Unix-Syslog日志|

Java BBS 2021-04-02
188

一、邮件概述

  • 电子邮件服务器是处理邮件交换的软硬件设施的总称,包括电子邮件程序,电子邮箱等,为用户提供基于E-mail服务的电子邮件系统,人民通过访问服务器实现邮件的交换。


  • 常见的邮件服务器:

类型名称特点
服务器端Sendmail资格最古老运行稳定但安全性欠佳
Postfix采用模块化设计,在投递效率,稳定性,性能及安全性方面表现优秀,sendmail保持足够的兼容性
Qmail采用模块化设计,速度快,执行效率高,配置稍微复杂点
客户端Outlook都是用来收邮件的客户端
Foxmail
浏览器

二、邮件应用协议

  • SMTP简单邮件传输协议(发邮件)TCP 25端口,加密时使用TCP 465端口

  • POP3第三版邮局协议(收邮件)TCP 110端口,加密时使用TCP995端口

  • IMAP4第四版互联网邮件访问协议(收邮件)TCP 143端口,加密时使用TCP993端口

三、软件相关

// 软件名:Postfix
// 主目录:/etc/postfix
// 主配置文件:main.cf
myhostname:#邮件服务器主机名
mydomain:#邮件域
myorigin:#设置允许发信的用户的邮件域
mydestination:#设置允许收信的用户的邮件域
#官方地址:http://www.extmail.org/
#实例网站:http://mail.extmail.org/

四、企业级邮件服务

前提条件:要有一个DNS服务器,将准备的软件包导入虚拟机

——>发送方配置<——

1、DNS搭建

[root@server21 ~]# yum install -y bind
[root@server21 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #监听地址所有
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许所有
recursion yes;
#修改监听地址和访问控制为any
[root@server21 ~]# vim /etc/named.rfc1912.zones
zone "extmail.org" IN {
type master;
file "extmail.localhost";
allow-update { none; };
};
#使用extmail.org作为解析域,只保留正向解析即可
[root@server21 ~]# cp -a /var/named/named.localhost /var/named/extmail.localhost
[root@server21 ~]# vim /var/named/extmail.localhost
#修改数据文件,如下
$TTL 1D
@ IN SOA extmail.org. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.extmail.org.
MX 3 mail.extmail.org.
dns A 20.20.20.21
mail A 20.20.20.21
[root@server21 ~]# chkconfig named on
[root@server21 ~]# service named start #能启动起来说明没有问题
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
#安装nslookup
[root@server21 ~]# yum provides nslookup #查询nslookup在哪个套件里面
[root@server21 ~]# yum install bind-utils                 #安装成功
#若是解析不了,先关闭本机配置的dns解析文件
[root@server21 ~]# vim /etc/resolv.conf
#nameserver 114.114.114.114
#nameserver 8.8.8.8
[root@server21 ~]# nslookup mail.extmail.org
Server: 127.0.0.1
Address: 127.0.0.1#53


Name: mail.extmail.org
Address: 20.20.20.21

在另一台上使用nslookup测试dns是否能解析

2、安装gcc以及其他依赖软件

[root@server21 ~]# yum install -y gcc* mysql-server mysql httpd mailx
#启动MySQL(apache)并设置开机自启
[root@server21 ~]# chkconfig mysqld on
[root@server21 ~]# chkconfig httpd on
[root@server21 ~]# service mysqld start
[root@server21 ~]# service httpd start

3、将web页面放在apache的网页目录下

#将extmail.zip包上传到服务器中
[root@server21 ~]# mkdir -p /var/www/extsuite
#创建一个单独的目录
[root@server21 ~]# unzip extmail.zip
[root@server21 ~]# cd extmail
[root@server21 extmail]# tar -xf extmail-1.2.tar.gz -C /var/www/extsuite/
[root@server21 extmail]# tar -xf extman-1.1.tar.gz -C /var/www/extsuite/
#将extmail和extman解压到创建的目录中
[root@server21 extmail]# cd /var/www/extsuite
[root@server21 extsuite]# mv extmail-1.2 extmail
[root@server21 extsuite]# mv extman-1.1 extman
[root@server21 extsuite]# ll
drwxr-xr-x 9 500 500 4096 Feb 4 09:53 extmail
drwxr-xr-x 11 500 500 4096 Dec 24 2009 extman
[root@server21 extsuite]# chown -R root.root *
[root@server21 extsuite]# ll
drwxr-xr-x 9 root root 4096 Feb 4 09:53 extmail
drwxr-xr-x 11 root root 4096 Dec 24 2009 extman
#将两个解压后的目录去掉版本号,并修改文件归属

4、将成品数据库文件导入到MySQL中*(没设置密码,空密码登录)

[root@server21 extsuite]# cd /var/www/extsuite/
[root@server21 extsuite]# mysql < ./extman/docs/extmail.sql
[root@server21 extsuite]# vim ./extman/docs/init.sql
LOCK TABLES `manager` WRITE;
INSERT INTO `manager` VALUES ('root@extmail.org','123456','admin','root','Super User','my question','my answer','0','2007-02-14 15:10:04','2010-11-08',1); #将$1$BrT9qxfB$Ha81Mb5YVV6rNKNN5jmtj1修改为123456,其实是一个密码
UNLOCK TABLES;
#将此文件中该位置的密码修改为123456,切记先修改,再导入
[root@server21 extsuite]# mysql < ./extman/docs/init.sql

5、将邮件模板拷贝到邮件服务器的主目录下

[root@server21 extsuite]# cd /var/www/extsuite/extman/docs/
[root@server21 docs]# cp -a mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/

6、创建映射用户&修改配置文件

[root@server21~]# useradd -u 600 -s /sbin/nologin vmail
[root@server21 ~]# vim /etc/postfix/main.cf
inet_interfaces = all #将此选项取消注释
#inet_interfaces = localhost #将此选项注释掉
#在尾部添加下列内容                                       #大写G切换到最后
virtual_mailbox_base = /home/vmail
virtual_uid_maps = static:600
virtual_gid_maps = static:600
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

7、重启服务&发送邮件测试&查看结果


[root@server21 ~]# service postfix restart
[root@server21 ~]# chkconfig --list postfix #默认是开机自启的
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@server21 ~]# echo "hello" | mail -s test support@extmail.org #发送hello给support这个邮箱
[root@server21 ~]# cat /home/vmail/extmail.org/postmaster/Maildir/new/1612406352.V803I4412f5M82499.server21
Return-Path: <root@server21.localdomain>
X-Original-To: support@extmail.org
Delivered-To: postmaster@extmail.org
Received: by server21.localdomain (Postfix, from userid 0)
id 10930480A19; Thu, 4 Feb 2021 10:39:12 +0800 (CST)
Date: Thu, 04 Feb 2021 10:39:11 +0800
To: support@extmail.org
Subject: test #主题是test
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20210204023912.10930480A19@server21.localdomain>
From: root@server21.localdomain (root) #来自于哪个邮箱地址


hello #内容

——>接收方配置<——

1、安装dovecot相关软件

[root@server21 ~]# yum install -y dovecot dovecot-devel dovecot-mysql
[root@server21 ~]# chkconfig dovecot on
[root@server21 ~]# service dovecot start

2、配置dovecot能够去数据库里读数据

// 1、修改/etc/dovecot/conf.d/10-mail.conf
// 在配置文件中增加下列两行
[root@server21 ~]# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/home/vmail/%d/%n/Maildir        #定义dovecot查询邮件的位置(顶头写)            
first_valid_uid = 600
// 2、修改/etc/dovecot/conf.d/10-auth.conf
[root@server21 ~]# vim /etc/dovecot/conf.d/10-auth.conf
!include auth-system.conf.ext
!include auth-sql.conf.ext #取消调用数据库的记录注释
// 3、修改数据库连接配置文件(需要拷贝模板生成)
[root@server21 ~]# cp -a /usr/share/doc/dovecot-2.0.9/example-config/dovecot-sql.conf.ext /etc/dovecot/
[root@server21 ~]# vim /etc/dovecot/dovecot-sql.conf.ext #将下列内容加入配置文件即可
driver = mysql
#驱动类型
connect = host=localhost dbname=extmail user=extmail password=extmail
#连接数据库信息
default_pass_scheme = MD5
password_query = \
SELECT username, domain, password \
FROM mailbox WHERE username = '%u' AND domain = '%d'
#验证登录密码的查询命令
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
#查询虚拟用户对应的邮箱目录

3、重启dovecot验证是否能连接

// 安装Telnet客户端进行登录验证
[root@server21 ~]# service dovecot restart
[root@server21 ~]# yum install -y telnet
[root@server21 ~]# netstat -antp
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 2962/dovecot
[root@server21 ~]# telnet mail.extmail.org 110
Trying 20.20.20.21...
Connected to mail.extmail.org.
Escape character is '^]'.
+OK Dovecot ready. #登录成功;在此基础下执行命令
user postmaster@extmail.org #登录postmaster用户
+OK
pass extmail                                             #密码是extmail;若是可以连接数据库说明没有问题
+OK Logged in.
retr 1                                                   #查看第一封邮件
+OK 560 octets
Return-Path: <root@server21.localdomain>
X-Original-To: support@extmail.org
Delivered-To: postmaster@extmail.org
Received: by server21.localdomain (Postfix, from userid 0)
id 37705480A19; Thu, 4 Feb 2021 09:41:44 +0800 (CST)
Date: Thu, 04 Feb 2021 09:41:44 +0800
To: support@extmail.org
Subject: test
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20210204014144.37705480A19@server21.localdomain>
From: root@server21.localdomain (root)
hello
.
quit
+OK Logging out.                                        #登出
Connection closed by foreign host.

五、MAIL+WEB页面

1、修改/etc/httpd/conf/httpd.conf配置文件,能加载邮件web页面

[root@server21 ~]# vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
#取消注释,开启虚拟主机功能
# 添加以下内容
<VirtualHost *:80>
DocumentRoot /var/www/extsuite/extmail/html
ServerName mail.extmail.org
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>
[root@server21 ~]# httpd -t
Syntax OK
[root@server21 ~]# service httpd restart

2、extmail目录中更改cgi的属组属主,让vmail有权限执行

[root@server21 ~]# cd /var/www/extsuite/extmail/
[root@server21 extmail]# chown -R vmail.vmail cgi/
[root@server21 extmail]# cp -a webmail.cf.default webmail.cf
[root@server21 extmail]# vim webmail.cf
SYS_MAILDIR_BASE = /home/vmail #邮件存放目录
SYS_CRYPT_TYPE = plain #加密类型
SYS_MYSQL_USER = extmail #mysql用户名
SYS_MYSQL_PASS = extmail                                 #mysql密码

3、extman中更改cgi的属组属主,让vmail有权限执行

[root@server21 extmail]# cd /var/www/extsuite/extman
[root@server21 extman]# chown -R vmail.vmail cgi/
[root@server21 extman]# cp -a webman.cf.default webman.cf
[root@server21 extman]# vim webman.cf
SYS_MAILDIR_BASE = /home/vmail
SYS_SESS_DIR = /tmp
SYS_CAPTCHA_ON = 0
SYS_CRYPT_TYPE = plain

4、安装Unix-Syslog软件日志管理工具

// 解压缩Unix-Syslog-1.1.tar.gz软件
[root@server21 ~]# cd extmail
[root@server21 extmail]# tar -zxvf Unix-Syslog-1.1.tar.gz
root@server21 extmail]# cd Unix-Syslog-1.1
[root@server21 Unix-Syslog-1.1]# 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.
#解决方案
[root@server21 Unix-Syslog-1.1]# yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker #安装依赖
[root@server21 Unix-Syslog-1.1]# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Unix::Syslog
[root@server21 Unix-Syslog-1.1]# make && make install

5、在浏览器上访问,windows测试需要手动指向dns服务器

//配置hosts文件
C:\Windows\System32\drivers\etc
20.20.20.21 mail.extmail.org

在Chrome下登入:http://mail.extmail.org;用户名:postmaster 密码:extmail    

=================================END==================================

辅助文本

三、软件相关

// 软件名:Postfix
// 主目录:/etc/postfix
// 主配置文件:main.cf
myhostname:#邮件服务器主机名
mydomain:#邮件域
myorigin:#设置允许发信的用户的邮件域
mydestination:#设置允许收信的用户的邮件域

四、企业级邮件服务

前提条件:要有一个DNS服务器,将准备的软件包导入虚拟机

发送方配置

1、DNS搭建

yum install -y bind
vi /etc/named.conf
#修改监听地址和访问控制为any
vi /etc/named.rfc1912.zones
#使用extmail.org作为解析域,只保留正向解析即可
vi /var/named/extmail.locahost
#修改数据文件,如下
NS dns.extmail.org
MX3 mail.extmail.org
dns A 192.168.88.10
mail A 192.168.88.10

在另一台上使用nslookup测试dns是否能解析

2、安装gcc以及其他依赖软件

yum install -y gcc* mysql-server mysql httpd mailx
#启动MySQL(apache)并设置开机自启
chkconfig mysqld(httpd)on
service mysqld(httpd)start

3、将web页面放在apache的网页目录下

mkdir -p /var/www/extsuite
#创建一个单独的目录
tar -xf extmail-1.2.tar.gz -C /var/www/extsuite/
tar -xf extman-1.1.tar.gz -C /var/www/extsuite/
#将extmail和extman解压到创建的目录中
cd /var/www/extsuite
mv extmail-1.2/extmail
mv extman-1.1/extmail
chown -R root.root*
#将两个解压后的目录去掉版本号,并修改文件归属

4、将成品数据库文件导入到MySQL中*(没设置密码,空密码登录)

cd /var/www/extsuite/
mysql< ./extman/docs/extmail.sql
#将./extman/docs/init.sql
INSERT INTO 'manager'VALUES('root@extmail.org','123456','admin','root')
#将此文件中该位置的密码修改为123456,切记先修改,再导入
mysql < ./extman/docs/init.sql

5、将邮件模板拷贝到邮件服务器的主目录下

cd /var/www/extsuit/extman/docs/
cp -a mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/

6、创建映射用户&修改配置文件

useradd -u 600 -s /sbin/nologin vmail
vim /etc/postfix/main.cf
inet_interfaces = all #将此选项取消注释
#inet_interfaces = localhost #将此选项注释掉
#在尾部添加下列内容
virtual mailbox base = /home/vmail
virtaul uid maps = static:600
virtaul_gid_maps = static:600
virtaul alias maps = mysql:/etc/postfix/mysql virtaul alias maps.cf
virtaul_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf

7、重启服务&发送邮件测试&查看结果

service postfix restart
echo "hello: |mail -s test support@extmail.org
ls /home/vmial/extmail.org/postmaster/Maildir/new/

接收方配置

1、安装dovecot相关软件

yum install -y dovecot dovecot-devel dovecot-mysql
chkconfig dovecot on
service dovecot start

2、配置dovecot能够去数据库里读数据

// 1、修改/etc/dovecot/conf.d/10-mail.conf
// 在配置文件中增加下列两行
mail_location = maildir:/home/vmail/%d/%n/Maildir #定义dovecot查询邮件的位置(定头写)
first_valid_uid = 600
// 2、修改/etc/dovecot/conf.d/10-auth.conf
!include auth-sql.conf.ext #取消调用数据库的记录注释
// 3、修改数据库连接配置文件(需要拷贝模板生成)
cp -a /usr/share/doc/dovecot-2.0.9/example-config/dovecot-sql.conf.ext/etc/dovecot/
vim dovecot-sql.conf.ext                                   #将下列内容加入配置文件即可
driver = mysql #驱动类型
connect = host=localhost dbname=extmail user=extmail password=extmail #连接数据库信息
default_pass_scheme = MD5
password_query =\
SELECT username, domain,password\
FROM mailbox WHERE usename = '%u'AND domain = '%d'          #验证登录密码的查询命令
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u' #查询虚拟用户对应的邮箱目录

3、重启dovecot验证是否能连接

// 安装Telnet客户端进行登录验证
yum install -y telnet
telnet mail.extmail.org 110
user postmaster@extmail.org #登录postmaster用户
pass extmail #密码是extmail
retr 1 #查看第一封邮件

五、MAIL+WEB页面

1、修改/etc/httpd/conf/httpd.conf配置文件,能加载邮件web页面

Name VirtualHost*:80                                      #取消注释,开启虚拟主机功能
// 添加以下内容
<VirtualHost*:80>
DocumentRoot /var/www/extsuite/extmail/html
ServerName mail.extmail.org
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>

2、extmail目录中更改cgi的属组属主,让vmail有权限执行


chown -R vmail.vmail cgi/
cp -a webmail.cf.default webmail.cf
vim webmail.cf
SYS_MAILDIR_BASE = /home/vamil #邮件存放目录
SYS_CRYPT_TYPE = plain #加密类型
SYS_MYSQL_USER = extmail #mysql用户名
SYS_MYSQL_PASS = extmail #mysql密码

3、extman中更改cgi的属组属主,让vmail有权限执行

chown -R vmail.vmail cgi/
cp -a webman.cf.default webman.cf
vim webman.cf
SYS_MAILDIR_BASE = /home/vmail
SYS_SESS_DIR = /tmp
SYS_CAPTCHA_ON = 0
SYS_CRYPT_TYPE = plain

4、安装Unix-Syslog软件

// 解压缩Unix-Syslog-1.1.tar.gz软件
cd Unix-Syslog-1.1
perl Makefile.PL
make
make install

5、在浏览器上访问,windows测试需要手动指向dns服务器

END





声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!



推荐阅读

Recommended reading

 







JavaBBS



Git











  






https://www.javabbs.cn/git






  JavaBBS大数据






→ 






https://www.javabbs.cn





/dsj





  JavaBBS云存储






→  https://www.javabbs.cn






/ycc







  JavaBBS数据库













  https://www.javabbs.cn






/sjk







  JavaBBS云计算













  https://www.javabbs.cn






/yjs







  JavaBBSIT.Log













https://www.javabbs.cn






/itl






  JavaBBSNginx













  https://www.javabbs.cn






/ngx






  JavaBBSzabbix













https://www.javabbs.cn






/zbx






  JavaBBSJavaSE













https://www.javabbs.cn






/jse







  JavaBBS社区文章













https://www.javabbs.cn






/bwz






  JavaBBS社区资料













https://www.javabbs.cn






/bzl







文章转载自Java BBS,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论