1. 程式人生 > >Linux系統,Centos7版本下搭建postfix服務器及其相關配置應用

Linux系統,Centos7版本下搭建postfix服務器及其相關配置應用

服務器 .html 監聽端口 生成 工作目錄 new works close 網址

實驗報告

一、 實驗名稱:郵件服務器的搭建和相關使用功能的配置
二、 實驗環境與要求:Linux系統 centos7版本
搭建郵件服務器實現發信收信基本功能
實現發信認證功能
搭建好LAMP環境,配置squirrelmail收發郵件
三、 實驗內容:
1、 檢查版信息,postfix安裝情況與支持的功能,啟動運行;
2、 搭建與之相關的DNS服務器,配置DNS解析功能;
3、 配置postfix基本發信功能,進行測試;
4、 安裝dovecot提供收信服務,進行測試;
5、 客戶端利用郵箱軟件配置測試服務器功能;
6、 進行發信認證配置;
7、 搭建LAMP環境,配置squirrelmail收發郵件

實驗步驟:

第一步:
cat /etc/redhat-release //檢查版本信息
技術分享圖片

※安裝postfix(版本自帶) centos7版本即使用最小化安裝仍自帶此功能

postconf -a // 驗證是否支持cyrus dovecot功能
技術分享圖片

啟動服務器systemctl start postfix
netstat -anpt | grep 25 //查看監聽端口號
技術分享圖片

第二步:
※搭建與之相關的DNS服務器,配置DNS解析功能
yum install bind //安裝服務器程序

vi /etc/named.conf //編輯主配置文件
技術分享圖片

技術分享圖片
※以下進行區域文件配置:
cd /var/named/ 進入文件目錄下
復制配置文件的模板進行修改:

cp -p named.localhost yyf.com.zone
cp -p named.localhost yyf.com.local

vi /var/named/yyf.com.zone 編輯正向區文件

如圖:
技術分享圖片

vi /var/named/yyf.com.local 編輯反向區文件
如圖:

技術分享圖片
以上基本配置編輯完成
systemctl start named //啟動服務器
netstat -anpu | grep name //檢測到UDP 53端口在監聽 服務器正常工作。
進行DNS驗證
vi /etc/resolv.conf
nameserver 192.168.80.18 //指向DNS服務器地址

rpm -ivh /mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm //安裝檢測命令nslookup

解析如圖:
~nslookup mail.yyf.com //正向解析
技術分享圖片

~nslookup 192.168.80.18 //反向解析
技術分享圖片

解析成功!

第三步:
-----配置postfix基本發信功能
vi /etc/postfix/main.cf 編輯配置文件 修改項如下:
myhostname = mail.aa.com //本機系統主機名
mydomain = aa.com //主機域名
myorigin = $mydomain //根源、起點
inet_interfaces = 192.168.80.18, 127.0.0.1 //接口地址
inet_protocols = ipv4
mydestination = $myhostname, $mydomain //預定、指定範圍
home_mailbox = Maildir/ //信箱家目錄

完成後保存退出,用postfix check命令檢查是否存在語法錯誤:

service postfix restart //重啟郵件服務器

※要測試發信功能是否生效,我們需要添加用戶並加入同一組管理:
-----增加郵件測試賬號
groupadd mailusers //增加組賬號
useradd -g mailusers -s /sbin/nologin jack //建用戶jack 加入mailusers組且不可登陸系統
passwd jack(密碼隨便設置123)
useradd -g mailusers -s /sbin/nologin tom //建用戶tom 加入mailusers組且不可登陸系統
passwd tom(密碼隨便設置123)

測試準備:安裝yum install telnet
開始測試:連接服務器的25端口進行簡單發信測試
telnet mail.yyf.com 25
依次輸入以下內容:
如圖:

技術分享圖片
由於目前未安裝收件服務,所以只能通過root超級管理員來查看郵件是否發送成功

使用root查看tom用戶是否收到測試郵件:
ls -l /home/tom/Maildir/new/ 在此目錄下應該會有剛才發的郵件
技術分享圖片
可用cat命令查看內容
郵件發送功能測試成功!

第四步:
※安裝dovecot提供收信服務

yum install dovecot //安裝系統程序

vi /etc/dovecot/dovecot.conf //配置程序文件
※修改項如下:
protocols = imap pop3 lmtp
listen = //監聽 所有端口
!include conf.d/10-auth.conf //此處* 必須替換
※手動增加以下內容:
ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir

※以上基本配置完成
service dovecot start //啟動服務
netstat -anpt | grep dovecot // 110 143端口需要監聽
如圖:
技術分享圖片
服務啟動成功,正常工作

※現在可以用戶進行測試收信了(以前是用root,現在可以用賬戶)
測試開始:telnet mail.yyf.com 110
如圖:
技術分享圖片
我們來讀取第一份郵件看看
顯示如圖:
技術分享圖片

用quit 可以退出
測試結構說明收件系統工作正常

鑒於目前的收信發信方式太不友好,安裝MUA軟件連接服務器收發郵件

※客戶端裝測設軟件:
技術分享圖片
用此軟件進行測試,看服務器是否正常工作
基本設置如圖所示:
技術分享圖片
技術分享圖片
登陸後收件:
技術分享圖片
郵件接受正常
服務器工作正常

第五步:
以下進行發信認證配置
yum install cyrus-sasl* 安裝相關軟件包

vi /etc/sasl2/smtpd.conf 開始編輯配置文件,內容如下:
pwcheck_method: saslauthd
mech_list: plain login
log_level:3 //設置日誌級別為3

vi /etc/sysconfig/saslauthd //編輯認證系統配置文件
MECH=shadow

service saslauthd start //開啟認證功能服務器

vi /etc/postfix/main.cf //編輯配置文件
在末尾新增
smtpd_sasl_auth_enable = yes //開啟認證
smtpd_sasl_security_options = noanonymous //不允許匿名發信
mynetworks = 127.0.0.0/8 //允許的網段,如果增加本機所在網段就會出現允許 不驗證也能向外域發信
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination //允許本地域以及認證成功的發信,拒絕認證失敗的發信

postfix check //檢查語法
service postfix restart //重啟服務器

※測試普通發信
telnet mail.yyf.com 25
如圖:
技術分享圖片
向未認證區域發件失敗說明認證系統是生效的
quit 退出

※下面用系統賬戶進行發信測試
將用戶名與密碼生成密文加密:
printf "jack" | openssl base64 //生成密文
amFjaw== (密文)
printf "123" | openssl base64 //生成密文
MTIz (密文)

※開始用字符終端測試認證發信:
telnet mail.aa.com 25
如圖:
技術分享圖片
技術分享圖片

若在真機用郵箱軟件測試,只需做如下操作:
技術分享圖片
將高級設置中的選項勾選即可驗證

第六步:
----以下是配置squirrelmail收發郵件內容
需要搭建好LAMP環境
--------安裝LAMP---------
yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash 註: 安裝相關軟件包,其中\表示強制換行操作

vi /etc/httpd/conf/httpd.conf //編輯配置文件
需要修改的內容:
ServerName www.aa.com ///服務器名稱
DirectoryIndex index.html index.php ///支持靜態與動態網頁

vi /etc/php.ini //編輯此配置文件
date.timezone = PRC //設置時區

提醒:系統中的防火墻與安全Linux要確認關閉,否則影響實驗
systemctl stop firewalld.service
setenforce 0

systemctl start httpd.service 網頁系統啟動
systemctl start mariadb.service 數據庫系統啟動

netstat -anpt | grep 80
netstat -anpt | grep 3306 //端口在監聽,說明服務器啟動正常

技術分享圖片
技術分享圖片
※mysql_secure_installation 進行安全校驗,也可不設置

接下來
vi /var/www/html/index.php 編輯數據庫文件
在裏面寫入腳本如下:
<?php
phpinfo();
?>

用真機瀏覽器測試:
http://192.168.80.18 將出現如下頁面,說明設置成功

技術分享圖片

※進入數據庫,建立授權賬號
mysql -u root -p
進數據庫時設置一下密碼:123456
CREATE DATABASE bcd; //建立數據庫名字bcd
GRANT all ON bcd.* TO ‘mail‘@‘%‘ IDENTIFIED BY ‘123456‘;
flush privileges; //刷新一下權限

下面測試數據庫工作是否正常
vi /var/www/html/index.php //編輯配置文件,該文件為數據庫工作目錄
刪除以前內容,寫入如下內容:
<?php
$link=mysql_connect(‘192.168.80.18‘,‘mail‘,‘123456‘); //說明地址與密碼
if($link) echo "<h1>Success!!</h1>"; //如果連接成功則會顯示Success!!
else echo "Fail!!"; //如果連接失敗則顯示Fail!!
mysql_close();
?>
保存退出
測試:
技術分享圖片
連接成功!

到下面網址下載小松鼠包與漢化語言包
http://www.squirrelmail.org/download.php
1、squirrelmail-webmail-1.4.22.tar.gz
2、all_locales-1.4.18-20090526.tar.gz

將安裝包上傳到Linux系統中進行解壓
tar xzvf squirrelmail-webmail-1.4.22.tar.gz
tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22 //-C表示將語言包解壓到後續包中

cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail //將解壓完成的包拷貝到/var/www/html/mail(網頁工作目錄)

cd /var/www/html/mail // cd到php工作目錄下
mkdir attach //建立附件文件目錄
chown -R apache:apache attach/ data/ //修改權限

cd config //到squirrelmail配置文件下
cp config_default.php config.php // 拷貝模板
vi config.php //開始編輯
修改內容如下:
$domain = ‘aa.com‘; //域名
$imap_server_type = ‘dovecot‘; //imap服務類型為dovecot
$data_dir = ‘/var/www/html/mail/data‘; //原件存放地址
$attachment_dir = ‘/var/www/html/mail/attach/‘; //附件存放地址
$squirrelmail_default_language = ‘zh_CN‘; //網頁顯示語言為中文
$default_charset = ‘zh_CN.UTF-8‘; //中文字符編碼

用真機瀏覽器登陸測試:
http://192.168.80.181/mail
出現登錄界面,如圖:
技術分享圖片
輸入賬戶登陸:
顯示如下:

技術分享圖片
成功進入並且可正常操作使用,服務器工作正常。

第七步:
※以下設置郵件組
vi /etc/aliases 編輯配置文件
增加組名:student:jack,tom
newaliases //生成hash數據庫文件
systemctl restart postfix //重啟郵件服務器測試向[email protected]發信的時候jack,tom都會收到。
br/>測試向[email protected]發信的時候jack,tom都會收到。
※用tom向組郵箱發送組郵件
技術分享圖片
檢查收件情況:

技術分享圖片
技術分享圖片
測試結果符合要求

※以下設置郵件大小
vi /etc/postfix/main.cf //編輯配置文件
手動寫入:
message_size_limit = 5120000 //單位是Byte
保存後退出!
systemctl restart postfix //重啟郵件服務器
通過增加大附件測試效果
技術分享圖片

技術分享圖片

※以下通過配置用戶磁盤配額實現限制用戶郵箱空間
郵件存放目錄在home下,掛載於/dev/sda5盤上
技術分享圖片
[root@yyf ~]# umount /home
[root@yyf ~]# mount -o usrquota,grpquota /dev/sda5
[root@yyf ~]# vi /etc/fstab
最後一行加上:
技術分享圖片
技術分享圖片
開啟磁盤配額:
edquota -u jack
配額硬性為20M 如圖:
技術分享圖片
用戶系統中檢測磁盤配額是否生效:
技術分享圖片
超出配額,已生效。

用客戶端軟件測試:
發送大小為6.6M的郵件,已成功發送兩個(已取消單個郵件不得大於5M的配置)
技術分享圖片
第三份發送失敗
技術分享圖片
查看目錄剩余空間,限額20M的情況下,已不足6.6M的空間,故第三份發送必然失敗
技術分享圖片

所以對jack用戶做的磁盤配額生效

Linux系統,Centos7版本下搭建postfix服務器及其相關配置應用