linux中使用Postfix和Dovecot搭建邮箱系统服务

本文涉及的产品
性能测试 PTS,5000VUM额度
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: Postfix是一个开源的邮件传输代理(MTA),用于路由和传送电子邮件。它是一个可靠、安全且高性能的邮件服务器软件,常用于搭建邮件系统的核心组件之一。Dovecot是一个开源的邮件服务软件,用于提供邮件访问服务,包括POP3和IMAP协议。它通常与Postfix配合使用,用于接收和存储邮件,以及为用户提供远程访问邮件的功能。

Postfix

Postfix是一个开源的邮件传输代理(MTA),用于路由和传送电子邮件。它是一个可靠、安全且高性能的邮件服务器软件,常用于搭建邮件系统的核心组件之一。

特点和功能:

  • 安全性: Postfix注重安全性,采用了多种安全机制来保护系统免受邮件滥用和攻击。
  • 性能: Postfix设计简单、高效,具有良好的性能表现,能够高效地处理大量的邮件流量。
  • 灵活性: Postfix提供了丰富的配置选项和灵活的扩展性,可以根据需求进行定制和配置。
  • 易用性: Postfix具有清晰的文档和友好的社区支持,易于安装、配置和管理。

Dovecot

Dovecot是一个开源的邮件服务软件,用于提供邮件访问服务,包括POP3和IMAP协议。它通常与Postfix配合使用,用于接收和存储邮件,以及为用户提供远程访问邮件的功能。

特点和功能:

  • 稳定性: Dovecot稳定可靠,经过广泛的测试和使用,在生产环境中表现良好。
  • 安全性: Dovecot支持SSL/TLS加密,能够保护邮件通信的安全性,同时提供多种认证方式来保护用户帐户的安全。
  • 高性能: Dovecot具有优秀的性能表现,能够快速响应用户的邮件访问请求,并支持邮件目录索引缓存等功能来提升性能。
  • 易用性: Dovecot提供了简单易用的配置文件和管理工具,使得管理员可以轻松地进行配置和管理。

Postfix和Dovecot是搭建邮件系统的两个重要组件,它们分别负责邮件的传输和存储、访问。通过合理配置和配合使用这两个工具,可以构建一个安全、稳定、高性能的邮件系统,满足用户的邮件通信需求。

以下均在Vmware中实验

均关闭防火墙 selinux

安装bind

yum install -y bind
AI 代码解读

编辑bind的配置文件

[root@localhost ~] vim /etc/named.conf 
AI 代码解读

image.png

添加正向解析 域名根据需求来设置

image.png

进入cd /var/named/

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.empty ssl.com.zone
AI 代码解读
cp -p named.empty ssl.com.zone`:使用选项将文件复制到命名的新文件,同时保留文件属性(时间戳、所有权、模式)。`named.empty``ssl.com.zone``-p
AI 代码解读

编辑刚刚复制的文件

vim /ssl.com.zone


$TTL 3H
@       IN SOA  ssl.com. root.ssl.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@ IN NS dns.ssl.com.
dns IN A 192.168.180.188
mail IN A 192.168.180.188
ftp IN A 192.168.180.66
        MX 10 mail.ssl.com.
AI 代码解读

此行指定邮件交换 (MX) 记录,指示邮件服务器应将邮件传递到此域的位置。它将首选项值设置为“3”

配置完成之后

systemctl restart named
AI 代码解读

测试DNS解析

把dns执行服务器IP(也就是自己的地址)

vim /etc/resolv.conf
AI 代码解读

image.png

解析成功

image.png

安装postfix

 yum install -y postfix
AI 代码解读

image.png

编辑配置文件

vim /etc/postfix/main.cf
AI 代码解读

该文件 () 通常包含 Postfix 邮件服务器的主要配置设置。您可能会发现一些常见的配置选项,包括与域名、网络接口、中继设置和安全选项相关的设置。 main.cf main.cf

76 myhostname = mail.sll.com
AI 代码解读

image.png

 83 mydomain = ssl.com
AI 代码解读

此设置对于确保传出电子邮件具有有效的发件人地址至关重要

image.png

 98 myorigin = $myhostname
该变量通常表示运行 Postfix 的计算机的主机名
AI 代码解读

image.png

113 inet_interfaces = all
AI 代码解读

image.png

此行指定 Postfix 应侦听所有可用的网络接口。这意味着它将接受分配给服务器的任何 IP 地址上的连接

116 #inet_interfaces = localhost
AI 代码解读

这一行也被注释掉了。它指定 Postfix 应仅在 localhost 接口上侦听。

164 #mydestination = $myhostname, localhost.$mydomain, localhost

此行被注释掉。它建议邮件服务器应将邮件传递到以下目的地:

服务器的主机名 ($myhostname)
localhost.$mydomain
localhost


165 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
AI 代码解读

使用此配置,Postfix 将在本地传递与所列目的地关联的地址的邮件。

image.png

418 #home_mailbox = Mailbox
此行已注释掉,因此它未处于活动状态。它建议使用名为 的邮箱格式。但是,由于已注释,因此未使用此配置。Mailbox

419 home_mailbox = Maildir/


指示本地用户邮箱的默认邮箱格式为 Maildir 格式。home_mailboxMaildir/
AI 代码解读

image.png

配置完成之后

重启服务

[root@localhost ~] systemctl restart postfix
AI 代码解读

创建一个用户并设置密码的

[root@localhost ~]# useradd -s /sbin/nologin admin
[root@localhost ~]# passwd admin
更改用户 admin 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
AI 代码解读

/sbin/nologin 该选项将用户的 shell 设置为 ,这是一个特殊的 shell,可有效地禁用此用户的登录
image.png

安装Dovecot

下载软件

[root@localhost ~] yum install -y dovecot dovecot-devel clucene-core
AI 代码解读

如果不能一起安装的话可以单独分开安装

编辑配置文件

[root@localhost ~]  vim /etc/dovecot/dovecot.conf
AI 代码解读

指定允许访问的网段

image.png

[root@localhost ~] vim /etc/dovecot/conf.d/10-mail.conf
AI 代码解读

此文件通常包含与 Dovecot 的邮件存储相关的配置设置。它允许您定义 Dovecot 存储用户电子邮件的位置和方式。

此行指定 Dovecot 应使用 Maildir 格式 () 来存储电子邮件,目录路径是存储电子邮件的位置。maildir:``~/Maildir

maildir:指示 Maildir 格式,该格式将每封电子邮件作为单独的文件存储在用户目录中。

image.png

设置完成之后 重启服务器

[root@localhost ~] systemctl restart dovecot
AI 代码解读

配置SSL加密

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out servernew.crt
AI 代码解读
  1. openssl genrsa -des3 -out server.key 1024

    • 生成一个RSA私钥(Key),命名为,并且使用DES算法进行加密(通过 选项)。私钥的长度为1024位。server.key``-des3
  2. openssl req -new -key server.key -out server.csr

    • 使用生成的私钥()生成一个证书签名请求(Certificate Signing Request,CSR),存储在文件中。该命令将提示你输入一些证书相关的信息,比如组织名称、单位名称、常用名等。server.key``server.csr
  3. openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out servernew.crt

    • 使用先前生成的CSR()以及私钥()签署证书,生成一个自签名的X.509证书()。参数指定证书的有效期为365天,指定使用SHA-256算法进行签名。server.csr``server.key``servernew.crt``-days 365``-sha256

image.png

输入完成之后

ls查看此刻桌面会多出SSL/TLS 证书相关的文件

server.csr servernew.crt server.key

  1. server.csr:此文件通常包含为服务器生成的证书签名请求 (CSR)。CSR 将发送到证书颁发机构 (CA) 以请求颁发 SSL/TLS 证书。它包含您的域名和组织详细信息等信息。
  2. servernew.crt:此文件似乎是证书颁发机构 (CA) 为响应 CSR 而颁发的 SSL/TLS 证书。它包含服务器的公钥,用于与客户端建立安全连接。
  3. server.key:此文件包含与 SSL/TLS 证书关联的私钥。私钥用于 SSL/TLS 握手过程中的加密和解密。
[root@localhost ~] ls
anaconda-ks.cfg  csdn                  oneif.sh   path.sh    server.csr  servernew.crt  user.sh     公共  视频  文档  音乐
c????????        initial-setup-ks.cfg  passwd.sh  select.sh  server.key  time.sh        yesoron.sh  模板  图片  下载  桌面


[root@localhost ~] cp -a * /etc/pki/CA/certs/


[root@localhost ~] ls /etc/pki/CA/certs/
anaconda-ks.cfg  csdn                  oneif.sh   path.sh    server.csr  servernew.crt  user.sh     公共  视频  文档  音乐
c????????        initial-setup-ks.cfg  passwd.sh  select.sh  server.key  time.sh        yesoron.sh  模板  图片  下载  桌面
AI 代码解读

命令用于将当前目录下的所有文件(除了以开头的隐藏文件)复制到目录中。这意味着你复制了当前目录下的所有文件和目录到目录。cp -a * /etc/pki/CA/certs/``.``/etc/pki/CA/certs/``/etc/pki/CA/certs/

此文件是 Postfix 邮件服务器的主要配置文件。

[root@localhost ~] vim /etc/postfix/main.cf
添加如下信息

683 smtpd_use_tls = yes
684 smtpd_tls_cert_file = /etc/pki/CA/certs/servernew.crt
685 smtpd_tls_key_file = /etc/pki/CA/certs/server.key
686 smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
AI 代码解读

它定义了各种邮件处理服务的参数和配置。

vim /etc/postfix/master.cf

#  -o syslog_name=postfix/smtps
 -o smtpd_tls_wrappermode=yes
#  -o smtpd_sasl_auth_enable=yes
AI 代码解读

image.png

这意味着传入的 SMTP 连接将使用 TLS 进行加密,从而在邮件服务器和连接客户端之间提供安全通信。

 [root@localhost ~] vim /etc/dovecot/conf.d/10-ssl.conf 


14 ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
15 ssl_key = </etc/pki/dovecot/private/dovecot.pem
16 
AI 代码解读

这些行指定 Dovecot 使用的 SSL 证书和私钥文件的路径,
image.png

重启该服务

[root@localhost ~] systemctl restart dovecot
AI 代码解读

客户端测试

用win10专业版来做测试

安装foxmail

image.png

进入之后根据自己需求来选择邮箱账号

image.png

输入服务器类型为POP3输入账户密码 选择SMTP的SSL对钩创建即可

image.png

创建完成之后再创建一个用户用来测试使用

image.png

创建完成之后完成如下需求

image.png

image.png

接收完成实验结束

image.png

目录
打赏
0
3
3
0
40
分享
相关文章
|
1月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
74 24
Linux系统之whereis命令的基本使用
|
1天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
29 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
8天前
|
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Gti 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Gti 服务
26 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Gti 服务
|
3月前
|
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
304 78
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
190 19
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
162 23
|
2月前
|
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
659 7
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
135 13
Postfix 邮件服务器的配置
Postfix是一种功能强大且功能多样的邮件传输代理。在本文中,我们已经了解了如何使用postfix 和 dovecot为基于系统用户帐户的单个域实现基本电子邮件服务器。我们几乎没有涉及基于 postfix 的系统的真正功能,但希望能为新用户构建提供坚实的工作基础。
1863 0

云原生

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等