28 Linux-企业邮件部署-Postfix

28 Linux-企业邮件部署-Postfix

28.1 邮件概述

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

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

28.2 邮件应用协议

协议描述
SMTP 简单邮件传输协议(发邮件) TCP 25 端口,加密时使用 TCP 465 端口
POP3 第三版邮局协议(收邮件) TCP 110 端口,加密时使用 TCP 995 端口
IMAP4 第四版互联网邮件访问协议(收邮件) TCP 143 端口,加密时使用 TC P 993 端口

28.3 服务描述

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

28.4 企业级邮件服务

28.4.1 发送方配置

1)DNS 搭建

yum -y install bind
vi /etc/named.conf
# 修改监听地址和访问控制为 any
vi etc/named.rfc1912.zones
# 使用 extmail.org 作为 解析域 只保留正向解析即可
vi /var/named/extmail.l oca lhost
# 修改数据文件 ,如下
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 -y install 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/ extman
chown -R root.root *
# 将两个解压后的目录去掉版本号,并修改文件归属

4)将成品数据库文件导入到 MySQL中

cd /var/www/extsuite/
mysql < ./extman/docs/extmail.sql
# 将./extman/docs 中模板和数据导入到数据库中

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

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

cd /var/www/extsuite/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
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)重启服务发送邮件测试 查看结果

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

28.4.2 接收方配置

1)安装dovecot 相关软件

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

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

# 修改/etc/dovecot/conf.d/10-mail.conf
# 在配置文件中增加下列两行
mail_location = maildir:/home/vmail/%d/%n/Maildir #定义dovecot 查询邮件的位置(顶头写)
first_valid_uid = 600


# 修改/etc/dovecot/conf.d/10-auth.conf
!include auth-sql.conf.ext # 取消调用数据库的记录注释

# 修改数据库连接配置文件(需要拷贝模板生成)
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 username = '%u' AND domain = '%d'
# 验证登录密码的查询命令
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
# 虚拟用户对应的邮箱目录

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

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

28.4.3 MAIL+WEB 页面

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

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>

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

chown -R vmail.vmail cgi/
cp -a webmail.cf.default webmail.cf
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 有权限执行

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 服务器

 

posted @ 2021-09-15 15:06  孤独的小人物  阅读(346)  评论(0)    收藏  举报