Centos7.9搭建自主邮件服务器详细步骤

目录
  • 前言
  • 一 配置内网dns a记录和mx记录
  • 二 mail服务器初始化配置
    • 1. 修改主机名
    • 2. 关闭防火墙与selinux
    • 3. 开启时间同步
    • 4. 安装软件
  • 三 修改配置文件
    • 1 配置postfix
    • 2 配置dovecot
      • 2.1 配置监听协议:
      • 2.2 配置登录方式:
      • 2.3 配置邮件存储位置:
      • 2.4 配置ssl(关闭):
    • 3 配置sasl2
      • 3.1 配置系统认证:
      • 3.2 配置登录方式:
    • 4 启动服务:
      • 5 创建用户并设置pass
        • 6 配置mailx:
        • 四 发送邮件测试
          • 1 命令行发送邮件测试
            • 2 使用使用foxmail登录并发送邮件测试
            • 五 报错
              • 1 权限被拒绝
                • 2 无法找到主机:
                  • 3 邮件被拒绝

                  前言

                  由于公司zabbix 监控告警邮件发送量过打,使用的腾讯企业邮箱会出现漏发或发送频率过快而拒绝发送的情况,所以现在使用自主搭建的内网邮件服务器来负责zabbix告警邮件的发送。

                  内网的告警邮件服务器只能给其他(腾讯企业邮箱,网易邮箱等)邮箱发送邮件,而不能接受其他邮箱的回邮件,如想可以收到回件需要购买域名配置a记录和mx记录,本文档不再讲解。

                  一 配置内网dns a记录和mx记录

                  我在内网使用的域名主机是dnsmasq代理软件,其使用简单,方便,多样化。详细配置可查看其他文档。

                  [root@dns_proxy ~]# grep liqing /etc/dnsmasq.conf
                  address=/mail.liqing-test.top/192.168.2.100
                  mx-host=liqing-test.top,mail.liqing-test.top,10

                  二 mail服务器初始化配置

                  1. 修改主机名

                  [root@localhost /]# hostnamectl --static set-hostname mail.liqing-test.top|bash

                  2. 关闭防火墙与selinux

                  [root@mail /]# systemctl stop iptables && systemctl disable iptables
                  [root@mail /]# systemctl stop firewalld && systemctl disable firewalld
                  [root@mail /]# setenforce 0

                  3. 开启时间同步

                  [root@mail /]# yum -y install ntpdate && ntpdate ntp.aliyun.com

                  4. 安装软件

                  [root@mail /]# yum  -y  install  postfix  dovecot  cyrus-sasl-*  mailx

                  三 修改配置文件

                  注释:配置文件备份操作本文档自行操作

                  1 配置postfix

                  [root@mail /]# cat /etc/postfix/main.cf
                  mail_owner = postfix
                  myhostname = mail.liqing-test.top
                  mydomain = liqing-test.top
                  myorigin = $mydomain
                  inet_interfaces = all
                  inet_protocols = ipv4
                  mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, www.$mydomain, ftp.$mydomain
                  local_recipient_maps =
                  mynetworks = 0.0.0.0/0
                  relay_domains = $mydestination
                  alias_maps = hash:/etc/aliases
                  alias_database = hash:/etc/aliases
                  smtpd_banner = $myhostname esmtp
                  
                  # 在最下面新增
                  smtpd_sasl_type = dovecot
                  smtpd_sasl_path = private/auth
                  smtpd_sasl_local_domain =
                  smtpd_sasl_auth_enable = yes
                  smtpd_sasl_security_options = noanonymous
                  broken_sasl_auth_clients = yes
                  smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated
                  smtpd_client_restrictions = permit_sasl_authenticated

                  2 配置dovecot

                  2.1 配置监听协议:

                  [root@mail /]# cat /etc/dovecot/dovecot.conf
                  protocols = imap pop3 lmtp
                  listen = *
                  login_trusted_networks = 0.0.0.0/0
                  dict {
                  }
                  !include conf.d/*.conf
                  !include_try local.conf

                  2.2 配置登录方式:

                  [root@mail /]# cat /etc/dovecot/conf.d/10-auth.conf
                  disable_plaintext_auth = no
                  auth_mechanisms = plain login
                  !include auth-system.conf.ext

                  2.3 配置邮件存储位置:

                  [root@mail /]# cat /etc/dovecot/conf.d/10-mail.conf
                  mail_location = mbox:~/mail:inbox=/var/mail/%u
                  namespace inbox {
                  inbox = yes
                  }
                  first_valid_uid = 1000
                  mbox_write_locks = fcntl
                  [root@mail /]# cat /etc/dovecot/conf.d/10-master.conf 
                  service auth {
                     unix_listener /var/spool/postfix/private/auth {
                     mode = 0666
                     user = postfix
                     group = postfix
                     }
                  }

                  2.4 配置ssl(关闭):

                  [root@mail /]# cat /etc/dovecot/conf.d/10-ssl.conf 
                  ssl = no

                  3 配置sasl2

                  3.1 配置系统认证:

                  [root@mail /]# cat /etc/sysconfig/saslauthd 
                  socketdir=/run/saslauthd
                  mech=shadow
                  flags=

                  3.2 配置登录方式:

                  [root@mail /]# cat /etc/sasl2/smtpd.conf
                  pwcheck_method: saslauthd
                  mech_list: plain login
                  log_level:3

                  4 启动服务:

                  systemctl  restart  dovecot
                  systemctl  restart  postfix
                  systemctl  restart  saslauthd
                  systemctl  enable dovecot
                  systemctl  enable  postfix
                  systemctl  enable  saslauthd

                  5 创建用户并设置pass

                  [root@mail /]# useradd -m autumn && echo 123456 | passwd --stdin autumn
                  [root@mail /]# su - autumn 
                  [autumn@mail ~]$ mkdir -p ~/mail/.imap/inbox
                  [autumn@mail ~]$ chmod -r 750 ~/mail        #(这不操作不做会在使用foxmail登录时报错{error: couldn't open inbox: permission denied})
                  [autumn@mail ~]$ exit

                  6 配置mailx:

                  [root@mail /]# cat /etc/mail.rc
                  set from=autumn@liqing-test.top
                  set smtp=mail.liqing-test.top
                  set smtp-auth-user=autumn
                  set smtp-auth-password=123456
                  set smtp-auth=login

                  四 发送邮件测试

                  1 命令行发送邮件测试

                  [root@mail /]# echo  "邮件服务器测试"  |  mail  -s  "邮件服务器测试"  other-email@163.com

                  2 使用使用foxmail登录并发送邮件测试

                  五 报错

                  1 权限被拒绝

                  在使用foxmail登录邮箱时提示权限被拒绝,这是因为在邮箱用户的家目录下mail文件权限不是750,设置为750后解决。

                  [autumn@mail ~]$ chmod -r 750 ~/mail

                  dec 3 10:15:35 git-server dovecot: pop3-login: login: user=<autumn>, method=plain, rip=192.168.31.100, lip=192.168.2.100, mpid=24843, secured, session=<ynz3eztsjilaqb9k>

                  dec 3 10:15:35 git-server dovecot: pop3(autumn): error: fchown(/home/autumn/mail/.imap, group=12(mail)) failed: operation not permitted (egid=1004(autumn), group based on /var/mail/autumn – see http://wiki2.dovecot.org/errors/chgrpnoperm)

                  dec 3 10:15:35 git-server dovecot: pop3(autumn): error: couldn’t open inbox: permission denied

                  dec 3 10:15:35 git-server dovecot: pop3(autumn): couldn’t open inbox: permission denied top=0/0, retr=0/0, del=0/0, size=0

                  dec 3 10:16:26 git-server dovecot: pop3-login: login: user=<autumn>, method=plain, rip=192.168.31.100, lip=192.168.2.100, mpid=24895, secured, session=<nkwhfjts2claqb9k>

                  dec 3 10:16:26 git-server dovecot: pop3(autumn): error: fchown(/home/autumn/mail/.imap, group=12(mail)) failed: operation not permitted (egid=1004(autumn), group based on /var/mail/autumn – see http://wiki2.dovecot.org/errors/chgrpnoperm)

                  2 无法找到主机:

                  邮件在发送时会根据邮件地址的解析记录去查找mx记录,这里我在向腾讯的企业邮箱发送测试邮件时找不到腾讯的邮箱地址。我在内网的dns代理中加入了腾讯的mx记录后解决

                  [root@dns- ~]# grep qq /etc/dnsmasq.conf 
                  mx-host=***.com,mxbiz2.qq.com,10
                  mx-host=***.com,mxbiz1.qq.com,5

                  dec 3 10:36:14 git-server postfix/smtpd[26216]: connect from unknown[192.168.31.100]

                  dec 3 10:36:15 git-server postfix/smtpd[26216]: 05c682267f04: client=unknown[192.168.31.100], sasl_method=login, sasl_username=autumn

                  dec 3 10:36:15 git-server postfix/cleanup[26220]: 05c682267f04: message-id=<202112031036171922345@liqing-test.top>

                  dec 3 10:36:15 git-server postfix/qmgr[25430]: 05c682267f04: from=<autumn@liqing-test.top>, size=1561, nrcpt=1 (queue active)

                  dec 3 10:36:15 git-server postfix/smtpd[26216]: disconnect from unknown[192.168.31.100]

                  dec 3 10:36:15 git-server postfix/smtp[26221]: 05c682267f04: to=<***@***.com>, relay=none, delay=0.11, delays=0.08/0.02/0/0, dsn=4.4.3, status=deferred (host or domain name not found. name service error for name=***.com type=mx: host not found, try again)

                  3 邮件被拒绝

                  在我向腾讯企业邮箱发送测试邮件时日志里出现了550邮件连接被拒绝的情况,此情况在邮件中设置白名单后解决。

                  dec 3 10:11:57 git-server postfix/smtpd[24617]: connect from mail.liqing-test.top[192.168.2.100]

                  dec 3 10:11:57 git-server postfix/smtpd[24617]: 4e2292267f04: client=mail.liqing-test.top[192.168.2.100], sasl_method=login, sasl_username=autumn

                  dec 3 10:11:57 git-server postfix/cleanup[24621]: 4e2292267f04: message-id=<61a97cec.xrtxn6hyj3ni3wi3%autumn@liqing-test.top>

                  dec 3 10:11:57 git-server postfix/qmgr[24504]: 4e2292267f04: from=<autumn@liqing-test.top>, size=541, nrcpt=1 (queue active)

                  dec 3 10:11:57 git-server postfix/smtpd[24617]: disconnect from mail.liqing-test.top[192.168.2.100]

                  dec 3 10:11:58 git-server postfix/smtp[24622]: 4e2292267f04: to=<***@***.com>, relay=mxbiz1.qq.com[183.57.48.34]:25, delay=1.6, delays=0.09/0.03/0.16/1.3, dsn=5.0.0, status=bounced (host mxbiz1.qq.com[183.57.48.34] said: 550 mail content denied. http://service.exmail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726 (in reply to end of data command))

                  到此这篇关于centos7.9搭建自主邮件服务器详细步骤的文章就介绍到这了,更多相关centos搭建邮件服务器内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

                  (0)
                  上一篇 2022年3月21日
                  下一篇 2022年3月21日

                  相关推荐