热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux邮件服务器Postfix详细配置过程

1.系统安装:1)centos4.3选上MAIL组件里的全部。2)hostname:mail.51test.com2。搭建域名服务器DNS:设置mail.51test.com192.168.1.223,并PING、NSLOOKUUP测试。注意:#nmapmail.test.com要看到25、110、143等端口才行。3

1. 系统安装:

1)centos4.3 选上MAIL组件里的全部。
2)hostname: mail.51test.com

2。搭建域名服务器DNS:
设置mail.51test.com ==192.168.1.223,并PING、NSLOOKUUP测试。
注意:#nmap mail.test.com要看到25、110、143等端口才行。

3。设置POSTFIX
[root@sample ~]# vi /etc/postfix/main.cf  ← 编辑Postfix的配置文件
#myhostname = host.domain.tld  ← 找到此行,将等号后面的部分改写为主机名
 ↓
myhostname = sample.centospub.com  ← 变为此状态,设置系统的主机名
#mydomain = domain.tld  ← 找到此行,将等号后面的部分改写为域名
 ↓
mydomain = centospub.com  ← 变为此状态,设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)
#myorigin = $mydomain  ← 找到此行,将行首的#去掉
 ↓
myorigin = $mydomain  ← 变为此状态,将发信地址“@”后面的部分设置为域名(非系统主机名)
inet_interfaces = localhost  ← 找到此行,将“localhost”改为“all”
 ↓
inet_interfaces = all  ← 变为此状态,接受来自所有网络的请求
mydestination = $myhostname, localhost.$mydomain, localhost  ← 找到此行,在行为添加“$mydomain”
 ↓
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain  ← 变为此状态,指定发给本地邮件的域名
#relay_domains = $mydestination  ← 找到此行,将行首的#去掉
 ↓
relay_domains = $mydestination  ← 变为此状态,定义允许转发的域名
#mynetworks = 168.100.189.0/28, 127.0.0.0/8  ← 找到此行,依照自己的内网情况修改
 ↓
mynetworks = 168.100.189.0/28, 127.0.0.0/8  ← 变为此状态,指定内网和本地的IP地址范围
#home_mailbox = Maildir/  ← 找到这一行,去掉行首的#
 ↓
home_mailbox = Maildir/  ← 变为此状态,指定用户邮箱目录
# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server's greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)  ← 找到这一行,接此行添加如下行:
smtpd_banner = $myhostname ESMTP unknow  ← 添加这一行,不显示SMTP服务器的相关信息
在配置文件的文尾,添加如下行:
smtpd_sasl_auth_enable = yes  ← 服务器使用SMTP认证
smtpd_sasl_local_domain = $myhostname  ← 指定SMTP认证的本地域名(主机名)
smtpd_sasl_security_optiOns= noanonymous   ← 不允许匿名的方式认证
smtpd_recipient_restrictiOns= permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
message_size_limit = 15728640  ← 规定邮件最大尺寸为15MB

4。 配置SMTP认证的相关选项
为了提高安全性,我们不将系统用户的密码作为相应用户SMTP认证的密码,而将在后面为用户建立SMTP认证专用的密码。
[root@sample ~]# vi /usr/lib/sasl2/smtpd.conf  ← 编辑SMTP认证的配置文件
pwcheck_method: saslauthd  ← 找到此行,将“saslauthd”改为“auxprop”

pwcheck_method: auxprop  ← 不使用系统用户密码作为用户的SMTP认证密码
[root@sample ~]# vi /etc/sysconfig/saslauthd
MECH=shadow  ← 找到这一行,在前面加#
 ↓
#MECH=shadow  ← 不使用shadow机制
FLAGS=  ← 找到此行,在等号后面添加“sasldb”
 ↓
FLAGS=sasldb   ← 定义认证方式为sasldb2
5。建立用户的邮箱目录
首先建立用户模板下的邮箱目录,以便于建立新用户时,相应用户的邮箱目录自动被建立。
[root@sample ~]# mkdir /etc/skel/Maildir  ← 在用户模板下建立用户邮箱目录
[root@sample ~]# chmod 700 /etc/skel/Maildir  ← 设置用户邮箱目录属性为700

然后再为已经存在的用户建立相应邮箱目录。
[root@sample ~]# mkdir /home/centospub/Maildir  ← 为用户(这里以centospub用户为例)建立邮箱目录
[root@sample ~]# chmod 700 /home/centospub/Maildir  ← 设置该用户邮箱目录属性为700
[root@sample ~]# chown centospub. /home/centospub/Maildir  ← 设置该用户邮箱目录为该用户所有
6。为用户设置SMTP认证密码
[root@sample ~]# saslpasswd2 -u sample.centospub.com -c centospub  ← 为centospub用户设置SMTP认证密码
Password:  ← 在这里输入密码(不会显示)
Again (for verification):  ← 再次输入密码
7。改变SALS的属性及归属
[root@sample ~]# chgrp postfix /etc/sasldb2  ← 将数据库归属改为postfix,
[root@sample ~]# chmod 640 /etc/sasldb2  ← 将数据库属性改为640
8。关闭sendmail服务及设置默认MTA
因为在用Postfix作为SMTP服务器的前提下,我们不准备再用sendmail,所以将sendmail服务关掉,以确保安全及节省系统资源。
[root@sample ~]# /etc/rc.d/init.d/sendmail stop  ← 关闭sendmail服务
Shutting down sendmail:         [ OK ]
Shutting down sm-client:         [ OK ]
[root@sample ~]# chkconfig sendmail off  ← 关闭sendmail自启动
[root@sample ~]# chkconfig --list sendmail  ← 确认sendmail自启动已被关闭(都为off就OK)
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off
9。然后再将默认的MTA设置为Postfix。
[root@sample ~]# alternatives --config mta  ← 设置默认MTA
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail  ← 当前状态:sendmail为默认MTA
 2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2  ← 在这里输入2,使Postfix成为默认MTA
10。最后,启动SMTP认证及Postfix服务,并设置相应服务为自启动。
[root@sample ~]# chkconfig saslauthd on  ← 将SMTP-Auth设置为自启动
[root@sample ~]# chkconfig --list saslauthd  ← 确认SMTP-Auth服务状态
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2~5为on的状态就OK
[root@sample ~]# /etc/rc.d/init.d/saslauthd start  ← 启动SMTP-Auth
Starting saslauthd:           [ OK ]
[root@sample ~]# chkconfig postfix on  ← 将Postfix设置为自启动
[root@sample ~]# chkconfig --list postfix  ← 确认Postfix服务状态
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2~5为on的状态就OK
[root@sample ~]# /etc/rc.d/init.d/postfix start  ← 启动Postfix
Starting postfix:            [ OK ]
至此,就完成了SMTP服务器方面的配置,但目前只具从备客户端通过服务器发送邮件的功能。做为完整的邮件服务器,还需具备从客户端通过POP/IMAP协议接受邮件到本地的功能。
11。POP / IMAP
pop/imap是 MUA 从邮件服务器中读取邮件时使用的协议。其中,与 POP3 是从邮件服务器中下载邮件比起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。这里,我们用 Dovecot 来实现对 POP3 及 IMAP4 等协议支持的邮件接收服务器的搭建。
  Dovecot 是一个比较新的软件,由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。另外,Dovecot 支持多种认证方式,所以在功能方面也比较符合一般的应用。
12。首先,安装 Dovecot
[root@sample ~]# yum -y install dovecot  ← 在线安装 Dovecot
13。然后,修改相应配置文件,配置 Dovecot 。
[root@sample ~]# vi /etc/dovecot.conf  ← 编辑Dovecot 的配置文件
#protocols = imap imaps  ← 找到这一行,将协议设置为imap与pop3
 ↓
protocols = imap pop3  ← 变为此状态
#default_mail_env =  ← 找到这一行,定义邮件目录
 ↓
default_mail_env = maildir:~/Maildir  ← 定义邮件目录为用户目录下的Maildir目录
14。由于 POP3 协议与 IMAP4 协议要分别用到110号和143号端口,所以在启动服务前,配置防火墙,开通这两个端口。
root@sample ~]# vi /etc/sysconfig/iptables  ← 编辑防火墙规则
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT  ← 找到此行,接着添加如下两行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT  ← 允许POP使用的110号端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT  ← 允许IMAP使用的143号端口
[root@sample ~]# /etc/rc.d/init.d/iptables restart  ← 重新启动防火墙,使新的设置生效
Flushing firewall rules:          [ OK ]
Setting chains to policy ACCEPT: filter   [ OK ]
Unloading iptables modules:       [ OK ]
Applying iptables firewall rules:      [ OK ]
15。最后,启动 Dovecot ,并将其设置为自启动。
[root@sample ~]# chkconfig dovecot on  ← 设置Dovecot为自启动
[root@sample ~]# chkconfig --list dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 确认2~5为on的状态就OK
[root@sample ~]# /etc/rc.d/init.d/dovecot start  ← 启动Dovecot服务
Starting Dovecot Imap:        [ OK ]

至此,配合Postfix,就可以通过E-mail客户端软件实现电子邮件的收发了。


推荐阅读
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 惠普战86 Pro G2:新一代商用台式机的性能与设计解析
    惠普战86 Pro G2台式机以其卓越的性能和紧凑的设计,满足了现代商务环境的需求。本文将详细介绍这款商用台式机的各项特点,包括其强大的硬件配置、精美的外观设计以及出色的稳定性和安全性。 ... [详细]
  • 本文探讨了Java中有效停止线程的多种方法,包括使用标志位、中断机制及处理阻塞I/O操作等,旨在帮助开发者避免使用已废弃的危险方法,确保线程安全和程序稳定性。 ... [详细]
  • 最新进展:作为最接近官方声明的信息源,本文吸引了大量关注。若需获取最新动态,请访问:lkhill.com/ccie-version-5-update ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • Hadoop集群搭建:实现SSH无密码登录
    本文介绍了如何在CentOS 7 64位操作系统环境下配置Hadoop集群中的SSH无密码登录,包括环境准备、用户创建、密钥生成及配置等步骤。 ... [详细]
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • 本文详细介绍了如何在CentOS 6.5系统上安装和配置Redis 3.0.6,包括必要的环境准备、软件包下载、编译安装及基本功能测试。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
author-avatar
mobiledu2502885017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有