• Redhat8安装Postfix邮件服务


    设置主机名

    [root@localhost ~]# hostnamectl set-hostname hdkk-server.com

    硬件配置

    内存:4G
    硬盘:200G
    CPU:2
    网络:Bridge

    [root@hdkk-server ~]# cat /etc/redhat-release
    Red Hat Enterprise Linux release 8.2 (Ootpa)
    [root@hdkk-server ~]# ip a | grep -A3 ens160: | grep inet | awk '{print $2}'
    172.16.186.128/24

    关闭防火墙和selinux

    [root@hdkk-server ~]# systemctl stop firewalld && systemctl disable firewalld
    [root@hdkk-server ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

    更新系统

    [root@hdkk-server ~]# dnf -y update

    卸载其他MTA(如sendmail),如不卸载sendmail将会导致和postfix配置冲突,8.2应未自带sendmail

    [root@hdkk-server ~]# dnf -y remove sendmail

    更新hosts

    [root@hdkk-server ~]# echo -e "172.16.186.128 hdkk-server.com" >>/etc/hosts

    安装postfix邮件服务器和mailx邮件客户端

    [root@hdkk-server ~]# dnf -y install postfix mailx
    [root@hdkk-server ~]# systemctl start postfix && systemctl enable postfix
    [root@hdkk-server ~]# systemctl status postfix | grep Active | awk '{print $3}'

    配置postfix邮件服务器

    Postfix 的配置文件在/etc/postfix/main.cf中

    [root@hdkk-server ~]# vim /etc/postfix/main.cf
    # 邮件服务器的位置,默认为打开状态
    queue_directory = /var/spool/postfix

    # 邮件服务器的命令,默认为打开状态
    command_directory = /usr/sbin

    # 邮件服务器可执行程序位置,默认为打开状态
    daemon_directory = /usr/libexec/postfix

    # 邮件服务器数据库的存放位置
    data_directory = /var/lib/postfix

    # 服务器的运行身份
    mail_owner = postfix

    # 邮件服务器的主机名称 (需要改成自己定的)这个正常的情况就是我们服务器的的域名作为邮件的邮件域,同时也可用域作为邮件域,发总邮件是可以是zhangsan@hdkk-server.com、也可以是zhangsan@mail.hdkk-server.com,比如主机的域名为mail.hdkk-server.com
    myhostname = hdkk-server-1

    # 服务器的域 (自行开启,改成@后面的部分,不含@)
    mydomain = server.com

    # 允许发送邮件用户的邮件域是谁 (自行开启),就是说哪些用户可以通过这个邮件服务器发邮件呢?就是$后面设置的这个域。(不用改)
    myorigin = $mydomain

    # 用来设置监听的地址 (自行开启)
    inet_interfaces = localhost 改为 inet_interfaces = all

    # 使用的协议 (默认开启)
    inet_protocols = all

    # 注释该行
    #mydestination = $myhostname, localhost.$mydomain, localhost

    # 用来设置本邮件服务器允许接收哪些地址发来的的邮件
    mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

    # 收到未知用户的邮件的时候返回的一个错误代码(默认开启)
    unknown_local_recipient_reject_code = 550

    # 更换IP范围,这里表示只接收186.0段
    mynetworks = 172.16.186.0/24, 127.0.0.0/8

    # 邮件别名,有用,默认开启
    alias_maps = hash:/etc/aliases

    # 搭配上一条使用,意思为使用别名时需要的数据库
    alias_database = hash:/etc/aliases

    # 邮件的存放位置,默认不开启,一共2个,开Maildir/ 这个(Maildir后面带/)
    home_mailbox = Maildir/

    重启postfix服务

    [root@hdkk-server ~]# systemctl restart postfix

    添加测试用户

    [root@hdkk-server ~]# useradd zhangsan
    [root@hdkk-server ~]# echo 123456 | passwd "zhangsan" --stdin
    [root@hdkk-server ~]# useradd lisi
    [root@hdkk-server ~]# echo 123456 | passwd "lisi" --stdin

    本地测试postfix邮件服务

    [root@hdkk-server ~]# dnf -y install telne
    [root@hdkk-server ~]# telnet localhost smtp 或者 telnet localhost 25
    Trying ::1...
    Connected to localhost.
    Escape character is '^]'.
    # 下行连接成功标示
    220 hdkk-server-1 ESMTP Postfix
    # 下行手动输入,helo声明当前邮件服务器的域名
    helo hdkk-server.com
    250 hdkk-server.com
    # 邮件从谁那发出来的,zhangsan发的
    mail from:zhangsan@hdkk-server.com
    250 2.1.0 Ok
    # 发给lisi的
    rcpt to:lisi@hdkk-server.com
    250 2.1.5 Ok
    # 手动输入data,表示邮件的正文,邮件正文可输入多行
    data
    354 End data with .
    # 正文内容为lisi 你吃饭了么?
    lisi 你吃饭了么?
    # 另起一行输入一个点,而后回车表示正文结束
    .
    # 结束标志
    250 2.0.0 Ok: queued as 842CCD6DB5
    # 手动输入quit进行退出
    quit
    221 2.0.0 Bye
    # 邮件发送完毕,连接断开
    Connection closed by foreign host.
    注:在上述连接成功后画面将停止不动才是正确的回显,需注意。按 ctrl + ] 则进入下一个命令行
    telnet>
    注:输入 q 即可退出

    检验邮件有没发送成功

    postfix邮件服务器日志

    [root@hdkk-server ~]# tail -f /var/log/maillog

    将邮件传输加密

    建议始终确保客户端和 Postfix 服务器之间的通信安全,这可使用 SSL 证书来实现,如只测试则不需要,否则必须来自受信任的权威机构或自签名证书

    [root@hdkk-server ~]# dnf -y install openssl

    生成私钥和 CSR(证书签名请求)

    [root@hdkk-server ~]# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
    ....
    ....
    Country Name (2 letter code) [XX]:CN # 国家名称
    State or Province Name (full name) []:GD # 州或省名称
    Locality Name (eg, city) [Default City]:GZ # 城市名称
    Organization Name (eg, company) [Default Company Ltd]:admin # 机构名称
    Organizational Unit Name (eg, section) []:admin # 组织单位名称
    Common Name (eg, your name or your server's hostname) []:admin # 通用名称
    Email Address []:hdkk-server.com

    Please enter the following 'extra' attributes # 请输入以下“额外”属性
    to be sent with your certificate request # 随您的证书申请一起发送
    A challenge password []:123456 # 质询密码[]:
    An optional company name []:123456 # 可选公司名称[]:

    使用openssl 命令生成自签名证书:

    [root@hdkk-server ~]# openssl x509 -req -days 3650 -in mail.csr -signkey mail.key -out mail.crt

    将私钥和证书文件复制到 /etc/postfix 目录下:

    [root@hdkk-server ~]# cp mail.key mail.crt /etc/postfix/

    在 Postfix 配置文件中更新私钥和证书文件的路径:

    [root@hdkk-server ~]# vim /etc/postfix/main.cf
    smtpd_tls_cert_file = /etc/postfix/mail.crt
    smtpd_tls_key_file = /etc/postfix/mail.key
    smtpd_tls_security_level = may

    重启 Postfix 服务以使上述更改生效:

    [root@hdkk-server ~]# systemctl restart postfix

    检查 Postfix 邮件队列

    [root@hdkk-server ~]# mailq

    暂未找到可替代extmail的开源软件,所以先做到这里,后期找到了再继续补充该文档

  • 相关阅读:
    《痕迹识人,面试读心》培训总结之一
    傲游与视频网站广告之战的思考
    EMLS项目推进思考
    二级证丢失如何找回
    Mathematica 讲座
    泊松方程解法
    Windows核心编程-作业
    Win7多用户同时登陆
    C语言文件操作类型速查
    openMP的一点使用经验
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/14641715.html
Copyright © 2020-2023  润新知