日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux下smtp服务器搭建

發(fā)布時(shí)間:2023/12/14 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下smtp服务器搭建 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux下smtp服務(wù)器搭建

  • postfix安裝和配置
    • postfix安裝
    • 安裝sasldb、saslauthd
    • 配置postfix并啟用smtp
    • 查看postfix配置文件的所有配置項(xiàng)
    • sasldb2建立smtp用戶和密碼
    • 測(cè)試postfix配置文件并啟動(dòng)postfix
  • 配置DNS服務(wù)器
    • 編輯主配置文件
    • 修改區(qū)域配置文件
    • 編輯區(qū)域數(shù)據(jù)配置文件
    • 創(chuàng)建反向區(qū)域數(shù)據(jù)配置文件
    • 啟動(dòng)DNS服務(wù)
    • 測(cè)試smtp服務(wù)器是否正常使用
  • client端配置發(fā)件人
    • 配置smtp服務(wù)器和默認(rèn)發(fā)件人
    • 配置DNS
    • 發(fā)件命令

postfix安裝和配置

參考 https://blog.jjonline.cn/linux/185.html 作者:晶晶
使用postfix搭建smtp服務(wù)器,主要用于測(cè)試防火墻垃圾郵件識(shí)別

postfix安裝

#開(kāi)始yum安裝前 更換yum源 建議aliyun源 參考:https://blog.jjonline.cn/linux/171.html
#備份原先的yum源信息

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

#從阿里云鏡像站下載centos6的repo

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo

#最后yum重新生成緩存

yum makecache
yum remove sendmail #卸載sendmail
yum remmove postfix #卸載postfix
yum install postfix #重新安裝postfix

#yum安裝會(huì)自動(dòng)建立postfix用戶組和用戶名

yum install crontabs #因?yàn)樾遁dpostfix的時(shí)候系統(tǒng)定時(shí)服務(wù)也被卸載 核心服務(wù) 也同步安裝下

安裝sasldb、saslauthd

yum install cyrus-sasl* #提供smtp的虛擬賬戶和密碼服務(wù)

#sasldb2包含在saslauthd當(dāng)中 就不要再問(wèn)為什么沒(méi)有安裝sasldb2的shell代碼了
#當(dāng)前mta查看
alternatives --display mta

#設(shè)置mta
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

#再次查看mta
alternatives --display mta

#輸出結(jié)果最后一行會(huì)有類似如下的提示:mta即設(shè)置完畢
#Current `best’ version is /usr/sbin/sendmail.postfix.

postfix開(kāi)機(jī)啟動(dòng)設(shè)置,因?yàn)椴捎胹asldb2提供postfix的smtp賬戶和密碼,無(wú)需saslauthd服務(wù)運(yùn)行,故而saslauthd服務(wù)不用啟動(dòng)—看吧,使用sasldb2還減少資源占用:

chckconfig postfix on

配置postfix并啟用smtp

postfix配置文件在/etc/postfix目錄下,主要修改的配置文件為:/etc/postfix/main.cf

vi /etc/postfix/main.cf
#vi編輯postfix配置文件
#找到如下配置項(xiàng)酌情修改

myhostname = mail.jjonline.com.cn #postfix主機(jī)名,修改成你的域名 此項(xiàng)需要添加A記錄并指向postfix所在主機(jī)公網(wǎng)IPmydomain = jjonline.com.cn #域名myorigin = $mydomain #本機(jī)postfix的郵箱域名后最 此項(xiàng)默認(rèn)值使用myhostname #此處使用了前項(xiàng)mydomain 也就是說(shuō)本機(jī)postfix郵箱后綴為:@jjonline.com.cninet_interfaces = localhost #指定postfix系統(tǒng)監(jiān)聽(tīng)的網(wǎng)絡(luò)接口 此處必須是localhost或127.0.0.1或內(nèi)網(wǎng)ip #若注釋或填入公網(wǎng)ip 服務(wù)器的25端口將對(duì)公網(wǎng)開(kāi)放 #默認(rèn)值為all 即監(jiān)聽(tīng)所有網(wǎng)絡(luò)接口 #此項(xiàng)指定localhost后 本機(jī)postfix就只能發(fā)郵件不能接收郵件inet_protocols = ipv4 #網(wǎng)絡(luò)協(xié)議 ipv6在國(guó)內(nèi)還不怎么普及 這里ipv4即可mydestination = $myhostname, localhost.$mydomain, localhost #指定postfix接收郵件時(shí)收件人的域名,換句話說(shuō),也就是你的postfix系統(tǒng)要接收什么樣的郵件。 #此項(xiàng)配置中$myhostname表示postfix接受@$myhostname為后綴的郵箱的郵件 逗號(hào)分割支持指多項(xiàng)#此項(xiàng)默認(rèn)值使用myhostnamelocal_recipient_maps = #此項(xiàng)制定接收郵件的規(guī)則 可以是hash文件 此項(xiàng)對(duì)本次配置無(wú)意義 可以直接注釋mynetworks = 42.121.107.189, 10.200.9.xxx, 127.0.0.1 #指定你所在的網(wǎng)絡(luò)的網(wǎng)絡(luò)地址 #鄙人生產(chǎn)服務(wù)器公網(wǎng)IP42.121.107.189、內(nèi)網(wǎng)ip10.200.9.xxx(第四位做了隱藏)、以及l(fā)ocalhost的ip127.0.0.1 #請(qǐng)依據(jù)實(shí)際情況修改 #如果配置不正確發(fā)送郵件時(shí)會(huì)報(bào)Relay access denied,配置信任的接收的ip地址smtpd_banner = JJonline.Cn ESMTP Server #指定MUA通過(guò)smtp連接postfix時(shí)返回的header頭信息 #原始配置附帶有postfix版本號(hào) 去掉即可,此項(xiàng)酌情處理#SMTP Config #有的配置文件中沒(méi)有顯示下面的命令,手打敲上即可 broken_sasl_auth_clients = ye #指定postfix兼容MUA使用不規(guī)則的smtp協(xié)議--主要針對(duì)老版本的outlook 此項(xiàng)對(duì)于本次配置無(wú)意義smtpd_client_restrictions = permit_sasl_authenticated #指定可以向postfix發(fā)起SMTP連接的客戶端的主機(jī)名或ip地址 #此處permit_sasl_authenticated意思是允許通過(guò)sasl認(rèn)證(也就是smtp鏈接時(shí)通過(guò)了賬號(hào)、密碼效驗(yàn)的用戶)的所有用戶smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination #發(fā)件人在執(zhí)行RCPT TO命令時(shí)提供的地址進(jìn)行限制規(guī)則 此處照搬復(fù)制即可smtpd_sasl_auth_enable = yes #指定postfix使用sasl驗(yàn)證 通俗的將就是啟用smtp并要求進(jìn)行賬號(hào)、密碼效驗(yàn)smtpd_sasl_local_domain = $mydomain #指定SMTP認(rèn)證的本地域名 本次配置可以使用 smtpd_sasl_local_domain = '' 或干脆注釋掉 默認(rèn)為空smtpd_sasl_security_options = noanonymous #取消smtp的匿名登錄 此項(xiàng)默認(rèn)值為noanonymous smtp若能匿名登錄危害非常大 此項(xiàng)請(qǐng)務(wù)必指定為noanonymousmessage_size_limit = 5242880 #指定通過(guò)postfix發(fā)送郵件的體積大小 此處表示5Msmtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination #防止出現(xiàn)Relay access denied報(bào)錯(cuò)

查看postfix配置文件的所有配置項(xiàng)

postconf #不帶任何命令參數(shù) 即可輸出所有postfix配置項(xiàng)以及默認(rèn)值

sasldb2建立smtp用戶和密碼

某種意義上來(lái)講:smtp的賬戶密碼建立也就是建立郵箱賬戶(類似jjonline@jjonline.cn的郵箱地址)。

#配置postfix啟用sasldb2作為smtp的賬號(hào)秘密效驗(yàn)方式
#編輯通過(guò)sasl啟用smtp賬號(hào)密碼效驗(yàn)的配置

vi /etc/sasl2/smtpd.conf #vi寫入或編輯內(nèi)容如下:

pwcheck_method: auxpropauxprop_plugin: sasldbmech_list: plain login CRAM-MD5 DIGEST-MD5

#這里需要注意的是:這個(gè)配置文件的位置是64位機(jī)器上的,32位機(jī)器應(yīng)該在:/usr/lib/sasl2/smtpd.conf

#創(chuàng)建smtp賬號(hào)

saslpasswd2 -c -u postconf -h mydomain test #回車會(huì)要求輸入密碼,連續(xù)兩次
#表示創(chuàng)建test@$mydomain的郵箱賬號(hào)(也是smtp的賬號(hào))和密碼
#本例就是創(chuàng)建test@jjonline.com.cn賬號(hào)和密碼
#此處注意的是smtp登錄用的賬號(hào)并不是單純的用戶名 而是整個(gè)郵箱地址字符串
#假設(shè)此處設(shè)置的smtp賬號(hào)test@jjonline.com.cn密碼為test123 下方測(cè)試時(shí)要用到

#查看sasldb2的用戶和密碼

sasldblistusers2
#此命令進(jìn)用戶查看sasldb的用戶情況
#此命令回車后會(huì)輸出諸如這樣的內(nèi)容:test@jjonline.com.cn: userPassword

#每次添加smtp用戶完畢之后需重啟postfix或reload

測(cè)試postfix配置文件并啟動(dòng)postfix

#測(cè)試postfix配置文件
service postfix check
#沒(méi)有問(wèn)題的話會(huì)返回著色[ok]字樣
#啟動(dòng)postfix
service postfix start
#設(shè)置postfix開(kāi)機(jī)啟動(dòng)
chkconfig postfix on
#更改sasldb2數(shù)據(jù)的權(quán)限,讓postfix可以讀取
chmod 755 /etc/sasldb2

配置DNS服務(wù)器

參考https://blog.51cto.com/12227558/2074095 作者:0行云流水0
#安裝DNS服務(wù)
yum install bind -y

編輯主配置文件

#主要修改
listen-on port 53 { 10.180.X.X; };#修改自己DNS的ip,這里是10.180.X.X的ip,為linux的管理ip

options {listen-on port 53 { 10.180.X.X; };listen-on-v6 port 53 { ::1; };directory "/var/named";dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";recursing-file "/var/named/data/named.recursing";secroots-file "/var/named/data/named.secroots";allow-query { any; };

#檢查語(yǔ)法錯(cuò)誤,沒(méi)有提示表示沒(méi)有語(yǔ)法錯(cuò)誤
named-checkconf

修改區(qū)域配置文件

vi /etc/named.rfc1912.zones
#根據(jù)自己實(shí)際拓?fù)渑渲?#xff0c;這里的linux pc為多網(wǎng)卡pc,根據(jù)拓?fù)湫枰虼伺渲玫膇p為其他網(wǎng)卡的ip
#這里的域名為上面smtp服務(wù)器域名
#下面配置請(qǐng)手動(dòng)自己添加

zone "jjonline.com.cn" IN {type master;file "jjonline.com.cn.zone"; }; zone "44.60.45.209.in-addr.arpa"{#注意這里的ip為反向ip,實(shí)際的ip為209.45.60.44type master;file "jjonline.com.cn.local"; };

#檢查語(yǔ)法錯(cuò)誤,沒(méi)有提示表示沒(méi)有語(yǔ)法錯(cuò)誤
named-checkconf

編輯區(qū)域數(shù)據(jù)配置文件

cd /var/named
cp -p named.localhost jjonline.com.cn.zone
#創(chuàng)建正向區(qū)域數(shù)據(jù)配置文件(注意,由于我是復(fù)制另一個(gè)樣式文件,復(fù)制文件時(shí)必須加“-P”,表示復(fù)制過(guò)來(lái)的時(shí)候文件權(quán)限保持不變)

#編輯正向區(qū)域數(shù)據(jù)配置文件
vi jjonline.com.cn.zone
#手動(dòng)修改NS MX和IN A三條,注意域名后面有一個(gè)點(diǎn)

$TTL 1D @ IN SOA @ rname.invalid. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS mail.jjonline.com.cn.MX 10 mail.jjonline.com.cn. mail IN A 209.45.60.44

創(chuàng)建反向區(qū)域數(shù)據(jù)配置文件

cp -p named.localhost jjonline.com.cn.local
vi jjonline.com.cn.local
#手動(dòng)修改NS MX和PTR三條,注意域名后面有一個(gè)點(diǎn)

$TTL 1D @ IN SOA ly6118.com.cn. rname.invalid. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS mail.jjonline.com.cn.MX 10 mail.jjonline.com.cn. 10 PTR mail.jjonline.com.cn.

#檢查語(yǔ)法錯(cuò)誤,沒(méi)有提示表示沒(méi)有語(yǔ)法錯(cuò)誤
named-checkconf

啟動(dòng)DNS服務(wù)

#啟動(dòng)命令
systemctl start named

#設(shè)置開(kāi)機(jī)啟動(dòng)
systemctl enable named

#設(shè)置服務(wù)器域名
vi /etc/resolv.conf

原本配置域名為114.114.114.114
把新建的DNS服務(wù)器域名添加到第一條,不然解析不了,不影響其他正常上網(wǎng)活動(dòng)

nameserver 10.180.X.X
nameserver 114.114.114.114

#解析域名
nslookup mail.jjonline.com.cn
#能夠正常解析出域名和ip即可

測(cè)試smtp服務(wù)器是否正常使用

telnet mail.jjonline.com.cn 25

#可以通過(guò)查看mail日志確定是否發(fā)送成功
vi /var/log/maillog

client端配置發(fā)件人

client端仍然使用linux pc,也可以使用windows 直接telnet mail.jjonline.com.cn 25注意要配置域名解析
這里client端使用mailx
參考https://blog.csdn.net/liang19890820/article/details/53115334 作者:一去丶二三里
#安裝mailx
yum install -y mailx

配置smtp服務(wù)器和默認(rèn)發(fā)件人

#smtp協(xié)議是郵件發(fā)件協(xié)議,所有發(fā)出去的郵件都會(huì)先經(jīng)過(guò)smtp server,然后再轉(zhuǎn)發(fā)給對(duì)應(yīng)的收件服務(wù)器,再轉(zhuǎn)發(fā)給對(duì)應(yīng)的收件人

vi /etc/mail.rc
#在文件末尾添加以下信息

set bsdcompat set from=test@jjonline.com.cn set smtp=mail.jjonline.com.cn set smtp-auth-user=test@jjonline.com.cn set smtp-auth-password=******* set smtp-auth=login

配置DNS

vi /etc/resolv.conf
在第一條添加
nameserver 10.180.X.X
#ip為之前smtp server搭建的DNS服務(wù)器IP,要確保路由可達(dá),不然很有可能解析不出來(lái)smtp server的域名

發(fā)件命令

#其中 echo 后面的是郵件的正文
echo “郵件正文” | mail -s “郵件主題” 123456@qq.com
#以文件 file.txt 的內(nèi)容為郵件正文發(fā)送
cat file.txt | mail -s “郵件主題” 123456@qq.com

#這里發(fā)送簡(jiǎn)單郵件
echo “this is a test mail,thks” | mail -v -s “test mail” test1@126.com

#在smtp server上通過(guò)查看日志可以看到是否發(fā)送成功
#要想在126等郵箱中收到可以參考https://www.cnblogs.com/ilanni/p/5294611.html

#本次smtp server搭建主要是用于測(cè)試經(jīng)過(guò)防火墻能否識(shí)別垃圾郵件,由于大多商用郵件服務(wù)器比如126等都有反垃圾郵件功能,因此這里不關(guān)注是否收件人是否收到郵件,主要關(guān)注發(fā)件人群發(fā)郵件,經(jīng)過(guò)防火墻被識(shí)別為垃圾郵件,并阻斷發(fā)件人和smtp server之間的連接。

總結(jié)

以上是生活随笔為你收集整理的linux下smtp服务器搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。