1. 程式人生 > >在CentOS下用Postfix配置郵件伺服器

在CentOS下用Postfix配置郵件伺服器

在CentOS中,預設的郵件伺服器(SMTP方面)是sendmail,但sendmail有若干的缺點,比如,配置複雜、安全漏洞曾被多次發現- -並且依然存在隱患、郵件傳送速度慢等等,這裡就不再一一敘述。而另一個被廣泛應用於郵件服務方面的“Postfix”的缺點就少得多,或者說它就是針對 於sendmail的缺點,而被設計的。對應sendmail的短處,它在各方面也比較成熟。所以,無特殊要求,這裡不推薦用sendmail來構建郵件 伺服器。本站介紹的郵件伺服器配置方法,也將基於Postfix。

新增MX記錄(這裡假設使用動態域名)

由於MX記錄新增後,可能生效要等待一段時間(通常為數分鐘或數十分鐘,也可能馬上生效),所以在安裝配置前,我們首先為動態域名新增MX記錄。新增方法也會因域名ISP的不同而不同,但大致資訊如下:

mx mail.centospub.com. 10
a mail 伺服器的IP地址

mail為別名,10為優先度。這個別名指向伺服器的IP地址.

確認MX記錄的新增是否生效的方法:

[[email protected] ~]# host -t mx centospub.com

centospub.com mail is handled by 10 mail.centospub.com. ← 確認MX記錄生效

安裝Postfix

然後,安裝Postfix。

[[email protected] ~]# yum -y install postfix ← 線上安裝Postfix

Setting up Install Process
Setting up repositories
dag 100% |=========================| 1.1 kB 00:00
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 28 kB 00:04
update : ################################################## 84/84
Added 84 new packages, deleted 1499 old in 3.44 seconds
primary.xml.gz 100% |=========================| 157 B 00:00
Added 0 new packages, deleted 1499 old in 1.97 seconds
primary.xml.gz 100% |=========================| 26 kB 00:00
extras : ################################################## 102/102
Added 102 new packages, deleted 1499 old in 2.73 seconds
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for postfix to pack into transaction set.
postfix-2.2.10-1.RHEL4.2. 100% |=========================| 40 kB 00:00
—> Package postfix.i386 2:2.2.10-1.RHEL4.2 set to be updated
–> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
postfix i386 2:2.2.10-1.RHEL4.2 base 3.0 M

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 3.0 M
Downloading Packages:
(1/1): postfix-2.2.10-1.R 100% |=========================| 3.0 MB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: postfix ######################### [1/1]

Installed: postfix.i386 2:2.2.10-1.RHEL4.2
Complete!

配置Postfix及相關元件

[1] 對Postfix進行配置。

[[email protected] ~]# 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
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination←(very important)
message_size_limit = 15728640← 規定郵件最大尺寸為15MB

[2] 配置SMTP認證的相關選項

為了提高安全性,我們不將系統使用者的密碼作為相應使用者SMTP認證的密碼,而將在後面為使用者建立SMTP認證專用的密碼。

[[email protected] ~]# vi /usr/lib/sasl2/smtpd.conf← 編輯SMTP認證的配置檔案

pwcheck_method: saslauthd← 找到此行,將“saslauthd”改為“auxprop”

pwcheck_method: auxprop← 不使用系統使用者密碼作為使用者的SMTP認證密碼

[[email protected] ~]# vi /etc/sysconfig/saslauthd

MECH=shadow ← 找到這一行,在前面加#

#MECH=shadow ← 不使用shadow機制

FLAGS= ← 找到此行,在等號後面新增“sasldb”
FLAGS=sasldb ← 定義認證方式為sasldb2

[3] 建立使用者的郵箱目錄

首先建立使用者模板下的郵箱目錄,以便於建立新使用者時,相應使用者的郵箱目錄自動被建立。

[[email protected] ~]# mkdir /etc/skel/Maildir← 在使用者模板下建立使用者郵箱目錄

[[email protected] ~]# chmod 700 /etc/skel/Maildir← 設定使用者郵箱目錄屬性為700

然後再為已經存在的使用者建立相應郵箱目錄。

[[email protected] ~]# mkdir /home/centospub/Maildir ← 為使用者(這裡以centospub使用者為例)建立郵箱目錄

[[email protected] ~]# chmod 700 /home/centospub/Maildir ← 設定該使用者郵箱目錄屬性為700

[[email protected] ~]# chown centospub. /home/centospub/Maildir ← 設定該使用者郵箱目錄為該使用者所有

[4] 為使用者設定SMTP認證密碼

[[email protected] ~]# saslpasswd2 -u sample.centospub.com -c centospub ← 為centospub使用者設定SMTP認證密碼

Password: ← 在這裡輸入密碼(不會顯示)
Again (for verification): ← 再次輸入密碼

[5] 改變SALS的屬性及歸屬

[[email protected] ~]# chgrp postfix /etc/sasldb2 ← 將資料庫歸屬改為postfix,

[[email protected] ~]# chmod 640 /etc/sasldb2 ← 將資料庫屬性改為640

[6] 關閉sendmail服務及設定預設MTA

因為在用Postfix作為SMTP伺服器的前提下,我們不準備再用sendmail,所以將sendmail服務關掉,以確保安全及節省系統資源。

[[email protected] ~]# /etc/rc.d/init.d/sendmail stop ← 關閉sendmail服務

Shutting down sendmail:         [ OK ]
Shutting down sm-client:         [ OK ]

[[email protected] ~]# chkconfig sendmail off ← 關閉sendmail自啟動

[[email protected] ~]# chkconfig –list sendmail ← 確認sendmail自啟動已被關閉(都為off就OK)
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:off

然後再將預設的MTA設定為Postfix。

[[email protected] ~]# 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

啟動相應服務

最後,啟動SMTP認證及Postfix服務,並設定相應服務為自啟動。

[[email protected] ~]# chkconfig saslauthd on ← 將SMTP-Auth設定為自啟動

[[email protected] ~]# chkconfig –list saslauthd ← 確認SMTP-Auth服務狀態
saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 確認2~5為on的狀態就OK

[[email protected] ~]# /etc/rc.d/init.d/saslauthd start ← 啟動SMTP-Auth

Starting saslauthd:           [ OK ]

[[email protected] ~]# chkconfig postfix on ← 將Postfix設定為自啟動

[[email protected] ~]# chkconfig –list postfix ← 確認Postfix服務狀態
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← 確認2~5為on的狀態就OK

[[email protected] ~]# /etc/rc.d/init.d/postfix start ← 啟動Postfix

Starting postfix:            [ OK ]

至此,就完成了SMTP伺服器方面的配置,但目前只具從備客戶端通過伺服器傳送郵件的功能。做為完整的郵件伺服器,還需具備從客戶端通過POP/IMAP協議接受郵件到本地的功能。POP/IMAP伺服器的構建請參見下一節

相關推薦

CentOSPostfix配置郵件伺服器

在CentOS中,預設的郵件伺服器(SMTP方面)是sendmail,但sendmail有若干的缺點,比如,配置複雜、安全漏洞曾被多次發現- -並且依然存在隱患、郵件傳送速度慢等等,這裡就不再一一敘述。而另一個被廣泛應用於郵件服務方面的“Postfix”的缺點就少得多,或

阿里雲CentOS Linux伺服器postfix搭建郵件伺服器

注:本文的郵件伺服器只用於傳送郵件,也就是STMP伺服器。 一、準備工作 1. 為郵件伺服器新增DNS解析 雖然不加DNS解析也能把郵件發出去,但會被大多數郵件伺服器當作垃圾郵件。根據我們的實際經驗,需要新增三條DNS解析記錄:A記錄、MX記錄、TXT記錄。比如域名

windowsnginx配置https伺服器

1.安裝nginx 先到nginx官網下在nginx http://nginx.org/en/download.html 將下載好的檔案解壓出來修改檔名為 nginx ,然後拷貝到C盤下,目錄如下: 執行 nginx start nginx 驗證 在

Redhat配置郵件伺服器postfix+dovecot)

本實驗在redhat虛擬機器中實現:(虛擬機器通過橋接方式連線PC) PC IP:192.168.0.102  閘道器:192.168.0.1(路由器)DNS:192.168.0.1 Redhat IP:192.168.0.105  閘道器:192.168.0.1(路由器

LINUX 配置郵件伺服器過程(實踐)

配置 sendmail.mc : 開啟/etc/mail/sendmail.mc檔案, 找到: dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl dnl define(`confAUTH_MECHANISMS', `EXTE

CentOS利用postfix搭建郵件伺服器

之前我用nodemailer通過163郵箱來發送郵件,不過沒過幾天就一直ETIMEDOUT,不知道什麼原因,想著還是自己搭一個來發郵件可能靠譜點(flag?) 安裝postfix CentOS 7 自帶了postfix服務,在/etc/postfix 目錄下

Linux CentOS安裝、配置mysql數據庫

config 得到 操作 program except naconda 服務端 強力 fig 假設要在Linux上做j2ee開發。首先得搭建好j2ee的開發環境。包含了jdk、tomcat、eclipse的安裝(這個在之前的一篇隨筆中已經有具體解說了Linux學習之Ce

Centos戶模式和虛擬機的克隆

centos7用戶模式和兩機器互聯Centos7的運行級別查看運行級別使用如下命令ls -l /usr/lib/systemd/system/runlevel*target0:關機1:單用戶模式2:多用戶模式3:多用戶模式4:多用戶模式5:圖形界面6:重啟使用命令:init0為關機、init6為重啟1.13

CentOS RabbitMQ安裝配置:

net mini rtu 配置 list /var/ 解析 .rpm -a CentOS RabbitMQ rpm 安裝方法: 系統環境:CentOS6IP地址:10.100.62.41 1.erlang安裝: erlang下載地址: http://www.rabbitm

Centos戶及戶組管理命令

centos groupadd useradd 閱讀Linux書籍時,常常會看到作者提示“日常使用不要直接使用root賬號,而應用一般賬號”。那麽在命令窗口,常用的與用戶管理相關的命令最常見的有如下一些:新增用戶useradd UserName在運行上面命令後,一般需要用passwd UserNa

openvas在centosyum安裝筆記

openvas在公司的生產網段我們已經部署了啟明星辰的掃描器但是在公司的辦公網段,我們部署了開源漏洞掃描器openvas首先需要安裝atomic選擇yum install openvas安裝完畢後選擇 openvas-setup此時安裝完畢訪問https:/ip:9392,可以看到登陸畫面但是嘗試登陸會報後臺

CentOS安裝與配置Maven

export http utf uri 阿裏 cor redhat odin ngs 安裝Maven 當前系統 [root@141 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 下載 h

CentOS的apache配置支持php

.html 支持 lib 文件 centos .so php5 col pin 修改Apache的配置文件httpd.conf(vi /etc/httpd/conf/httpd.conf) DirectoryIndex index.html index.php #添加in

CentOS 6.3安裝配置LAMP伺服器 (Apache+PHP5+MySQL)

準備篇: 1、配置防火牆,開啟80埠、3306埠 vi /etc/sysconfig/iptables -A INPUT -mstate --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允許80埠通過防火牆 -A INPUT -m state --st

搭建Postfix-Devocot郵件伺服器詳細步驟

環境準備:CentOS6.5伺服器,安裝了MySQL5.6.23 指令碼準備:系統報警shell指令碼 1.克隆之前安裝好的CentOS系統,注意需要修改網絡卡配置資訊 注意點:(1)修改網絡卡的引數HWaddr為ifconfig -a 出現的一樣(原HWaddr是之前克隆的,沒有更

centoscmatrix做出×××螢幕程式碼雨效果

文章出處: http://blog.51cto.com/5232821/2146115 1、下載cmatrix-1.2a.tar.gz檔案 [[email protected] ~]# wget https://jaist.dl.sourceforge.net/project/

CentOS LNMP 環境配置

lock rom stc share ebo centos avi roo yum 源 安裝配置 Nginx 安裝配置 MySQL 安裝配置 PHP Nginx 與 PHP-FPM 集成 環境配置驗證 LNMP 環境代表 Linu

CentOSyum命令安裝jdk

一.使用yum命令安裝1.檢視是否已安裝JDK,解除安裝[plain] view plain copy[[email protected] ~]# yum list installed |grep java &

Centosalternatives命令切換各個版本的jdk的方法

自己通過rpm安裝了個jdk1.8,預設安裝在/usr/java中,應除錯需要,在伺服器的/usr/local/java目錄裡安裝jdk-6u25-linux-x64.bin,預設建立/usr/local/java/jdk1.6.0_25,需要切換著使用JDK執行如下命令: [[email

hadoop在CentOS的安裝配置

關閉 ssh 集群配置 cat ati shuffle manage map core 版本:CentOS-6.8-x86_64-minimal,hadoop2.6.4,jdk1.7.0 首先把jdk、hadoop壓縮包下載發送到CentOS下並解壓 下載發送不多贅