如何轻松掌握bash提升工作效率?

在Linux系统中开启SMTP服务器是搭建邮件服务的关键步骤,常用于网站通知、事务邮件等场景,以下是基于Postfix(Linux最常用的邮件传输代理)的详细操作流程,兼顾安全性与易用性,所有命令需以root权限执行。
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # CentOS/RHEL

**检查主机名**  
   确保主机名解析正确(邮件服务依赖域名):
   ```bash
   hostname -f  # 输出应为完整域名(如 mail.example.com)

若未设置,编辑/etc/hostname/etc/hosts文件。


安装与配置Postfix

安装Postfix

sudo apt install postfix mailutils  # Debian/Ubuntu
sudo yum install postfix cyrus-sasl-plain  # CentOS/RHEL

安装过程中选择 “Internet Site”,并输入邮件域名(如 example.com)。

基础配置

编辑主配置文件:

sudo nano /etc/postfix/main.cf

修改以下参数:

myhostname = mail.example.com     # 服务器完整域名
mydomain = example.com            # 邮件域名
myorigin = $mydomain              # 外发邮件域名
inet_interfaces = all             # 监听所有网络接口
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
relayhost =                       # 留空(直接发送邮件)

启动服务

sudo systemctl restart postfix
sudo systemctl enable postfix

测试SMTP服务

本地发送测试邮件

echo "Test email body" | mail -s "SMTP Test" your-email@example.com

检查邮件是否送达(查看收件箱或垃圾箱)。

使用Telnet手动测试

telnet localhost 25

依次输入(替换your-email@example.com):

EHLO localhost
MAIL FROM: test@example.com
RCPT TO: your-email@example.com
DATA
Subject: Telnet Test
This is a manual SMTP test.
.  # 单独一行输入英文句点结束
QUIT

安全加固(必做步骤)

防火墙放行SMTP

sudo ufw allow 25/tcp  # 开放SMTP端口
sudo ufw allow 587/tcp # 提交端口(TLS加密)

启用SASL认证(防未授权转发)

安装SASL工具:

sudo apt install libsasl2-modules   # Debian/Ubuntu
sudo yum install cyrus-sasl-plain   # CentOS/RHEL

编辑SASL配置:

sudo nano /etc/postfix/sasl/smtpd.conf

添加:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN

创建认证用户:

sudo saslpasswd2 -c -u `postconf -h mydomain` username  # 按提示设置密码
sudo chown postfix /etc/sasldb2      # 授权Postfix访问

main.cf中启用认证:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_relay_restrictions = permit_sasl_authenticated, reject_unauth_destination

配置TLS加密(Let’s Encrypt证书示例)

安装Certbot:

sudo apt install certbot   # Debian/Ubuntu
sudo yum install certbot   # CentOS/RHEL

申请证书:

sudo certbot certonly --standalone -d mail.example.com

main.cf中启用TLS:

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem

常见问题解决

  • 邮件被拒收
    检查域名SPF/DKIM记录(需在DNS添加TXT记录),使用工具如dig TXT example.com验证。
  • 端口25被屏蔽
    联系云服务商解封(如AWS、阿里云需提交工单)。
  • SASL认证失败
    检查/var/log/mail.log日志,确认sasldb2文件权限为640
  • 高延迟发送
    main.cf添加disable_dns_lookups = yes(关闭反向DNS验证)。

维护建议

  1. 日志监控
    tail -f /var/log/mail.log  # 实时查看邮件日志
  2. 定期更新
    sudo apt upgrade postfix    # Debian/Ubuntu
    sudo yum update postfix     # CentOS/RHEL
  3. 备份配置
    备份/etc/postfix目录,避免配置丢失。

引用说明

  • Postfix官方文档:http://www.postfix.org/documentation.html
  • Let’s Encrypt证书指南:https://certbot.eff.org/instructions
  • SASL配置参考:Cyrus SASL Library Documentation
  • 安全实践依据:RFC 3207 (SMTP over TLS), RFC 4954 (SMTP Authentication)
    本文基于Ubuntu 22.04/CentOS 7实测,适用于主流Linux发行版。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9149.html

(0)
酷番叔酷番叔
上一篇 2025年7月29日 07:06
下一篇 2025年7月29日 07:22

相关推荐

  • Linux下如何彻底卸载LAMP环境?

    在Linux系统中卸载LAMP(Linux+Apache+MySQL+PHP)环境需要分步骤、分组件进行操作,同时需注意备份重要数据并确认依赖关系,避免误删其他系统组件,以下是针对主流发行版(Ubuntu/Debian和CentOS/RHEL)的详细卸载流程,涵盖Apache、MySQL、PHP及相关依赖的清理……

    2025年9月28日
    11900
  • 在Linux操作系统中,如何查看已安装的GCC编译器的具体版本信息呢?

    在Linux系统中,GCC(GNU Compiler Collection)是广泛使用的编译器套件,用于将C、C++、Objective-C等源代码编译为可执行文件,查看GCC版本是开发过程中常见的需求,无论是确认编译器兼容性、调试代码还是满足项目依赖,都需要准确掌握当前系统安装的GCC版本,本文将详细介绍多种……

    2025年9月22日
    15500
  • Linux如何固定IP地址?

    在Linux系统中,固定IP地址是服务器管理、网络服务部署等场景下的基础需求,动态IP虽然方便,但可能导致远程连接中断、服务访问不稳定等问题,本文将以主流Linux发行版(如Ubuntu/Debian和CentOS/RHEL)为例,详细说明固定IP的配置方法,包括传统配置文件方式和现代网络管理工具的使用,并附上……

    2025年9月19日
    16400
  • Linux下tar包如何安装?

    在Linux系统中,tar包通常指通过tar工具打包的源码压缩包(如.tar.gz、.tar.bz2、.tar.xz等),与二进制包(如.deb、.rpm)不同,tar包需要用户手动编译安装,过程涉及解压、配置、编译、安装等步骤,适合需要自定义功能或适配特定系统的场景,以下是详细安装流程:安装前准备:编译环境依……

    2025年9月15日
    13900
  • Linux下如何查看FTP服务的运行状态?

    在Linux系统中,FTP(File Transfer Protocol)是一种常用的文件传输协议,广泛应用于文件共享、数据备份等场景,正确查看和管理FTP服务是系统管理员的基本技能,本文将详细介绍在Linux系统中查看FTP服务的多种方法,包括服务运行状态、端口监听情况、配置文件内容、日志信息及用户权限等,并……

    2025年9月24日
    14900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信