亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

在Linux系統下配置WWW服務器全攻略

添加時間:2011-2-14  添加: admin 


網絡數據采集分析工具TcpDump的簡介

顧名思義,TcpDump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。tcpdump就是一種免費的網絡分析工具,尤其其提供了源代碼,公開了接口,因此具備很強的可擴展性,對于網絡維護和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系統中,由于它需要將網絡界面設置為混雜模式,普通用戶不能正常執行,但具備root權限的用戶可以直接執行它來獲取網絡上的信息。因此系統中存在網絡分析工具主要不是對本機安全的威脅,而是對網絡上的其他計算機的安全存在威脅。

我們用盡量簡單的話來定義tcpdump,就是:dump the traffice on a network.,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。作為互聯網上經典的的系統管理員必備工具,tcpdump以其強大的功能,靈活的截取策略,成為每個高級的系統管理員分析網絡,排查問題等所必備的東西之一。tcpdump提供了源代碼,公開了接口,因此具備很強的可擴展性,對于網絡維護和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系統中,由于它需要將網絡界面設置為混雜模式,普通用戶不能正常執行,但具備root權限的用戶可以直接執行它來獲取網絡上的信息。因此系統中存在網絡分析工具主要不是對本機安全的威脅,而是對網絡上的其他計算機的安全存在威脅。

網絡數據采集分析工具TcpDump的安裝

在linux下tcpdump的安裝十分簡單,一般由兩種安裝方式。一種是以rpm包的形式來進行安裝。另外一種是以源程序的形式安裝。

rpm包的形式安裝:這種形式的安裝是最簡單的安裝方法,rpm包是將軟件編譯后打包成二進制的格式,通過rpm命令可以直接安裝,不需要修改任何東西。以超級用戶登錄,使用命令如下:

#rpm -ivh tcpdump-3_4a5.rpm

這樣tcpdump就順利地安裝到你的linux系統中。怎么樣,很簡單吧。

源程序的安裝:既然rpm包的安裝很簡單,為什么還要采用比較復雜的源程序安裝呢?其實,linux一個最大的誘人之處就是在她上面有很多軟件是提供源程序的,人們可以修改源程序來滿足自己的特殊的需要。所以我特別建議朋友們都采取這種源程序的安裝方法。

第一步 取得源程序 在源程序的安裝方式中,我們首先要取得tcpdump的源程序分發包,這種分發包有兩種形式,一種是tar壓縮包(tcpdump-3_4a5.tar.Z),另一種是rpm的分發包(tcpdump-3_4a5.src.rpm)。這兩種形式的內容都是一樣的,不同的僅僅是壓縮的方式.tar的壓縮包可以使用如下命令解開:

#tar xvfz tcpdump-3_4a5.tar.Z

rpm的包可以使用如下命令安裝:

#rpm -ivh tcpdump-3_4a5.src.rpm

這樣就把tcpdump的源代碼解壓到/usr/src/redhat/SOURCES目錄下.

第二步 做好編譯源程序前的準備活動

在編譯源程序之前,最好已經確定庫文件libpcap已經安裝完畢,這個庫文件是tcpdump軟件所需的庫文件。同樣,你同時還要有一個標準的c語言編譯器。在linux下標準的c 語言編譯器一般是gcc。 在tcpdump的源程序目錄中。有一個文件是Makefile.in,configure命令就是從Makefile.in文件中自動產生Makefile文件。在Makefile.in文件中,可以根據系統的配置來修改BINDEST 和 MANDEST 這兩個宏定義,缺省值是

BINDEST = @sbindir@

MANDEST = @mandir@

第一個宏值表明安裝tcpdump的二進制文件的路徑名,第二個表明tcpdump的man 幫助頁的路徑名,你可以修改它們來滿足系統的需求。

第三步 編譯源程序

使用源程序目錄中的configure腳本,它從系統中讀出各種所需的屬性。并且根據Makefile.in文件自動生成Makefile文件,以便編譯使用.make 命令則根據Makefile文件中的規則編譯tcpdump的源程序。使用make install命令安裝編譯好的tcpdump的二進制文件。

總結一下就是:


# tar xvfz tcpdump-3_4a5.tar.Z
# vi Makefile.in
# . /configure
# make
# make install

網絡數據采集分析工具TcpDump的使用

普通情況下,直接啟動tcpdump將監視第一個網絡界面上所有流過的數據包。


# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
                         0000 0000 0080 0000 1007 cf08 0900 0000
                         0e80 0000 902b 4695 0980 8701 0014 0002
                         000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
                         ffff 0060 0004 ffff ffff ffff ffff ffff
                         0452 ffff ffff 0000 e85b 6d85 4008 0002
                         0640 4d41 5354 4552 5f57 4542 0000 0000
                         0000 00
^C

tcpdump支持相當多的不同參數,如使用-i參數指定tcpdump監聽的網絡界面,這在計算機具有多個網絡界面時非常有用,使用-c參數指定要監聽的數據包數量,使用-w參數指定將監聽到的數據包寫入文件中保存,等等。

然而更復雜的tcpdump參數是用于過濾目的,這是因為網絡中流量很大,如果不加分辨將所有的數據包都截留下來,數據量太大,反而不容易發現需要的數據包。使用這些參數定義的過濾規則可以截留特定的數據包,以縮小目標,才能更好的分析網絡中存在的問題。tcpdump使用參數指定要監視數據包的類型、地址、端口等,根據具體的網絡問題,充分利用這些過濾規則就能達到迅速定位故障的目的。請使用man tcpdump查看這些過濾規則的具體用法。

顯然為了安全起見,不用作網絡管理用途的計算機上不應該運行這一類的網絡分析軟件,為了屏蔽它們,可以屏蔽內核中的bpfilter偽設備。一般情況下網絡硬件和TCP/IP堆棧不支持接收或發送與本計算機無關的數據包,為了接收這些數據包,就必須使用網卡的混雜模式,并繞過標準的TCP/IP堆棧才行。在FreeBSD下,這就需要內核支持偽設備bpfilter。因此,在內核中取消bpfilter支持,就能屏蔽tcpdump之類的網絡分析工具。

并且當網卡被設置為混雜模式時,系統會在控制臺和日志文件中留下記錄,提醒管理員留意這臺系統是否被用作攻擊同網絡的其他計算機的跳板。

May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled

雖然網絡分析工具能將網絡中傳送的數據記錄下來,但是網絡中的數據流量相當大,如何對這些數據進行分析、分類統計、發現并報告錯誤卻是更關鍵的問題。網絡中的數據包屬于不同的協議,而不同協議數據包的格式也不同。因此對捕獲的數據進行解碼,將包中的信息盡可能的展示出來,對于協議分析工具來講更為重要。昂貴的商業分析工具的優勢就在于它們能支持很多種類的應用層協議,而不僅僅只支持tcp、udp等低層協議。

從上面tcpdump的輸出可以看出,tcpdump對截獲的數據并沒有進行徹底解碼,數據包內的大部分內容是使用十六進制的形式直接打印輸出的。顯然這不利于分析網絡故障,通常的解決辦法是先使用帶-w參數的tcpdump 截獲數據并保存到文件中,然后再使用其他程序進行解碼分析。當然也應該定義過濾規則,以避免捕獲的數據包填滿整個硬盤。FreeBSD提供的一個有效的解碼程序為tcpshow,它可以通過Packages Collection來安裝。


# pkg_add /cdrom/packages/security/tcpshow*
# tcpdump -c 3 -w tcpdump.out
tcpdump: listening on fxp0
# tcpshow < tcpdump.out
---------------------------------------------------------------------------
Packet 1
TIME:12:00:59.984829
LINK:00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026
<*** No decode support for encapsulated protocol ***>
---------------------------------------------------------------------------
Packet 2
TIME:12:01:01.074513 (1.089684)
LINK:00:A0:C9:AB:3CF -> FF:FF:FF:FF:FF:FF type=ARP
ARP:htype=Ethernet ptype=IP hlen=6 plen=4 op=request
sender-MAC-addr=00:A0:C9:AB:3CF sender-IP-address=202.102.245.3
target-MAC-addr=00:00:00:00:00:00 target-IP-address=202.102.245.3
---------------------------------------------------------------------------
Packet 3
TIME:12:01:01.985023 (0.910510)
LINK:00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026
<*** No decode support for encapsulated protocol ***>

tcpshow能以不同方式對數據包進行解碼,并以不同的方式顯示解碼數據,使用者可以根據其手冊來選擇最合適的參數對截獲的數據包進行分析。從上面的例子中可以看出,tcpshow支持的協議也并不豐富,對于它不支持的協議就無法進行解碼。

除了tcpdump之外,FreeBSD的Packages Collecion中還提供了Ethereal和Sniffit兩個網絡分析工具,以及其他一些基于網絡分析方式的安全工具。其中Ethereal運行在X Window 下,具有不錯的圖形界面,Sniffit使用字符窗口形式,同樣也易于操作。然而由于tcpdump對過濾規則的支持能力更強大,因此系統管理員仍然更喜歡使用它。對于有經驗的網絡管理員,使用這些網絡分析工具不但能用來了解網絡到底是如何運行的,故障出現在何處,還能進行有效的統計工作,如那種協議產生的通信量占主要地位,那個主機最繁忙,網絡瓶頸位于何處等等問題。因此網絡分析工具是用于網絡管理的寶貴系統工具。為了防止數據被濫用的網絡分析工具截獲,關鍵還是要在網絡的物理結構上解決。常用的方法是使用交換機或網橋將信任網絡和不信任網絡分隔開,可以防止外部網段竊聽內部數據傳輸,但仍然不能解決內部網絡與外部網絡相互通信時的數據安全問題。如果沒有足夠的經費將網絡上的共享集線器升級為以太網交換機,可以使用FreeBSD系統執行網橋任務。這需要使用option BRIDGE編譯選項重新定制內核,此后使用bridge命令啟動網橋功能。

tcpdump采用命令行方式,它的命令格式為:

  tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 文件名 ]

          [ -i 網絡接口 ] [ -r 文件名] [ -s snaplen ]

          [ -T 類型 ] [ -w 文件名 ] [表達式 ]

(1). tcpdump的選項介紹

-a    將網絡地址和廣播地址轉變成名字;

-d    將匹配信息包的代碼以人們能夠理解的匯編格式給出;

-dd    將匹配信息包的代碼以c語言程序段的格式給出;

-ddd   將匹配信息包的代碼以十進制的形式給出;

-e    在輸出行打印出數據鏈路層的頭部信息;

-f    將外部的Internet地址以數字的形式打印出來;

-l    使標準輸出變為緩沖行形式;

-n    不把網絡地址轉換成名字;

-t    在輸出的每一行不打印時間戳;

-v    輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;

-vv    輸出詳細的報文信息;

-c    在收到指定的包的數目后,tcpdump就會停止;

-F    從指定的文件中讀取表達式,忽略其它的表達式;

-i    指定監聽的網絡接口;

-r    從指定的文件中讀取包(這些包一般通過-w選項產生);

-w    直接將包寫入文件中,并不分析和打印出來;

-T    將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單網絡管理協議;)

(2). tcpdump的表達式介紹

表達式是一個正則表達式,tcpdump利用它作為過濾報文的條件,如果一個報文滿足表達式的條件,則這個報文將會被捕獲。如果沒有給出任何條件,則網絡上所有的信息包將會被截獲。在表達式中一般如下幾種類型的關鍵字。

第一種是關于類型的關鍵字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一臺主機,net 202.0.0.0 指明 202.0.0.0是一個網絡地址,port 23 指明端口號是23。如果沒有指定類型,缺省的類型是host.

第二種是確定傳輸方向的關鍵字,主要包括src , dst ,dst or src, dst and src ,這些關鍵字指明了傳輸的方向。舉例說明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的網絡地址是202.0.0.0 。如果沒有指明方向關鍵字,則缺省是src or dst關鍵字。

第三種是協議的關鍵字,主要包括fddi,ip,arp,rarp,tcp,udp等類型。Fddi指明是在FDDI(分布式光纖數據接口網絡)上的特定的網絡協議,實際上它是"ether"的別名,fddi和ether具有類似的源地址和目的地址,所以可以將fddi協議包當作ether的包進行處理和分析。其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會監聽所有協議的信息包。

除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway, broadcast,less,greater,還有三種邏輯運算,取非運算是 'not ' '! ', 與運算是'and','&&';或運算 是'or' ,'││';這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來說明。

A想要截獲所有210.27.48.1 的主機收到的和發出的所有的數據包:

#tcpdump host 210.27.48.1

B想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中適用   括號時,一定要

#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

C如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用命令:

#tcpdump ip host 210.27.48.1 and ! 210.27.48.2

D如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:

#tcpdump tcp port 23 host 210.27.48.1

(3). tcpdump的輸出結果介紹

下面我們介紹幾種典型的tcpdump命令的輸出信息

A,數據鏈路層頭信息

使用命令

#tcpdump --e host ice

ice 是一臺裝有linux的主機,她的MAC地址是0:90:27:58:AF:1A

H219是一臺裝有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一條命令的輸出結果如下所示:

21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.telne

t 0:0(0) ack 22535 win 8760 (DF)

分析:21:50:12是顯示的時間, 847509是ID號,eth0 <表示從網絡接口eth0 接受該數據包,eth0 >表示從網絡接口設備發送數據包, 8:0:20:79:5b:46是主機H219的MAC地址,它表明是從源地址H219發來的數據包. 0:90:27:58:af:1a是主機ICE的MAC地址,表示該數據包的目的地址是ICE . ip 是表明該數據包是IP數據包,60 是數據包的長度, h219.33357 > ice.telnet 表明該數據包是從主機H219的33357端口發往主機ICE的TELNET(23)端口. ack 22535 表明對序列號是222535的包進行響應. win 8760表明發送窗口的大小是8760.

B,ARP包的TCPDUMP輸出信息

使用命令

#tcpdump arp

得到的輸出結果是:

22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)

22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)

分析: 22:32:42是時間戳, 802509是ID號, eth0 >表明從主機發出該數據包, arp表明是ARP請求包, who-has route tell ice表明是主機ICE請求主機ROUTE的MAC地址。 0:90:27:58:af:1a是主機ICE的MAC地址。

C,TCP包的輸出信息

用TCPDUMP捕獲的TCP包的一般輸出信息是:

src > dst: flags data-seqno ack window urgent options

src > dst:表明從源地址到目的地址, flags是TCP包中的標志信息,S 是SYN標志, F (FIN), P (PUSH) , R (RST) "." (沒有標記); data-seqno是數據包中的數據的順序號, ack是下次期望的順序號, window是接收緩存的窗口大小, urgent表明數據包中是否有緊急指針. Options是選項.

D,UDP包的輸出信息

用TCPDUMP捕獲的UDP包的一般輸出信息是:

route.port1 > ice.port2: udp lenth

UDP十分簡單,上面的輸出行表明從主機ROUTE的port1端口發出的一個UDP數據包到主機ICE的port2端口,類型是UDP, 包的長度是lenth 
 

 

第五站 配置虛擬主機  

虛擬主機是在一臺www服務器上為多個單獨的域名提供www服務,每個域名具有自己的目錄和配置,相當于將一臺主機分為多臺主機,虛擬主機技術對于主機數量不足,但又想為不同的用戶提供獨立的Web服務的需求非常有效。而對于一個公司,利用價格昂貴的服務器只提供一種域名服務,似乎是不明智的,而現在越來越多的公司喜歡在一臺服務器上使用多個域名服務,架設不同的網站,這樣做的好處是顯而易見。  

Apache有兩種方式支持虛擬主機,一種是基于IP的虛擬主機,另一種是基于名字的虛擬主機。基于名字的虛擬主機使用相同的IP地址來配置不同的虛擬主機,這就彌補了因IP地址不足而帶來的問題。基于名字的虛擬主機的配置相當簡單,你只需配置你得DNS服務器使每個主機名對應正確的IP地址,然后再配置Apache HTTP Server使它能認識不同的主機名就可以了。  

假設我們組建了一家多媒體制作公司,有一臺Apache服務器和一個IP地址:192.168.0.1 要運行兩種業務,一種為電子商務網站,域名為www.business.media.com ,另一種為教學網站,域名為www.teaching.media.com 。先在DNS服務器中把域名www.business.media.com和www.teachin....conf就可以了。


  
NameVirtualHost 192.168.0.1  
ServerName www.business.media.com
DocumentRoot /var/www/html/business
ServerName www.teaching.media.com
DocumentRoot /var/www/html/teaching

而基于IP的虛擬主機則要求使用不同的IP地址來區別不同的虛擬主機,這就要求使用多塊網卡,把不同的IP地址捆綁到不同的網卡上,或者在一塊網卡上捆綁多個IP地址。假設我們主機的IP地址為


192.168.0.1(www.media.com),另外有兩個IP地址別?..nf/httpd.conf。[/url]  
ServerAdmin webmaster@ business.media.com
DocumentRoot /var/www/html/business
ServerName www.business.media.com
ErrorLog /var/www/html/business/logs/error_log
TransferLog /var/www/html/business/logs/access_log
ServerAdmin webmaster@teaching.media.com
DocumentRoot /var/www/html/teaching
ServerName www.teaching.media.com
ErrorLog /var/www/html/teaching/logs/error_log
TransferLog /var/www/html/teaching/logs/access_log

第六站配置Apache代理

代理服務器是網絡信息服務的中轉站。如果我們把Apache代理服務器形象地比喻成代理商的話,消費者向代理商購買東西時,如果代理商有的話,可直接賣給消費者,若沒有,則代理商向廠家進貨,再賣給消費者。這樣做有以下幾點好處:(1)提高了訪問速度。(2)充當防火墻,增加了安全性。(3)可以過濾一些不良網站。(4)具有緩存功能。(5)節省IP開銷。代理服務器可分為兩種類型:客戶端代理和服務器端代理。下面我們在講解幾個指令后舉例說明各自的配置方法。

ProxyRequest On/Off #啟用或者禁用Apache代理服務。

CacheRoot "/etc/httpd/proxy" #代理緩存的根目錄。

CacheSize 5 #代理緩存的大小。

CacheGcInterval 4 #設定運行管理緩存的無用數據搜集程序的時間間隔

CacheMaxExpire 24 #文件過期時間。

CacheDefaultExpire 1 #指定未包含過期信息文件的有效期。

NoCache a-domain.com another-domain.edu #該網站的文件將不被緩存。

l、客戶端代理的配置

(1) 修改/etc/httpd/conf/httpd.conf中的相關指令

(2) 修改/etc/httpd/conf/httpd.conf,添加對代理目錄的訪問控制。


Order deny,allow
Deny from all
Allow from .your-domain.com

(3) 重啟httpd。

2、服務器端代理的配置

服務器端代理與客戶端代理不同,它是在防火墻上安裝Apache服務器,使用它提供對WWW服務器的代理訪問。這種方法把WWW服務器與外部隔開,提高了安全性,而對用戶來說,好像沒有變化一樣。假設在內部局域網中WWW服務器的IP地址為192.168.0.2,防火墻主機內部IP地址為192.168.0.5,外部IP地址為192.9.202.1。

(一) 配置防火墻上的Apache

(1) 在/etc/httpd/conf/httpd.conf中添加虛擬主機。


ServerAdmin webmaster@business.media.com
DocumentRoot /www/docs/business.media.com
ServerName www.business.media.com
ErrorLog logs/business.media.com-error_log
CustomLog logs/business.media.com-log_common

(2) 配置局域網中的DNS服務器,把www.business.media.com指向192.9.201.1。

(二) 配置局域網內部WWW服務器

在Linux環境下,有一個非常流行的代理服務器軟件——Squid。他的功能非常的強大,支持HTTP,FTP,Gopher,SSL,和WAIS等協議的代理,而且設置簡單,只需再配置文件中稍稍改動就可以了。

好了,WWW服務器配置這條路總算走完了,筆者希望讀過此文章的人能夠有所收獲,最后,希望在學習Linux這條充滿樂趣而又布滿荊棘的路上的愛好者們,永不言敗,成為真正的高手。

關鍵字:WWW、服務器、DNS、局域網

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站