首页 > 系统相关 >Centos Linux 7 搭建邮件服务器(postfix + dovecot)

Centos Linux 7 搭建邮件服务器(postfix + dovecot)

时间:2024-08-08 17:40:21浏览次数:12  
标签:Centos postfix smtpd server key mail dovecot com

准备工作

1. 一台公网服务器(需要不被服务商限制发件收件的,也就是端口25、110、143、465、587、993、995不被限制),如有防火墙或安全组需要把这些端口开放

2. 一个域名,最好是com cn org的一级域名

3. 域名备案(如果服务器是国外的则不需要备案)

一、配置域名解析

1. 登录阿里云,找到云解析DNS

选择域名,如abc.com

①. 添加MX记录

- 记录类型:MX

- 主机记录:@

- 记录值:mail.abc.com

- MX优先级:1

②添加A记录

- 记录类型:A

- 主机记录:mail

- 记录值:服务器IP

- TTL:10分钟

③添加SPF记录

- 记录类型:TXT

- 主机记录:@

- 记录值:v=spf1 mx:mail.abc.com ip4:服务器IP -all

- TTL:10分钟

最后完成如下图

 

2. 安装Postfix、Dovecot

yum update -y
yum -y install postfix dovecot  cyrus-sasl

 

2. 创建自签名证书

(1). 创建证书

[root@mail ~]# cd
 
# 生成私钥
[root@mail ~]# openssl genrsa -des3 -out server.key 2048
Enter pass phrase:    #输入密码
Verifying - Enter pass phrase:  #重复输入密码
 
#下面这个步骤是删除server.key中的密码
[root@mail ~]# openssl rsa -in server.key -out server.key.insecure
Enter pass phrase for server.key:  #输入刚才设置的密码
writing RSA key

#重命名证书
[root@mail ~]# mv server.key server.key.secure
[root@mail ~]# mv server.key.insecure server.key

# 生成CSR(证书签名请求)
[root@mail ~]# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: #输入刚才设置的密码
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN #国家简称
State or Province Name (full name) []:Beijing #省
Locality Name (eg, city) [Default City]:Beijing  #城市
Organization Name (eg, company) [Default Company Ltd]:OPS  #公司名
Organizational Unit Name (eg, section) []:OPS   #部门名
Common Name (eg, your name or your server's hostname) []:mail.abc.com
Email Address []:[email protected]  
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:  #直接按Enter
An optional company name []:  #直接按Enter

#生成自签名证书
[root@mail ~]# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
Enter pass phrase for server.key:  #直接按Enter
Certificate request self-signature ok
subject=C = CN, ST = Beijing, L = Beijing, O = OPS, OU = OPS, CN = mail.abc.com, emailAddress = [email protected]
Getting Private key

#设置权限
[root@mail ~]# chmod 400 server.*

(2). 创建完成把证书拷贝到系统证书目录

# 创建目录
mkdir -p /etc/ssl/private/
# 拷贝
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

 

3. 配置Postfix

(1). 修改主配置

vim /etc/postfix/main.cf

# 修改以下项,注释的解开,不要有重复项
# 设置为 mail.域名
myhostname = mail.abc.com
# 设置为 域名
mydomain = abc.com
# 往外发邮件的邮件域
myorigin = $mydomain
#监听的网卡
inet_interfaces = all
inet_protocols = ipv4
#服务的对象
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
#邮件存放的目录
home_mailbox = Maildir/
 
# 新添加以下配置
#--------自定义(下面可以复制粘贴到文件最后面,用于设置服务器验为主,第一行设置发送附件大小)
#message_size_limit = 100000
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous,noplaintext
mynetworks = 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_tls_security_options = noanonymous
broken_sasl_auth_clients = yes

relayhost =
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/ssl/certs/server.crt
smtpd_tls_key_file = /etc/ssl/private/server.key
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_auth_only = yes

 

(2). 配置开启smtps

vim /etc/postfix/master.cf

# 分别把下列配置前面的#去掉
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

 

(3). 最后检查Postfix配置是否正确

postfix check

 

4. 配置Dovecot

(1). 修改主配置文件

vim /etc/dovecot/dovecot.conf

# 注释的解开注释,不要有重复项
protocols = imap pop3 lmtp
listen = *, ::
 
# 以下内容添加到文件最后
mail_location = maildir:~/Maildir

 

(2). 设置邮箱目录

vim /etc/dovecot/conf.d/10-mail.conf

# 设置mail_location为
mail_location = maildir:~/Maildir

 

(3). 配置SSL证书

vim /etc/dovecot/conf.d/10-ssl.conf

====================
ssl_cert = </etc/dovecot/private/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.key
改成
ssl_cert = </etc/ssl/certs/server.crt
ssl_key = </etc/ssl/private/server.key
====================

 

(4). 配置sasl认证以及SSL端口

vim /etc/dovecot/conf.d/10-master.conf

====================
  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }

====================
  inet_listener imap {
    #port = 143
  }
改成
  inet_listener imap {
    #port = 143
    port = 0
  }
====================
service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
}
改成
service pop3-login {
  inet_listener pop3 {
    #port = 110
    port = 0
  }
}
====================

 

(5). 配置认证

vim /etc/dovecot/conf.d/10-auth.conf

auth_mechanisms = plain  改成  auth_mechanisms = plain login

 

(6). 配置dovecot服务消除master.pid报错

vim /usr/lib/systemd/system/dovecot.service

# Type=forking后添加
ExecStartPost=/bin/sh -c 'chown root:dovecot /var/run/dovecot/master.pid'

# 加载系统服务
systemctl daemon-reload

 

5. 安装系统日志服务

sudo yum install -y rsyslog
# 设置开机自启动
sudo systemctl enable rsyslog
# 启动
sudo systemctl start rsyslog

#后续查看邮件服务日志方式(需要重启postfix和dovecot)
tail -f /var/log/maillog

 

6. 启动邮箱服务并新增邮箱用户

(1). 启动并设置开机自启

#启动
sudo systemctl start postfix
sudo systemctl start dovecot

#设置开机自启动
sudo systemctl enable postfix
sudo systemctl enable dovecot

后续需要重启命令为

sudo systemctl restart postfix
sudo systemctl restart dovecot

查看运行状态命令为

sudo systemctl status postfix
sudo systemctl status dovecot

 

(2). 查看服务端口启动是否完整

netstat -lntp

如图25 465 993 995端口正常启动

 

7. 安装mailx(用于测试发邮件)

sudo yum install -y mailx

#======测试发件======
echo '搭建邮件服务器成功啦!!!' | mail -s '通知!' [email protected]

 

8. 创建邮箱账号

(1). 创建账号

useradd -m 用户名
passwd 用户名
# 输入密码
# 确认密码

(2). 验证账号

sudo doveadm auth test 用户名

 

二、使用Foxmail收发邮件

1. windows10版本的Foxmail 新建账号完成后闪退,所以先设置下

首先找到Foxmail快捷方式,右键属性。
找到兼容性,并且在下方找到“以管理员身份运行此程序”,勾选,确定

2. 登录账号

打开Foxmail,新建账号 => 其它邮箱 => 手动设置 => POP3

邮件账号:账号@abc.com

密码:xxxxxx

POP服务器:mail.abc.com    SSL 995(勾选)

SMTP服务器:mail.abc.com  SSL 465(勾选)

注:虽然发件服务(SMTP)启用了SSL走的端口是465,但是实测25端口还得开放,不然无法接收外部邮件

 

 

 

 

 

ubuntu系统参考:https://www.cnblogs.com/007sx/p/18347813

 

标签:Centos,postfix,smtpd,server,key,mail,dovecot,com
From: https://www.cnblogs.com/007sx/p/18349388

相关文章

  • "揭秘CentosChina爬虫项目:掌握Scrapy框架的必备技巧与数据库设计"
    Centoschina项目要求爬取centoschina_cn的所有问题,包括文章标题和内容数据库表设计库表设计:数据展示:项目亮点低耦合,高内聚。爬虫专有settingscustom_settings=custom_settings_for_centoschina_cncustom_settings_for_centoschina_cn={'MYSQL_USER':'roo......
  • 云服务器Linux Centos7 安装minio
    官网下载minio地址:https://min.io/download?license=agpl&platform=kubernetes本文章可放心无脑食用1.准备工作创建存储位置(一般在/usr/local下安装程序)mkdir/usr/local/miniomkdir/usr/local/minio/data/usr/local/minio:存放minio程序/usr/local/minio:存放mi......
  • Centos7单用户修改密码.md
    1、进入编辑模式启动操作系统,并且在grub界面按“e”进入编辑模式2、修改参数传统模式:找到“linux16”开头的那段,在“UTF-8”之后添加“init=/bin/sh”,同时需要去掉“rhgb”和“quiet”参数UEFI模式:非“linux16”开头,而是以“linuxefi”开头3、进入单用户模式使用ctrl+x进入......
  • centos7.9 安装docker-ce
    #step1:安装必要的一些系统工具sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2#Step2:添加软件源信息sudoyum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#Step3sudosed-i's+download.docker.c......
  • Ubuntu Linux 搭建邮件服务器(postfix + dovecot)
    准备工作1.一台公网服务器(需要不被服务商限制发件收件的,也就是端口25、110、143、465、587、993、995不被限制),如有防火墙或安全组需要把这些端口开放2.一个域名,最好是comcnorg的一级域名3.域名备案(如果服务器是国外的则不需要备案)一、配置域名解析1.登录阿里云,找到云解......
  • Centos8下载报错:Errors during downloading metadata for repository ‘appstream‘:
    前提使用docker安装centos8步骤复现:启动后发现环境中没有vim功能,想着安装一下,发现报错:Errorsduringdownloadingmetadataforrepository'appstream':原因:找到AI工具翻译后:结合centos系统在2021年就没有在进行维护了,再进行网上大量查阅得知应该是yum源的问题,这里......
  • CentOs7 中mysql8 设置远程连接
    迁移csdnCentOs7中Mysql8.0设置远程连接1登陆Mysqlmysql-uroot-p输入密码2选择mysql数据库usemysql;在mysql数据库中存储了用户信息的user表3在mysql数据库的user表中查看当前root用户的相关信息selecthost,user,authentication_string,pluginfromus......
  • CentOS Stream 9 安装mysql 开启远程访问 忽略大小写
     更新sudodnfupdate安装MySQL服务器:这边安装的是默认8.0sudodnfinstallmysql-server启动MySQL服务:sudosystemctlstartmysqld确保MySQL服务设置为在启动时自动启动:sudosystemctlenablemysqld运行初始安全脚本来设置root用户密码和调整安全......
  • CentOS7:VMware虚拟机磁盘(/sda3)扩容
    随着时间的推移,要装的东西越来越多,加上之前创建虚拟机的时候没有太过关注磁盘资源分配,导致资源利用率地下。今天就来实现下磁盘扩容进行操作前请对相关重要数据进行备份或者拍张快照处理/sda3空间不足问题扩容前可以看到这块磁盘的使用率已经达到98%了,现在就是要对这块磁......
  • Centos下Rabbitmq安装
    提纲1、rabbitmq简介2、下载安装erlang/otp3、下载安装rabbitmq1rabbitmq简介MQ全称为MessageQueue,即消息队列。它也是一个队列,遵循FIFO原则。RabbitMQ是由erlang语言开发,基于AMQP(AdvancedMessageQueueProtocol高级消息队列协议)协议实现的消息队列,它是一种应用程序......