如何轻松掌握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系统中,查看CPU核数是系统管理、性能优化和资源分配的基础操作,无论是部署应用、排查性能瓶颈,还是调整虚拟机配置,准确获取CPU信息都至关重要,以下是多种经过验证的方法,适用于不同发行版(如Ubuntu、CentOS、Debian等),每种方法均附详细说明和示例,方法1:lscpu命令(推荐)最权威……

    2025年6月16日
    10900
  • Linux中如何打印当前进程的PID?

    在Linux系统中,进程标识符(PID)是操作系统为每个正在运行的进程分配的唯一数字编号,用于区分和管理不同进程,获取或打印PID是系统管理和脚本开发中的常见需求,本文将详细介绍Linux中打印PID的多种方法,涵盖命令行工具、系统文件及编程接口等场景,使用基础命令行工具打印PIDps命令:查看进程状态并提取P……

    2025年9月15日
    6900
  • Linux下修改权限时遇到问题有哪些正确处理方法步骤?

    在Linux系统中,权限管理是保障系统安全与数据隔离的核心机制,通过控制不同用户对文件和目录的访问权限,可以有效防止未授权操作,本文将详细讲解Linux下权限修改的基础知识、核心命令、特殊权限设置及常见场景实践,帮助用户全面掌握权限管理方法,Linux权限基础:理解权限的构成Linux权限围绕“文件类型”和“用……

    2025年9月21日
    8100
  • Linux系统中如何找到SVN的安装位置和相关命令?

    在Linux系统中,Subversion(简称SVN)是一款广泛使用的版本控制工具,用于管理文件和目录的变更,若要在Linux系统中确认是否已安装SVN客户端或进行安装,可通过以下步骤操作,具体涵盖检查安装状态、安装方法及基本使用验证,检查系统是否已安装SVN客户端在开始使用SVN前,需先确认系统中是否已安装S……

    2025年9月8日
    6900
  • Linux系统如何登录FTP服务器?新手必学的详细操作步骤指南

    在Linux系统中,登录FTP服务器是常见的文件传输操作,通常通过命令行工具实现,以下是详细的操作步骤和注意事项,涵盖安装客户端、连接方式、常用命令及问题处理等内容,准备工作:安装FTP客户端工具大多数Linux系统默认未安装FTP客户端,需根据发行版手动安装,以主流系统为例:Ubuntu/Debian:使用a……

    2025年9月30日
    5800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信