正如那只讓人愛不釋手的小企鵝一樣,從誕生的那一刻起,Linux就以有一副親近可人的面孔吸引了全球數以萬計電腦愛好者的目光。如今,從桌面到服務器,從操作系統到嵌入式系統,從零散的應用到整個產業的初見雛形,Linux都呈現出蓬勃發展的趨勢。隨之而來的是,業界許多大公司對Linux專業人才的渴求也急劇上升!一批有影響力的著名大公司如IBM、HP、Dell、聯想、浪潮等都有急劇擴招Linux人才的傾向。同時,在實際應用中,有的用戶玩膩了Windows操作系統,想學習一下Linux,卻害怕Linux的重新分區;有的用戶已經安裝了多個操作系統,可是需要切換操作系統的時候只能重新啟動……如何快速玩轉Linux操作系統成為了一個既熱門又敏感的話題。
怎么辦?實用才是硬道理。本專題通過用架設虛擬機網絡實驗環境,在講解服務器配置時配合實用的網絡管理軟件Webmin,別出新意,使用戶在Windows下就能完成Linux服務器的安裝!前面我們已經講了《Linux服務器傻瓜式安裝完全接觸(上)》今天我們講第下半部份。
三、免費而穩定:Web服務器和FTP服務器的安裝
為什么要采用Linux操作系統作為網絡服務器?答案是:穩定性高、成本低。比較優秀的解決方案是采用Linux操作系統,再配備Apache服務器軟件,就可以構造一個穩定高速的網站了。
小知識:1995年4月,最早的Apache(0.6.2版)由Apache Group公布發行。Apache Group 是一個完全通過Internet進行運作的非盈利機構,由它來決定Apache Web服務器的標準。目前,Apache是世界排名第一的Web服務器,根據Netcraft(www.netsraft.co.uk)所作的調查,世界上百分之五十以上的Web服務器在使用Apache。
1、比IIS更優秀:安裝和啟動Apache服務器
和Windows中安裝了IIS一樣,Redhat Linux服務器一般自帶了Apache服務器。如果沒有安裝,可以單擊“系統設置”進入“添加/刪除應用程序”,然后系統會進行系統軟件包狀態檢查。在“萬維網服務器”選項上打鉤,點“細節”可以看到許多和本服務器相關聯的額外軟件包,選定相關的軟件包。安裝時,就能把和這些軟件包安裝進去。當然,這其中就包括Apache服務器了。可見,安裝過程和IIS等Windows下的Web服務器十分類似。
第1步:回到Webmin的服務器管理界面中,點擊第一個圖標就可以進入Apache服務器的管理界面。在“服務器”圖標的下方,有如下子菜單:“模塊配置”、“應用修改”、“停止/啟動Apache”、“搜索文檔”。然后,可以看到整個配置界面分為兩個部分,一個是全局配置,一個是虛擬服務器配置。如圖17所示。
圖 17
第2步:打開全局配置下的“網絡和地址”圖標,在“監聽地址和端口”選項后,設置服務器的IP地址和https地址,并輸入端口,如80、443。當然,用戶也可以自己定義或修改端口。設置完畢,單擊“保存”按鈕。
第3步:如果需要增加虛擬服務器,可以通過Apache服務器主界面中的“創建新的虛擬服務器”選項進行設置。首先指定地址和端口,然后單擊“根文件”右邊的按鈕,選擇“/var/www/html”,在“服務器名稱”中填入類似的地址,如“www.test.com1”。設置完畢。
第4步:在缺省服務器的下方出現了一個虛擬服務器,旁邊的注釋說明了服務器的詳細情況。點擊此虛擬服務器的圖標,即可進入其設置界面。如圖18所示。
圖 18
除了通過Webmin進行配置外,用戶還可以通過Redhat Linux上的設置工具進行修改。打開Redhat Linux中“應用程序”菜單上的“系統設置”菜單,選擇“服務器設置”上的“HTTP”,也可以對虛擬主機進行修改,效果是一樣的。如圖19所示,單擊“編輯”按鈕就可以對虛擬主機的屬性進行修改了。此外,還可以進行服務器、調整性能等方面的操作。
圖 19
第5步:配置完成后,點“啟動Apache”,打開頁面即可進行測試。
2、在Apache上配置動態程序環境
現在,很多電子商務站點幾乎都是動態程序。Apache也提供了對PHP、CGI等程序的支持。下面,以PHP動態網頁為例進行講解。
第1步:單擊“系統設置”進入“添加/刪除應用程序”,然后系統會進行系統軟件包狀態檢查。在“萬維網服務器”選項上打鉤,點“細節”可以看到許多和PHP程序相關聯的額外軟件包,建議將所有和PHP相關的軟件包都選中并安裝。如圖20所示。
圖 20
第2步:設置/etc/httpd/conf.d/php.conf配置文件。安裝好PHP之后,使用文本編輯器打開php.conf配置文件。也可以直接通過Webmin打開Apache服務中的“編輯配置文件”圖標,選擇/etc/httpd/conf.d/php.conf文件,單擊“編輯文件中的指令”按鈕,進行編輯(#號后面是注釋)。修改后的文件如下所示:
#
SetOutputFileter PHP
# AddType application/x-httpd-php-source .phps
|
第3步:重新啟動httpd服務。僅僅更改Apache的配置文件是不夠的,這樣PHP程序還是不能運行,還要修改/etc/php.ini文件中的如下選項,修改“register_globals=off”為“register_globals=On”。這樣PHP程序就可以運行了。
3、一步到位:Redhat Linux下的FTP服務器安裝
在Redhat Linux中,系統在默認安裝模式下安裝了vsftpd。在文本模式下運行vsftpd的命令為:“service vsftpd start”。Vsftpd服務也可以在圖形模式下開啟,步驟為:依次打開“主菜單”下的“系統設置”,選擇“服務器設置”中的“服務”,拉動滾動條找到vsftpd選項,選中后點擊“開始”,即可啟動vsftpd服務。如果將復選框選中,則每次啟動Linux系統都會自動運行vsftpd服務。如圖21所示。
圖 21
這樣,就可以通過各種方式來訪問這個FTP服務器了。一般情況下,輸入默認的主機地址、用戶、密碼即可正常訪問。如果出現連接不上,就要考慮一下Linux服務器上的防火墻等問題?,F在,Linux下比較常用的免費FTP服務器軟件還有Wu-FTP和ProFTP,其中,ProFTP的的功能十分強大,越來越多的站點選擇它來構筑安全高效的FTP站點。有興趣的讀者可以一試,下載地址為:ftp://ftp.proftpd.net。
四、更簡單高效:Linux郵件服務器的安裝和安全
在網絡管理員的日常工作中,郵件服務器扮演著一個非常重要的角色,從局域網的安全防范到操作系統的穩定運行,都離不開電子郵件。目前,有許多的程序可以作為郵件傳輸代理,但Linux下的Sendmail則是其中最重要的一個,事實證明,它可以支持數千甚至更多的用戶,而且站用的系統資源相當少。
1、Sendmail郵件服務器的安裝和配置
默認情況下,Sendmail服務器安裝程序在安裝光盤,可以選擇安裝。單擊“系統設置”進入“添加/刪除應用程序”,然后系統會進行系統軟件包狀態檢查。選中服務器欄下的“郵件服務器”選項。在文本模式下,用“/etc/rc.d/init.d/sendmail start”命令啟動Sendmail,也可以在圖形界面下直接啟動Sendmail服務。下面是Sendmail郵件服務器的配置方法。
第1步:現在,打開Webmin“服務器”中的“Sendmail配置”一欄,單擊進入。也可以通過Windows下的IE瀏覽器打開,如圖22所示。
圖 22
第2步:打開“本地域(Cw)”,這個區域是設置郵件服務器負責收發的網域。默認值是localhost.localdomain和localhost?,F在它負責本機的信件轉發。如果要讓它負責新的轉發,則要加入地址,如“cndes.net”。然后單擊“保存”按鈕。
第3步:因為現在假設的服務器名是www.cndes.net,所以本服務器負責的郵件會成為xxx@www.cndes.net,這樣就比較麻煩了。如果只顯示比較簡單的域名,如xxx@cndes.net,就要設置域名偽裝。以前這些設置都要通過修改配置文件來完成,十分麻煩。現在通過“域名偽裝(CM)”就可以了。如圖23所示。
圖 23
第4步:郵件用戶的管理也很簡單,在Sendmail中,合法的主機用戶就是郵件賬戶,管理郵件賬戶的方法和管理系統用戶方法一致,可以通過用戶管理器來管理賬戶。啟動用戶管理器的方法是:點擊“主菜單”下的系統設置,選擇“用戶和群組”,就可以進行賬戶管理了。
第5步:本地測試。打開Redhat自帶的Evolution電子郵件客戶端程序進行收發測試。設置兩個默認的帳戶cndes@cndes.net和root@cndes.net,然后cndes給root發送了一封測試郵件。如圖24所示。
圖 24
第6步:配置供客戶端使用郵件軟件遠程收取郵件的服務?,F在,很多用戶都習慣利用Outlook等Windows下的軟件收發郵件。為了讓用戶能夠訪問Sendmail服務器中的郵件,就需要安裝IMAP或者POP服務,這樣用戶就可以將電子郵件從主機取回到自己的電腦中閱讀。在Redhat Linux中,這兩個軟件是捆綁在一起的。首先要檢查/usr/sbin目錄下是否有ipop3d或imapd文件。如果沒有,則需要自行安裝。
第7步:安裝ipop3d、imapd文件后,需要打開POP3的連接端口。方法是打開/etc/xinetd.d/下面的ipop3文件,將disable的值修改為no。
第8步:重新啟動xinetd使配置生效。使用命令:“/etc/init.d/xinetd restart”。這樣,一個穩定高效的Linux郵件服務器就可以開始運行了。細心的用戶留意一下許多公司的“招聘廣告”就會發現,學會配置Linux郵件服務器已經成為高薪的必備條件之一。使用此方法后,我們也許會沾沾自喜:原來配置Linux郵件服務器如此簡單!
小提示:現在運行在Linux環境下免費的郵件服務器有若干種選擇,比較常見的有Sendmail、Qmail、Postfix、exim及Zmailer等等。Linux下的Postfix郵件服務器也是一款性能十分卓越的郵件服務器,它快速、易于管理、安全性高,同時和Sendmail郵件服務器的兼容性也很不錯。
2、Linux郵件服務器的安全管理
隨著互連網的普及,郵件服務器受攻擊的可能性也越來越大。目前,因特網上的郵件服務器所受攻擊主要有兩類:第一類是中繼利用(Relay),即遠程任何攻擊者都可以利用郵件服務器向任何地址發郵件,久而久之,你的機器不僅成為發送垃圾郵件的幫兇,也會使網絡國際流量激增,就好像個人信譽降低一樣,很可能被網上的很多郵件服務器所拒絕。另一類攻擊稱為垃圾郵件(Spam),即人們常說的郵件,是指在很短時間內服務器可能接收大量無用的郵件,從而使郵件服務器不堪重負而癱瘓。
如何讓服務器防止中繼利用?如何拒收從外部發來的垃圾郵件?或者設置能阻止一些非法的SMTP認證?從這個問題著手,我們來看看在Linux下進行郵箱管理的一些典型問題,并探討一些行之有效的方法。
(1)拒收特定的IP和發件人。
在實踐中,許多垃圾郵件制造者利用一些工具使發件人的郵件地址變成隨機地址,一般的方法就起不到作用了。針對這種情況,我們可以通過查看郵件日志和網絡的SMTP(25)端口的連接情況,找出數目比較高的IP和連接數比較高的IP,用防火墻來對這些IP進行拒收,從網絡層就拒收這些垃圾郵件,同時也有相當高的效率。
(2)設置垃圾郵件控制規則。
Sendmail的垃圾郵件控制功可以拒收來自某些地址的郵件,而且也防止其他人使用系統轉發垃圾郵件。用戶可以增加添加垃圾郵件控制規則以拒收特定的郵件來源,并且也允許本網絡上的其它計算機通過本系統轉發郵件的規則。單擊“Sendmail配置”下的“垃圾郵件控制”圖標,就可以在Sendmail中設置控制規則了。軟件還提供了“手工編輯 /etc/mail/access”的方式。如圖25所示。
圖 25
(3)使用Anti-Spam軟件。
這項技術的基本原理是定時分析日志,發現有發信頻率過多的用戶就放到badmailfrom文件中?,F在有很多的Anti-Spam軟件,如Spamassassin,Kaspersky Anti-Spam。
(4)使用實時黑洞列表。
RBL(Realtime Blackhole List)是實時黑洞列表,是國際上比較流行的反垃圾郵件技術,可以采用RBL來使郵件服務器拒收在列表中已知的垃圾郵件發送服務器所發送的垃圾郵件。郵件系統的管理是一個循序漸進的過程,采取上面的措施,就可以制止住相當部分的垃圾郵件,這將有利于郵件服務器的負載降低、帶寬占有減少和工作效率提高,從而有利于整個網絡的高效運行。
五、更上一層樓:Linux服務器的安全實踐
網絡安全實踐中,防火墻(Firewall)是被經常強調的重點,它的基本功能是過濾并阻擋本地網絡與Internet之間的數據傳送。另外,無論是網絡管理員還是黑客,對數據截獲分析都十分重視,因此,在進階提高部分,我們也將使用直觀簡單的方式對這兩部分內容進行講解。
1、iptables :Linux服務器下的優秀防火墻
Linux提供了一個非常優秀的防火墻工具—iptables,它完全免費、功能強大、使用靈活、可以對流入和流出的信息進行細化控制,能夠在一臺低配置機器上很好地運行。
(1)安裝和啟動
一般情況下,iptables已經包含在Linux發行版中,運行iptables --version來查看系統是否安裝了iptables。如果系統沒有安裝iptables,則可以從http://www.netfilter.org下載。使用中可以運行man iptables來查看所有命令和選項的完整介紹,或者運行iptables -help來查看一個快速幫助。
iptables服務也可以在圖形模式下開啟,步驟為:依次打開“主菜單”下的“系統設置”,選擇“服務器設置”中的“服務”,拉動滾動條找到iptables選項,選中后點擊“開始”,即可啟動防火墻服務;如果不想使用防火墻,點擊“停止”即可。如圖26所示。
圖 26
(2)使用實例分析
iptables功能十分強大,它可以檢測到源地址和目的地址、源端口和目的端口及流入數據包的順序,即iptables記住了在現有連接中,哪些數據包已經被允許接收。這使得暫時性的端口只有在需要時才會被打開,并且會拒絕所有永久性占用端口的請求,大大地加強了安全性。下面是關于iptables防火墻的一些應用實例。
實際應用中,如果要阻止來自某一特定IP范圍內的數據包,因為該IP地址范圍被管理員懷疑有大量惡意攻擊者在活動:
# iptables -t filter -A INPUT -s xxx.xxx.xxx.0/24 -j DROP |
也可以很輕易地阻止所有流向攻擊者IP地址的數據包,該命令稍有不同:
# iptables -t filter -A OUTPUT -d xxx.xxx.xxx.0/24 -j DROP |
注意這里的A選項,使用它說明是給現有的鏈添加規則。網絡上的惡意攻擊者總是在變化的,因此需要不斷改變IP。假設一個網上攻擊者轉移到新的IP地址,而原來的IP地址被分配給一些清白的用戶,那么這時這些用戶的數據包將無法通過網絡。這種情況下,可以使用帶-D選項的命令來刪除現有的規則:
# iptables -t filter -D OUTPUT -d 192.168.10.0/24 -j DROP |
一旦測試結果令人滿意,就可以將上述測試結果保存為腳本??梢允褂谩癷ptables-save > iptables-script”命令來實現,現在,信息包過濾表中的所有規則都被保存在文件iptables-script中。無論何時再次引導系統,都可以使用 iptables-restore 命令將規則集從該腳本文件恢復到信息包過濾表,命令為“iptables-restore iptables-script”。
創建一個具有很好靈活性、可以抵御各種意外事件的規則需要大量的時間。對于那些沒有時間這樣做的人,最基本的原則是“先拒絕所有的數據包,然后再允許需要的”。下面來為每一個鏈設置缺省的規則:
# iptables -P INPUT DROP
# iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT |
這里選項-P用于設置鏈的策略,只有三個內建的鏈才有策略。這些策略可以讓信息毫無限制地流出,但不允許信息流入。
最后需要提示的是:功能強大的iptables防火墻是完全免費的,這對于那些想要功能卓越而又想節省費用的用戶來說,是一種比較理想的選擇。
2、在Linux下利用TCPDump進行網絡管理
對于網絡管理員來說,要保證整個網絡的正常運行,就必須隨時了解網絡中存在的異常流量、網絡阻塞等現象。打個比方,一部電話的裝置,可以用來雙方通話的內容,而計算機網絡嗅探器則可以計算機程序在網絡上發送和接收到的數據。但是,計算機所傳送的數據是大量的二進制數據。因此,一個網絡程序也必須使用特定的網絡協議來分析數據,進行正確的解碼。如圖27所示,就是一個Windows下的嗅探器。
圖 27
那么,對于鐘愛Linux的網絡安全愛好者來說,能否找到這樣一款強大的Linux下的嗅探器呢?TCPDump就是一款免費的網絡分析工具,它可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析,它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。
(1)安裝和啟動
在Linux下TCPDump的安裝十分簡單,一種是以rpm包的形式來進行安裝,另一種是以源程序的形式安裝。以rpm包的安裝方法比較簡單,通過rpm命令可以直接安裝,rpm包是將軟件編譯后打包成二進制的格式,不需要修改任何東西。安裝時,以超級用戶登錄,參考命令如下:#rpm -ivh TCPDump.rpm。這樣,TCPDump就可以順利地安裝到Linux系統中。不過,現在較高版本的Linux操作系統都自帶了這個工具,關于TCPDump更詳細的信息,可以查看Man TCPDump。
普通情況下,不帶參數執行TCPDump,即:#TCPDump,截獲的是通過第一個網絡界面的數據包。直接啟動TCPDump將監視第一個網絡界面上所有流過的數據包。如圖28所示。
圖 28
從上面的輸出結果來看,TCPDump的基本輸出格式為:“系統時間 來源主機.端口 > 目標主機.端口 數據包參數”。仔細觀察,我們會發現,和上面的Windows界面相比,數據包格式有很多相似之處,這樣也有助于我們來了解這個軟件的使用方法。
(2)參數分析
TCPDump支持多種不同參數,如使用-i參數指定TCPDump監聽的網絡界面,這在計算機具有多個網絡界面時非常有用;使用-c參數可以指定要監聽的數據包數量;使用-w參數指定將監聽到的數據包寫入文件中保存,等等。然而,在數據的海洋中,TCPDump中更復雜的參數主要是用于過濾。這是為什么呢?
因為在實際操作中,網絡中流量很大,如果將所有的數據包都截留下來,數據量就會很大,反而不容易發現所需要的數據包。如果不帶任何參數,TCPDump就會搜索系統中所有的網絡接口,并顯示它截獲的所有數據,這些數據對我們不一定全都需要,而且數據太多不利于分析。所以,我們應當先想好需要哪些數據,TCPDump的語法為:
TCPDump [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>][-i<網絡界面 >][-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>][-vv][- w<數據包文件>][輸出數據欄位]
在實際使用中,我們可以靈活應用。現列舉幾個比較常用的例子:
1、截獲所有192.168.10.1的主機收到的和發出的所有數據包。命令為:
TCPDump host 192.168.10.1 |
實際效果如圖29所示。
圖 29
2、截獲主機192.168.10.1和主機192.168.10.2或192.168.10.3的通信,使用命令(在命令行中適用括號時,一定要):
#tcpdump host 192.168.10.1 and \ (192.168.10.2 or 192.168.10.3 \) |
3、如果想要獲取主機192.168.10.123接收或發出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 192.168.10.123 |
4、獲取主機192.168.10.1除了和主機192.168.10.2之外所有主機通信的ip包,使用命令:
#tcpdump ip host 192.168.10.1 and ! 192.168.10.2 |
3、Linux服務器實例分析
通過上面的操作了解,相信很多電腦愛好者在Linux技術上有了一個質的飛躍。下面,我們綜合運用這些方法來解決一個Linux服務器上安裝問題。下面是一個針對郵件服務器的網絡故障分析。某單位的局域網中有一臺Sendmail郵件服務器,收發郵件等基本功能正常,但在使用中發現一個普遍的怪現象:在PC機上發郵件時,連接郵件服務器后,要等待很長時間才能開始工作。從檢測來看,網絡連接沒有問題,郵件服務器和PC性能都沒有問題,問題可能出在哪里呢?
為了查找問題的所在,可以采用以下的測試方法。首先,我們在PC機client上發送郵件,同時在郵件服務器server上使用TCPDump對這個client的數據包進行捕獲分析,如下:
#TCPDump host client
TCPDump: listening on hme0 23:41:30.040578 client.1065 > server.smtp: S 1087965815:1087965815(0) win 64240 (DF) 23:41:30.040613 server.smtp > client.1065: S 99285900:99285900(0) ack 1087965816 win 10136 (DF) 23:41:30.040960 client.1065 > server.smtp: . ack 1 win 64240 (DF) |
然后,通過分析數據,我們看到雙方順利的完成了會話,也就是說,到目前為止,整個狀態屬于正常的現象。沿著這個思路,我們往下看:
23:41:30.048862 server.33152 > client.113: S 99370916:99370916(0) win 8760 (DF)
23:41:40.161052 server.33152 > client.113: S 99370916:99370916(0) win 8760 (DF) 23:41:56.061130 server.33152 > client.113: R 99370917:99370917(0) win 8760 (DF) 23:41:56.070108 server.smtp > client.1065: P 1:109(108) ack 1 win 10136 (DF) |
通過分析就可以判斷問題所在了。原來,問題在于:我們看到server端試圖連接client的113端口,要求認證,但是沒有收到client端的回應,server端重復嘗試了3次,費時26秒后,才放棄認證請求,并主動發送了reset標志的數據包,開始push后面的數據;而正是在這個過程中所花費的26秒時間,造成了發送郵件時漫長的等待情況。問題找到后,通過修改服務器端的Sendmail配置,再次測試,看到郵件服務器不再進行113端口的認證嘗試,而是在三次檢測后直接push數據,問題得到完美的解決。
實際上,Linux中還有很多優秀的服務器功能,如DNS 服務器、CVS服務器、DHCP服務器、數據庫服務器、Samba網絡服務器等。正是這些優秀的功能組合,再加上完全免費的優勢,使得Linux的功能越來越強大,并逐漸在激烈的操作系統市場中占據了一席之地。通過本文的講解,相信很多用戶一定會更加喜愛Linux操作系統。文章到這里,我們又想起了那只讓人愛不釋手的小企鵝,毫無疑問,正是它歡快自由的腳步,我們才領略到Linux世界的無窮魅力。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
