中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Linux下Web郵件服務器的安全設置

2018-12-31    來源:愛站科技

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

Linux下Web郵件服務器的安全設置大家清楚嗎?那么接下來就由愛站頻道的小編給小伙伴們分享一篇關于Linux下Web郵件服務器的安全設置吧,感興趣的朋友跟小編一起來了解一下吧!

我們使用的軟件是帶有mod_ssl和PHP4的Apache,還有Webmail軟件Aeromail。之所以選擇這一組合,是因為它們的開發(fā)和維護都非;钴S,安裝非常簡單,功能也非常豐富。

假設系統(tǒng)上還沒有安裝Web服務器或者SSL庫。首先要安裝基本的郵件服務器、IMAP服務器,并且確保它們只接收本地連接。接著,要構建一個強大的Web服務器,它支持SSL(加密套接字協(xié)議層)連接和PHP腳本語言。接下來,安裝用于在一個Web頁面上顯示郵件的軟件就非常簡單了。

下面是要下載的文件表:

-rw-r--r-- ? 1 jose jose ? 22841 Nov 19 15:18 aeromail-1.40.tar.gz
-rw-r--r-- ? 1 jose jose 2847497 Oct 25 19:14 apache_1.3.14.tar.Z
-rw-r--r-- ? 1 jose jose 1866035 Oct 25 13:27 imap.tar.Z
-rw-r--r-- ? 1 jose jose ? 748253 Oct 25 19:15 mod_ssl-2.7.1-1.3.14.tar.gz
-rw-r--r-- ? 1 jose jose 2086131 Sep 24 11:46 openssl-0.9.6.tar.gz
-rw-r--r-- ? 1 jose jose 2225976 Nov 5 13:31 php-4.0.3pl1.tar.gz

之所以選擇這些版本是因為它們提供了大部分的功能,并且非常穩(wěn)定。在自己架設服務器時,建議最好使用最新的可用版本,并且隨時關注補丁的發(fā)布。

現(xiàn)在有了所需要的軟件就可以開始工作了。應該說,整個配置過程不會花太多的時間,在本文中,我們把所有的文件都置于同一個目錄之下(/webmail),而Apache則安裝于缺省的目錄之下,即/usr/local/apache/htdocs。

安裝前的準備
我們要在電腦中安裝一個軟件包用于實現(xiàn)監(jiān)聽服務。一般來說,Linux工作站在安裝過程中不會安裝該軟件。這個程序就是inetd服務器,它可以監(jiān)聽一些郵件收發(fā)的后臺程序。在Red Hat 6.2的安裝中,包含該程序的RPM文件是inetd-0.16-4.i386.rpm。在Red Hat 6.2中,下面的步驟將完成inetd后臺程序的安裝:

# rpm -ivh inetd-0.16-4.i386.rpm
# /usr/sbin/inetd
# /sbin/chkconfig inetd on

構建IMAP服務器
IMAP(Internet Message Access Protocol)是用戶從不同的計算機訪問郵件的一種方式。它的工作方式是在一臺中央計算機上存儲信息,并且允許用戶訪問信息的一個拷貝。你可以讓本地工作站和服務器同步,此外也可以為郵件創(chuàng)建一個文件夾,并且具有完全的訪問權限。這一點和POP3不同。
首先,下載文件,并且將其解壓縮:

$ tar -zxvf imap.tar.Z

然后進入新建的目錄中并且編譯IMAP服務器。因為使用的是Linux,所以這個過程非常簡單:

$ cd imap-2000
$ make slx
(輸出結果省略)

安裝新的IMAP服務器也非常簡單,只需將其放到合適的位置即可:

# cd imapd
# cp imapd /usr/sbin/imapd

現(xiàn)在要告訴計算機如何監(jiān)聽imapd連接,以及如何處理這些連接。首先,編輯inetd配置文件inetd.conf:

# vi /etc/inetd.conf

修改經(jīng)常要讀取的行:

#imap stream tcp nowait root /usr/sbin/tcpd imapd

將其改為:

imap stream tcp nowait root /usr/sbin/tcpd imapd

也就是去掉行前的“#”號,告訴inetd該行不是注釋行。然后告訴inetd重新讀取這些配置。我們通過向inetd進程發(fā)送HUP信號來達到這一目的。首先要得到進程的ID號:

# ps -ax | grep inetd
7699 ? ? ? S ? ? 0:00 inetd

此處的7699指的是inetd的進程ID號,當然你自己配置時ID號可能會不同。下面告訴inetd重新讀取配置文件:

# kill -HUP 7699

最后,要確保inetd拒絕任何不速之客。在現(xiàn)實中,很多黑客喜歡通過突破imapd服務來突破系統(tǒng),為此,我們限制該服務器僅限于連接本地機器。這就意味著只有本地的Web服務器可以連接它。我們通過編輯以下文件來實現(xiàn)這一目的:

# vi /etc/hosts.deny

在其中加入用于IMAP程序的一行:

imapd:ALL

接下來編輯允許連接的文件:

# vi /etc/hosts.allow

并且在文件的未尾加上下面的內(nèi)容:

imapd: 127.0.0.1

到此為止,第一部分的安裝就完成了。

配置SSL庫
下面要為安全的Web服務器編譯所需的庫。這些庫提供了SSL需要的功能。在你查看電子郵件時,需要有一個安全的Web服務器來保護你的密碼,以及所有流到Web服務器的信息。這樣可以避免別有用心的人通過監(jiān)聽會話來獲取密碼。 編譯和安裝庫的過程非常簡單。從包含所需文檔的目錄開始,首先解開文檔:

$ tar -zxvf openssl-0.9.6.tar.gz

然后,要配置和編譯庫。配置過程很方便,系統(tǒng)可以自動找出所需信息,編譯過程也是自動進行的。

$ cd openssl-0.9.6
$ ./config
(輸出結果省略)
$ make
(輸出結果省略)

下面,以root的身份在缺省目錄下安裝軟件。因為使用OpenSSL的程序通常認為它位于默認位置(/usr/local/ssl),因此最好不要對其進行更改。

#make install

現(xiàn)在就完成了所需庫的安裝。其它的程序也可以使用這些庫了。

支持PHP4
下面是本例中最耗時間的一個過程,但是實現(xiàn)起來也不是很困難。我們要構建一個強大的Web服務器,它要支持PHP4腳本語言,并且可以通過SSL進行安全連接。要做到這一點,首先要把這些部件和服務器軟件結合起來,然后編譯它。

首先解開在安裝過程中所需的源代碼:

$ tar -zxvf Apache_1.3.14.tar.gz
$ tar -zxvf mod_ssl-2.7.1-1.3.14.tar.gz
$ tar -zxvf php-4.0.3pl1.tar.gz

注意,在此mod_ssl有兩個版本號,即2.7.1和1.3.14。這是因為其中有一些針對Apache的補丁和附加的代碼。我們一定要使用和Apache源代碼相對應的版本,否則將無法正常工作。

首先要做的事情是把這些來自mod_ssl的源代碼補丁應用到Apache中。在這個過程中,只需指明Apache源代碼所處的位置即可:

$ cd mod_ssl-2.7.1-1.3.14
$ ./configure --with-Apache=../Apache_1.3.14
$ cd ..

在這一步驟中,要注意是否有錯誤提示,否則它很有可能和下面步驟的錯誤混雜在一起。如果的確有錯誤提示,那么請檢查mod_ssl的版本是否和所用的Apache版本一致。

下面,要對Apache源代碼的目錄樹進行預配置。這樣做的目的是為了讓PHP源代碼知道所有有關Apache系統(tǒng)的信息。

$ cd Apache_1.3.14
$ ./configure --prefix=/usr/local/Apache --without-confadjust
$ cd ..

現(xiàn)在就已經(jīng)完成了PHP在Apache中的安裝。在這個部分,要編譯PHP的大部分模塊,因此可能要花一些時間。此外,還要PHP能夠支持IMAP客戶端功能。該功能是基于Web的電子郵件系統(tǒng)所需要的。

$ cd php-4.0.3pl1
$ ./configure --with-Apache=../Apache_1.3.14 --with-imap=../imap-2000

現(xiàn)在開始安裝:

$ make install
$ cd ..

現(xiàn)在已經(jīng)做好了編譯Apache服務器的準備。它要能夠支持SSL和PHP4,因此要在配置時告訴它要包括這些部分,還要指明SSL庫的位置,也就是上述安裝OpenSSL的位置。

$ cd Apache_1.3.14
$ SSL_BASE=/usr/local/ssl ./configure \ --enable-module=ssl --without-
confadjust \ --activate-module=src/modules/php4/libphp4.a

這里需要注意的是,libphp4.a還不存在,但這一步要確保它被編譯進服務器中。下面就可以編譯和安裝Web服務器和SSL證書了。

$ make
$ make certificate

這一步驟可以為服務器生成一個交互式的證書。這用于和Web終端之間用密碼的信息交流中。與此同時,還要回答以下問題:

Signature Algorithm ((R)SA or (D)SA) [R]: R
(omitted)
1. Country Name (2 letter code) [XY]: China
2. State or Province Name (full name) [Snake Desert]: BeiJing
3. Locality Name (eg, city) [Snake Town]: BeiJing
4. Organization Name (eg, company) [Snake Oil, Ltd]: Home
5. Organizational Unit Name (eg, section) [Webserver Team]: Parents
6. Common Name (eg, FQDN) [www.snakeoil.dom]: friend.dsl.isp.com
7. E-mail Address (eg, name@FQDN) [www@snakeoil.dom]: friend@isp.com
8. Certificate Validity (days) [365]: 365
STEP 3: Generating X.509 certificate signed by Snake Oil CA [server.crt]
Certificate Version (1 or 3) [3]: 3
(輸出結果省略)
Encrypt the private key now? [Y/n]:n
(輸出結果省略) 最后,可以安裝整個服務器、配置和證書:

#make install

為了能夠讀懂PHP文件(該過程由服務器處理),需要編輯配置文件。同時,還要強迫Webmail終端使用SSL。

# cd /usr/local/Apache/conf
# vi httpd.conf

首先更改服務器,使它可以解釋PHP文件。我們只需去掉下列行前面的“#”即可:

AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

雖然PHP4是向后兼容的,但是如果處理PHP3文件,將不能夠正確解析,所以就只把它作為一般的PHP文件來處理。也就是說把上述第一行的“3”刪去。

接下來要設置服務器,以確保在讀取電子郵件時需要SSL。這是避免在網(wǎng)絡上使用普通文本傳送密碼。通過添加下列幾行來實現(xiàn)這一功能。


SSLRequireSSL


保存好配置文件,再進行下一個部分的安裝和設置。

安裝Aeromail
現(xiàn)在就可以安裝Webmail軟件了。在本例中,選擇的是Aeromail。之所以選擇它是由于它簡單、易于安裝和設置。

首先將文件包解壓縮至Web文檔目錄之下:

# cp aeromail-1.40.tar.gz /usr/local/Apache/htdocs/
# cd /usr/local/Apache/htdocs/
# tar -zxvf aeromail-1.40.tar.gz
# cd aeromail

下面來編輯Aeromail配置文件:config.inc。

#vi config.inc

這里面要做的最重要改變就是當退出登錄或者取消登錄時對頁面進行重定向。應該把它定向到自己的Web服務器上。要做到這一點,只需下面的行即可:

$SERVER_REDIR = "http://the.cushman.net/";

其它的變量,比如每一屏顯示的信息數(shù)、顏色主題等都是可以配置的。配置文件中的注解可以幫助你找到這些相關的內(nèi)容。

測試服務器
現(xiàn)在要進行一些測試。首先要啟動服務器:

# /usr/local/Apache/bin/Apachectl startssl

將看到如下內(nèi)容:

Apachectl startssl: httpd started

如果沒有看到上述內(nèi)容,那么可能是什么地方出現(xiàn)了問題。最好的辦法是查看診斷日志文件,該文件位于../logs/error_log。

現(xiàn)在來看一看是否在監(jiān)聽兩個新的端口。使用netstat來查看這些內(nèi)容:

# netstat -na | grep LISTEN
tcp ? 0 0 0.0.0.0:80 ? 0.0.0.0:* ? LISTEN
tcp ? 0 0 0.0.0.0:443 ? 0.0.0.0:* ? LISTEN

很顯然,有兩個正在監(jiān)聽的套接字,80/TCP和433/TCP端口,F(xiàn)在我們要連接到服務器,并且測試安全Webmail連接。啟動一個瀏覽器(Netscape、Konqueror等),并且在其URL中輸入服務器名,本例中為friend.dsl.isp.com,而安全的Aeromail站點的URL應該是:https://friend.dsl.isp.com/aeromail/。 接下來要做的是接受證書。對于Netscape,需要有幾個步驟,現(xiàn)簡述如下:

首先出現(xiàn)的是一個突出窗口,提示該站點是加密的,Netscape并不能識別這一簽字權。點擊“Next”繼續(xù)(如圖1)。

1

圖1 加密提示窗口
第二步將告訴一些有關證書的內(nèi)容,如果點擊“More Info”鈕,那么可以看到更多的相關信息。在此點擊“Next”鈕繼續(xù)(如圖2)。

2

圖2 有關證書的一些內(nèi)容
接下來要選擇是否接受證書以及接受多長時間,一般都選擇第三項,即“Accept this certificate forever”,之后點擊“Next”(如圖3)。

3

圖3 確認是否接受證書
接下來選擇是否在每次提交信息時都會有一個警告。應該說這非常有用,但這也是很讓人討厭的。我一般都喜歡忽略警告并且不讓它彈出,所以只需選擇“Next”繼續(xù)(如圖4)。 4

圖4 選擇是否彈出警告
現(xiàn)在可以點擊“Finish”來完成這個過程了。

我們可以從三個地方知道正在使用安全的連接。首先是URL以https://開頭,而不是以http://開頭。此外,在頂部的按鈕條上有一個突出的小鎖圖標,在瀏覽器的左下角也有一個突出的小鎖圖標(如圖5)。

5

圖5 結果設置過程
如果沒有看到這些內(nèi)容,那么就需要進行診斷了。可以查看一些地方:首先確信在監(jiān)聽著80/TCP和443/TCP端口用于一般和SSL Web連接。其次是確信用于Web服務器的SSL引擎正常工作。最后,確保確處于連機狀態(tài)。

使用Aeromail
現(xiàn)在已經(jīng)連接到了服務器上,這時會彈出一個認證窗口。這是平常使用的用戶名和密碼,它將使用SSL加密連接來傳送(如圖6)。

6

圖6 人證窗口
現(xiàn)在,就已經(jīng)工作在一個完全安全的Web服務器下了。使用這一服務器可以保護諸如電子郵件連接等很多Web事務。

一旦認證通過后,軟件就會讀取郵箱,并且準備一個Web頁面。這是通過PHP軟件來實現(xiàn)的,它連接到IMAP服務器,并且讀取文件夾中的信息。這個頁面如圖7所示,可見我們收到了兩條信息。

7

圖7 收到兩條信息
信息以收到的時間為序進行排列,最新的信息顯示在頂部。顯示的內(nèi)容有主題、發(fā)件人、收到時間以及信件大小。信息前面的選擇框用于信息的選擇,以便進行刪除或者移動操作。頂部的環(huán)狀箭頭用于檢測是否有新的郵件。底部的復選框用于選中所有顯示在本頁的信息,數(shù)字表示信息的頁數(shù)。我們可以通過編輯config.inc文件里的$MSG_COUNT變量來改變每屏顯示的信息數(shù)量。從圖7的頁面,我們可以看出它和平時使用的263等Webmail系統(tǒng)基本相同,只是功能要少一些。

到目前為止,我們已經(jīng)配置好了一個小的、安全的Webmail服務器。它可以讓你在世界的任何一個地方訪問你的郵件。此外,這個服務器還可以擴展一些其它的功能,這就需要你在使用的過程中自己來發(fā)現(xiàn)了。

以上就是關于Linux下Web郵件服務器的安全設置,想必都了解了吧,更多相關內(nèi)容請繼續(xù)關注愛站技術頻道。

標簽: isp linux ssl ssl證書 web服務器 安全 代碼 電子郵件 服務器 服務器軟件 腳本 權限 網(wǎng)絡

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:普通用戶Linux來替代Windows服務器

下一篇:避免網(wǎng)絡服務器受惡意攻擊的方法