linux下smtp服务器搭建
linux下smtp服務器搭建
- postfix安裝和配置
- postfix安裝
- 安裝sasldb、saslauthd
- 配置postfix并啟用smtp
- 查看postfix配置文件的所有配置項
- sasldb2建立smtp用戶和密碼
- 測試postfix配置文件并啟動postfix
 
- 配置DNS服務器
- 編輯主配置文件
- 修改區域配置文件
- 編輯區域數據配置文件
- 創建反向區域數據配置文件
- 啟動DNS服務
- 測試smtp服務器是否正常使用
 
- client端配置發件人
- 配置smtp服務器和默認發件人
- 配置DNS
- 發件命令
 
postfix安裝和配置
參考 https://blog.jjonline.cn/linux/185.html 作者:晶晶
 使用postfix搭建smtp服務器,主要用于測試防火墻垃圾郵件識別
postfix安裝
#開始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安裝會自動建立postfix用戶組和用戶名
yum install crontabs #因為卸載postfix的時候系統定時服務也被卸載 核心服務 也同步安裝下
安裝sasldb、saslauthd
yum install cyrus-sasl* #提供smtp的虛擬賬戶和密碼服務
#sasldb2包含在saslauthd當中 就不要再問為什么沒有安裝sasldb2的shell代碼了
 #當前mta查看
 alternatives --display mta
#設置mta
 /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
#再次查看mta
 alternatives --display mta
#輸出結果最后一行會有類似如下的提示:mta即設置完畢
 #Current `best’ version is /usr/sbin/sendmail.postfix.
postfix開機啟動設置,因為采用sasldb2提供postfix的smtp賬戶和密碼,無需saslauthd服務運行,故而saslauthd服務不用啟動—看吧,使用sasldb2還減少資源占用:
chckconfig postfix on
配置postfix并啟用smtp
postfix配置文件在/etc/postfix目錄下,主要修改的配置文件為:/etc/postfix/main.cf
vi /etc/postfix/main.cf
 #vi編輯postfix配置文件
 #找到如下配置項酌情修改
查看postfix配置文件的所有配置項
postconf #不帶任何命令參數 即可輸出所有postfix配置項以及默認值
sasldb2建立smtp用戶和密碼
某種意義上來講:smtp的賬戶密碼建立也就是建立郵箱賬戶(類似jjonline@jjonline.cn的郵箱地址)。
#配置postfix啟用sasldb2作為smtp的賬號秘密效驗方式
 #編輯通過sasl啟用smtp賬號密碼效驗的配置
vi /etc/sasl2/smtpd.conf #vi寫入或編輯內容如下:
pwcheck_method: auxpropauxprop_plugin: sasldbmech_list: plain login CRAM-MD5 DIGEST-MD5#這里需要注意的是:這個配置文件的位置是64位機器上的,32位機器應該在:/usr/lib/sasl2/smtpd.conf
#創建smtp賬號
saslpasswd2 -c -u postconf -h mydomain test #回車會要求輸入密碼,連續兩次
 #表示創建test@$mydomain的郵箱賬號(也是smtp的賬號)和密碼
 #本例就是創建test@jjonline.com.cn賬號和密碼
 #此處注意的是smtp登錄用的賬號并不是單純的用戶名 而是整個郵箱地址字符串
 #假設此處設置的smtp賬號test@jjonline.com.cn密碼為test123 下方測試時要用到
#查看sasldb2的用戶和密碼
sasldblistusers2
 #此命令進用戶查看sasldb的用戶情況
 #此命令回車后會輸出諸如這樣的內容:test@jjonline.com.cn: userPassword
#每次添加smtp用戶完畢之后需重啟postfix或reload
測試postfix配置文件并啟動postfix
#測試postfix配置文件
 service postfix check
 #沒有問題的話會返回著色[ok]字樣
 #啟動postfix
 service postfix start
 #設置postfix開機啟動
 chkconfig postfix on
 #更改sasldb2數據的權限,讓postfix可以讀取
 chmod 755 /etc/sasldb2
配置DNS服務器
參考https://blog.51cto.com/12227558/2074095 作者:0行云流水0
 #安裝DNS服務
 yum install bind -y
編輯主配置文件
#主要修改
 listen-on port 53 { 10.180.X.X; };#修改自己DNS的ip,這里是10.180.X.X的ip,為linux的管理ip
#檢查語法錯誤,沒有提示表示沒有語法錯誤
 named-checkconf
修改區域配置文件
vi /etc/named.rfc1912.zones
 #根據自己實際拓撲配置,這里的linux pc為多網卡pc,根據拓撲需要因此配置的ip為其他網卡的ip
 #這里的域名為上面smtp服務器域名
 #下面配置請手動自己添加
#檢查語法錯誤,沒有提示表示沒有語法錯誤
 named-checkconf
編輯區域數據配置文件
cd /var/named
 cp -p named.localhost jjonline.com.cn.zone
 #創建正向區域數據配置文件(注意,由于我是復制另一個樣式文件,復制文件時必須加“-P”,表示復制過來的時候文件權限保持不變)
#編輯正向區域數據配置文件
 vi jjonline.com.cn.zone
 #手動修改NS MX和IN A三條,注意域名后面有一個點
創建反向區域數據配置文件
cp -p named.localhost jjonline.com.cn.local
 vi jjonline.com.cn.local
 #手動修改NS MX和PTR三條,注意域名后面有一個點
#檢查語法錯誤,沒有提示表示沒有語法錯誤
 named-checkconf
啟動DNS服務
#啟動命令
 systemctl start named
#設置開機啟動
 systemctl enable named
#設置服務器域名
 vi /etc/resolv.conf
原本配置域名為114.114.114.114
 把新建的DNS服務器域名添加到第一條,不然解析不了,不影響其他正常上網活動
nameserver 10.180.X.X
 nameserver 114.114.114.114
#解析域名
 nslookup mail.jjonline.com.cn
 #能夠正常解析出域名和ip即可
測試smtp服務器是否正常使用
telnet mail.jjonline.com.cn 25
 
 #可以通過查看mail日志確定是否發送成功
 vi /var/log/maillog
client端配置發件人
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服務器和默認發件人
#smtp協議是郵件發件協議,所有發出去的郵件都會先經過smtp server,然后再轉發給對應的收件服務器,再轉發給對應的收件人
vi /etc/mail.rc
 #在文件末尾添加以下信息
配置DNS
vi /etc/resolv.conf
 在第一條添加
 nameserver 10.180.X.X
 #ip為之前smtp server搭建的DNS服務器IP,要確保路由可達,不然很有可能解析不出來smtp server的域名
發件命令
#其中 echo 后面的是郵件的正文
 echo “郵件正文” | mail -s “郵件主題” 123456@qq.com
 #以文件 file.txt 的內容為郵件正文發送
 cat file.txt | mail -s “郵件主題” 123456@qq.com
#這里發送簡單郵件
 echo “this is a test mail,thks” | mail -v -s “test mail” test1@126.com
#在smtp server上通過查看日志可以看到是否發送成功
 #要想在126等郵箱中收到可以參考https://www.cnblogs.com/ilanni/p/5294611.html
#本次smtp server搭建主要是用于測試經過防火墻能否識別垃圾郵件,由于大多商用郵件服務器比如126等都有反垃圾郵件功能,因此這里不關注是否收件人是否收到郵件,主要關注發件人群發郵件,經過防火墻被識別為垃圾郵件,并阻斷發件人和smtp server之間的連接。
總結
以上是生活随笔為你收集整理的linux下smtp服务器搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 去除PreferenceScreen过期
- 下一篇: 主动轮廓模型——Snake分割算法(MA
