Blueimp 論壇首頁
  首頁  | 討論區  | 最新話題  | 搜尋  | XML  |  登入
博客來購書 | 《主管這樣帶人就對了!》
貝殼鯨魚兒童程式啟蒙(點我去報名)

此話題中所有文章數: 1 [ 話題狀態: 一般 ]
上一話題 此文章已經觀看 34807 次 而且有 0 篇回應
會員大頭照
男寶寶 jieh 《騎士團團長》
文章: 6856
v3.8.8

[轉貼]簡易防火牆建置與流量統計

作者:施勢帆、吳國華

簡介:

防火牆基本上是為了預防別人來存取你的網路,進而管制網路上資料的進出,防火牆一端連接外部的網路(經由真實的IP),另一端則連接內部的網路(虛擬的IP),將你內部的網路與外部的網路給隔離開,防火牆成了進入你內部網路的唯一通道,因此任何進出的資料都要經過防火牆,再經由防火牆來決定是否能夠通行,因此對於安全性更多加了一份保障。

另外在本文中也介紹兩個重量級的軟體,方便監看網路流量和過往的網路封包,這也應是防火牆中的功能之一。

一、防火牆的種類

1. 1. 封包過濾器
封包過濾器的功能為取得每一個封包,經由我們所設定的規則去進行過濾,看是否允許封包的傳送或是拒絕封包,封包過濾器存在於網路階層,而且不會影響到封包中的資料。在RedHat Linux中有一個ipchains的套件(6.0以上已內含),可以經由它來做封包過濾器。

2.代理伺服器(Proxy firewalls)
代理伺服器又常被稱為應用程式閘道,允許通過防火牆間接進入網際網路。

二、開始架設防火牆

網路位址轉換NAT(Netword Address Translation)

由於網際網路的發展愈來愈蓬勃,電腦的數量也跟著急遽增加,導致目前IP不足,一IP難求的現象,所以解決之道要使用虛擬的IP,相信虛擬IP必會成為未來的趨勢。網路上保留了特定IP供給私人虛擬網路使用,在真實的網路上將不會找到這三 組IP,這些虛擬IP位址為:

Class A 10.0.0.0 ~ 10.255.255.255
Class B 172.16.0.0 ~ 172.31.255.255
Class C 192.168.0.0 ~ 192.168.255.255

2-1 查看網路卡狀態

首先必須要有兩張網路卡介面,一張對外(使用真實IP)eth1,一張對內(使用虛擬IP)eth0,執行 ifconfig –a 會出現網路卡的設定值,看是否兩張網路卡都有抓到。
在這裡要注意的是,可能你抓到的是eth0和eth1的設定值是相反的,也就是說eth0對應到的是真實的IP、eth1對應到的是虛擬IP,以筆者的實作,如果是這樣的話,必須要做修改,否且網路會連不出去,在下面會提到。

有可能在裝好系統開機時,可能會卡在開機時的畫面,可能是這樣子的話,建議拿掉一張網路卡重開機,設定完之後再插上。

ifconfig –A | more 查看目前所啟動的網路卡界面,目前為全設好的狀態


2-2 修改/etc/sysconfig/network

若只有捉到一張網路卡,那我們就直接手動安裝另一張網路卡,首先切換目錄到 /etc/sysconfig中,有一個檔案network,其內容為:


其中的FORWARD_IPV4要設為yes,才可以去啟動IP偽裝轉換。

2-3 修改/etc/sysconfig/network-scripts/ifcfg-eth1

接著到 /etc/sysconfig/network-scripts目錄中,會有下列檔案:



目前我們要注意的是ifcfg-eth0、ifcfg-eth1這兩個檔案,在你安裝完之後它只有ifcfg-eth0這個檔案,並沒有ifcfg-eth1。首先將ifcfg-eth0複製成ifcfg-eth1,執行cp ifcfg-eth0 ifcfg-eth1 ,其中ifcfg-eth1為對外網路卡的設定檔,依自己的設備去修改,其內容為:

第一行指定網路卡的界面為:eth1
第三行指定廣播位址為:192.192.73.255
第四行指定IP位址為:192.192.73.35
第五行指定網路遮罩為:255.255.255.0
第六行指定網路號碼為:192.192.73.0
第七行指定是否在開機後去啟動網路卡界面



2-4 修改/etc/sysconfig/network-scripts/ifcfg-eth0

在這我們直接修改設定檔ifcfg-eth0,做為內部虛擬的網路卡介面,其內容為:

第一行指定網路卡的界面為:eth0
第三行指定廣播位址為:192.168.1.255
第四行指定IP位址為:192.168.1.1
第五行指定網路遮罩為:255.255.255.0
第六行指定網路號碼為:192.168.1.0
第七行指定是否在開機後去啟動網路卡界面



在這我們指定的內部網路,其中網路號碼為192.168.1.0,廣播號為192.168.1.255
所以真正可用的虛擬ip位址為192.168.1.1 ~ 192.168.1.254。

2-5 啟動網路卡

啟動: 關閉:
執行: ifconfig eth0 up ifconfig eth0 down
執行: ifconfig eth1 up ifconfig eth1 down

2-6 設定路由表

當上述的檔案設定完、啟動之後,我們必須替這兩個網路去建立route(路由)。
route的命令為:
route add -net network address netmask device

網域 真實網域 虛擬網域
網路號(network) 192.192.73.0 192.168.1.0
網路遮罩(netmask) 255.255.255.0 255.255.255.0
閘道(gateway) 192.192.73.1 192.168.1.1

真實網域路由的設法:
route add –net 192.192.73.0 netmask 255.255.255.0 gw 192.192.73.1

虛擬網域路由的設法:
route add –net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

其路由表為:
route –n



這樣子就安裝好了兩張網路卡,eth1就做為對外部的網路卡(真實的IP),eth0做為對內部的網路卡(虛擬IP)。

2-7 測試

以eth1做為對內的網路介面,其虛擬IP位址為192.168.1.0 ~ 192.168.1.255,因為其第一個為網路號碼,最後一個為廣播號,所以可用的虛擬IP為192.168.1.1 ~ 192.168.1.254,我們將閘道器(gateway)設為192.168.1.1、子網路遮罩設為255.255.255.0,將192.168.1.2 ~ 192.168.1.254 之間的IP分配給內部的機器,之後內部的機器就可以互相通訊(‘ping’),但對於要連出去,還需要一個步驟,那就是使用一支程式,ipchains來達成這個目的。先針對上述的問題,如果要讓內部的機器連接到外部的網路,可先執行:

/sbin/ipchains –A forward –s 192.168.1.0/24 –d 0.0.0.0/0 –j MASQ
/sbin/ipchains –P forward DENY

第一個命令會將來源192.168.1.0 ~ 192.168.1.255的封包使用IP偽裝,將偽裝的封包送轉送給預設的路由,到外部的網路。
第二個命令會將forward的預設政策設為DENY。

你可以將這兩行命令加在/etc/rc.d/rc.local檔案中,使其每次開機時執行。
對於ipchains的使用,會在下面作更詳細的說明。

三、封包過濾防火牆ipchains

若你使用的是新版的Linux,裡面都會有ipchains的套件,直接使用就可以讓你建立封包過濾防火牆。

3-1 ipchains語法

其選項、來源ip、目的地ip、port可以不加,表示為全部。

ipchains語法:

ipchains

命令
input
forward
output 選項 來源ip Port 目的地ip port -j目標
範例:
ipchains –A input –p all –s 192.168.1.2 –d eef.oit.edu.tw 23 –j DENY


3-2 ipchains命令

可以有兩種形式來指定,全名方式或縮寫方式來表示

--add -A 增加新的ipchains規則

--delete -D 刪除第一個ipchains規則,或某一個ipchains規則

--inser -I 插入一個新ipchains規則,其插入需指定規則中的數字,
如果數字為1表示為第一個。

--replace -R 取代所選擇的規則,其取代需指定規則中的數字。

--list -L 列出所選擇設定的ipchains規則,如果沒有規則被指定,
會列出所有的規則出來。

--flush -F 將某個ipchains規則清除(例如:input、output、forward)
這相當於去刪除掉規則的功效。

--zero -Z 將所有規則中的封包和位元組計數器歸零
它也可以去指定-L, --list (list) 選項,會先列出之前的資
料,再列出歸零的資料。

--check -C 檢查封包是否違反所設的規則,這是一個相當有用的測
試,其是-s (來源), -d (目的地), -p (協定), -i (界面)更是必
要。

--new -N 產生一個新的使用者定義規則(user-defined)。

--delete-chain -X 刪除使用者定義的規則,如果沒有指定任何的參數,它將
會所有的定義的規則。

--policy -P 設定目標的政策,只有input,forward,output可以去設定。

--masquerade -M 這個選項可以去查看現在的偽裝連接狀況(須加上-L 選
項),或是去設定kernel偽裝參數(-S選項)。

--set -S 設定偽裝停止時間變數

--help -h 列出描述命令語法的說明。

3-3 ipchains選項參數

可以有兩種形式來指定,全名方式或縮寫方式來表示

使用’!’去反向:驚嘆號’!’有’not’的意義,有許多選項可以加上’!’去使用,表示不
相等的意思。
例如: -s ! localhost
說明: 表示除了localhost的來源位址都可以。


--proto -p [!] protocol 協定:可以用數字或名字,例如:tcp、icmp、
udp及all。
範例:
ipchains –A input –p tcp –s 192.168.1.3 –d eef.oit.edu.tw ftp –j DENY
說明:
來源位址為192.168.1.3的主機不能對eef.oit.edu.tw這台主機做ftp的動作請求。

-- source -s [!] 指定來源位址。

--source-port [!] port 指定來源的port。

--destination -d [!] 指定目的地位址

--destination-port [!] 指定目的地的port

--icmp-type [!] 型式名稱,指定ICMP型式

--interface -i [!] 網路介面名稱 ,lo、eth0、eth1。

-- jump -j 指定規則的目標,如果沒有指定的話,這條規則
算是沒有用處。

--numeric -n 取消DNS查詢,直接使用IP

-- log -l 將關於ipchains的訊息記錄起來,記錄於
/var/log/messages內。

-- verbose -v 完整模式,會列出界面名稱、規則、TOS偽裝,
封包和位元組計數也會列出,須和-L一起使用。

[!] --syn -y 只有當SYN設定時才會符合TCP封包

--TOS -t Type Of Service

[!] --version -V 列出ipchains的版本

--bidirectional -b 雙向模式

範例:
ipchains -A input -b -s 192.168.1.5 -d eef.oit.edu.tw -j DENY

說明:
可以看到-b參數會多出一個來源與目的地相反的規則出來,使得192.168.1.5不能到eef.oit.edu.tw,而eef.oit.edu.tw也不能到192.168.1.5,兩台主機互不相往來。

四、封包過濾防火牆ipchains的操作規則

此段在說明如何去使用ipchains操作規則;大部分相同地你將會使用到增加(-A)和刪除(-D)這兩項命令,其它像插入(-I)、取代(-R)在觀念上都差不多。

4-1 ipchains規則

首先列出ipchains的規則表出來:

ipchains –L


分為三大部分:
input chains:輸入時的過濾規則

例如:ipchains –A input –p tcp –s 192.168.1.3 –d 192.192.69.36 www –j DENY
禁止192.168.1.3的來源位址去存取目的地192.192.69.36的網頁。

forward chain :執行IP偽裝的規則

例如:ipchains –A forward –s 192.168.1.0/24 –d 0.0.0.0/24 –j MASQ
啟動192.168.1.0~255的IP偽裝
output chain:輸出時的過濾規則(與input相反)

例如:ipchains –A output –p tcp –s 192.192.69.36 www –d 192.168.1.3 –j DENY
功用與input相同,只不過來源地址、目的地位址要對換


每個所設的規則必須要去符合情況,以及要做些什麼(目標)。
舉例來說,你可能要去拒絕從IP位址192.168.1.3的ICMP的封包,所以在這裡我們的條件必須是協定ICMP及來源位址必須是192.168.1.3,目的地為192.192.69.39這台主機(若不設則為全部),目標是’DENY’。

指令寫法為:
ipchains –A input –p icmp –s 192.168.1.3 –d 192.192.73.35 –j REJECT


4-2 命令的用法

增加新的規則 -A:
我們增加(-A)’input’的規則,要指明封包的來源位址(‘-s 192.168.1.3’)及協定
(‘-p ICMP’),及應該結果為拒絕(‘-j DENY’)。

範例:
ipchains -A input –s 192.168.1.3 –p icmp –j DENY
說明:拒絕來自192.168.1.3的icmp封包。

刪除規則 -D:
我們刪除ipchains 規則有兩種方法,首先我們知道在’input’的規則中只有一個(剛剛上面所增加的),也是第一個,所以我們可以使用數字來刪除.。

範例:
ipchains –D input 1
說明:刪除input規則中的第一條。

第二種方法是跟增加新的規則差不多,只不過是增加(-A)換成了刪除(-D),這種方法在你如果設定了很多的規則的時候很好用,你可以不必去數它到底是第幾個,只要照打一遍就行了,當然必須要一模一樣才行。

範例:
ipchains -D input –s 192.168.1.3 –p icmp –j DENY


插入新規則 -I:

首先我們先看看目前input中有2個規則:


範例:
ipchains -I input 3 -p icmp -s 192.168.1.6 -j DENY
說明:插入新的規則到第3個位置。
結果:



取代規則 -R:
與插入規則的使用方法相同。

清除規則 -F:
除了可公使用-D來刪除規則之外,還可以使用-F來清除,它是直接清除掉某規則中的全部。

範例:
ipchains –F input
ipchains –F forward
說明:清除掉input、forward的所有規則。

重設(歸零)計數器 -Z:
可以使用-Z命令去使封包的計數歸零。

範例:
ipchains –L –v –Z ; echo;ipchains –L –v
說明:列出所設定的規則,並且把它的封包、位元組清除歸零,再列出規則來。
結果:


改變政策 -P:
當我們查看規則時,第一行是’Chain input (policy ACCEPT):’,其中政策(policy)是ACCEPT,預設是所有的資料都可傳送,除非我們再去設規則去做限制,不過我們也可以去改變預設值,使得預設是全部的網路被拒絕傳送。

範例:
ipchains –P input DENY
ipchains –P forward DENY
ipchains –P output DENY
說明:將所有對內、對外的網路中斷拒絕。

4-3 指定協定種類

使用’-p’來指定協定種類,其中協定分為’TCP’(Transmission Control Protocol)、’UDP’(User Datagram Protocol)、’ICMP’(Internet Control Message Protocol)或是全部(all),在這的協定寫法沒有分大小寫,能以數字代替協定。

在/etc/protocols中有註明各種協定,其中tcp為6,udp為17,icmp為1。

TCP(傳輸控制協定):
位於應用層,如果應用程式(http、ftp)需要可靠性高的資料傳輸方式,那麼就可以採用TCP,TCP會去檢查資料是否安全到達,否則就重新發送資料。將傳輸的資料以TCP格式成為資料段,交由網路層的IP協定去處理,每一段資料含有一個檢查值,接收者用它來驗証資料是否受損,如果接收的資料沒有損壞,會傳回確認回去;如果資料有損會便會丟棄。TCP具有可靠性及連線性。

UDP(使用者資料協定):
位於應用層,讓應用程式直接使用封包傳送服務,如IP提供的傳送服務,UDP協定並不會去檢查封包是否安全到達目的地,因此傳送速度快,但卻是一個不可靠、非連線性的封包協定。

ICMP(網路控制訊息協定):
屬於網際層的一部分,利用IP封包的傳送,發送它的訊息,ICMP發送的訊息執行了如偵測遠端機器是否運作(‘ping’)、資料流的控制(當封包到得太快來不及處理時,目的主機傳回一個ICMP的來源抑制訊息給發送者,告訴資料來源暫時停止傳送封包)。

ICMP並沒有port,但它還是有它的選項參數可以使用,用來選擇ICMP的類型。
我們可以指定ICMP的名稱或是數字代表(可以執行 ipchains –h icmp 去列出詳細的名字)。

一般共同的ICMP封包類型為:
數 字 名 稱 要求的動作
0 echo-reply ping
3 destination-unreachable 任何的TCP/UDP傳輸
5 Redirect routing
8 echo-request ping
11 time-exceeded traceroute

範例:
ipchains -A input -p 1 -s 192.168.1.3 -d 192.192.73.35 -j DENY
說明:主機192.192.73.35拒絕192.168.1.3的ping請求(ICMP的協定為1)。

ipchains -A input -p icmp --icmp-type echo-request –s 192.168.1.3 –d 192.192.73.35 -j REJECT
說明:與上例相同,但多去指明了ICMP種類。

4-4 指定過濾對象

指定來源和目的地的IP位址 -s -d :
來源(-s)和目的地(-d)的表示法有3種:
1. 使用完整的主稱名稱,例如:’mouse.oit.edu.tw’ 或 ‘localhost’
2. 使用IP位址,例如:’192.192.73.36’
3. 允許某範圍的IP位址,例如:’192.192.73.0/24’ 或 ’192.192.73.0/255.255.255.0’ 兩者是一樣的,都是包含了192.192.73.0 ~ 192.192.73.255的IP位址。

在斜線(‘/’)的數字代表了IP位址,’/24’是255.255.255.0,’/32’是
255.255.255.255,其中比較重要的是’0/0’,指全部。

範例:
ipchains –A input –s 0/0 –j DENY
說明:
‘0/0’表示指定所有來源的IP位址都會被拒絕,你也可以不加’-s’參數,也是指定所有的來源IP位址。

4-5 指定UDP和TCP的port

除了去指定協定之外,還可以細分去指定它的port,
例如:
指所有來源位址的port 80,其中80也可以用名字來表示’www’
-p tcp –s 0.0.0.0/0 80

假如要TCP封包可以到達192.168.0.1的任何port,但除了www這個port:
-p tcp –d 192.168.0.1 ! www

其中驚嘆號’!’放置的位址也可以這樣指定:
-p tcp –d ! 192.168.0.1 www

也可以表示為不是192.168.0.1和www的port:
-p tcp –d ! 192.168.0.1 ! www

4-5 重要的指定目標

ipchains利用選項’-j’(--jump)去指定目標,若前面設了一長串,卻少了這最後一項,那你可就要全功盡棄了,沒有了目標,做什麼事都不會成功。
在這要注意的是它必須是大寫。
分為六種目標:

ACCEPT: 允許封包經過

REJECT: 刪除經過的封包,但會產生ICMP回應去告訴來源這個目的地是
不能到達(Destination Port Unreachable)

DENY: 刪除經過的封包,如同沒有接收

MASQ: 告訴kernel去偽裝封包(IP偽裝)

REDIRECT: 告訴kernel送出封包到本地port去取代heading,這只能用在TCP
或UDP協定

4-6 log 記錄 /var/log/message

若你有加上’-l’選項的話,關於ipchains的訊息會被記錄在/var/log/message檔案中,在標準的Linux 系統上,kernel的輸出訊息經由klogd(kernel logging daemon)所記錄。其中的記錄為:

Jul 18 11:38:28 www kernel: Packet log: input REJECT eth0 PROTO=1
(1) (2) (3) (4) (5) (6) (7) (8)
192.168.1.3:8 192.168.1.1:0 L=60 S=0x00 I=7476 F=0x0000 T=32
(9) (10) (11) (12) (13) (14) (15)

ipchains記錄:
(1) 日期、時間
(2) 主機名稱
(3) 使用kernel來記錄
(4) 指出從ipchains產生訊息
(5) 所使用的規則:input
(6) 規則的目標:REJECT
(7) 封包所經過的網路卡界面:eth0
(8) 協定號碼:1(ICMP)、6(TCP)、17(UDP)
(9) 來源IP位址和port
(10) 目的地IP位址和port
(11) 封包的長度
(12) TOS(Type of service)
(13) IP的 ID
(14) 資料段偏移(重新組合資料段封包)
(15) 封包的TTL(Time to live)

五、 ipchains的範例

在這裡要提醒使用者,千萬不要用遠端登入來使用ipchains,因為常會不小心就把自個兒給關在房外,進不了家,有時候為了要測試關掉telnet的功能,就這樣連自己也telnet 不進去了,當然跑到主機前去修改是免不了的事。

關閉所有的服務:
基於安全的理由,我們要把所有對內、對外的窗口給統統關閉起來,執行下列指令將會將進入、輸出、轉送封包的預設政策設為拒絕,這一步最好放在你最後的時候再來做,因為如果先設了所有DENY的規則,則後來設的ACCEPT規則會被先前的DENY給取代。

ipchains –P input DENY
ipchains –P forward DENY
ipchains –P output DENY

啟動虛擬IP的偽裝服務:
將內部虛擬IP192.168.0.0 ~ 255啟動IP封包轉送到外界的網路,使之可以連到外界的任何地方去。

ipchains –A forward –s 192.168.0.0/24 –d 0.0.0.0/0 –j MASQ

預防被別人ping到死:
頻寬消耗是網路上常見的攻擊手法,利用送出大量的封包來攻擊,消耗頻寬,使得對方的主機負荷過重而當機,或是使正當的封包無法正確的傳送,利用ipchains可能去預防這類的事件發生。

ipchains –A input –p icmp –j DENY

當對方ping主機的時候,會出現’Request timed out.’
這會拒絕所有icmp的往來,在之前提到icmp是管訊息的傳送,所以當對方使用’ping’是沒有用的,但關掉也不是件好事,因為當我們要知道遠端主機是否網路有通,也是要用到’ping’,相對的我們也就對主機失去了聯絡。

ipchains –A input –p icmp –j REJECT

若目標使用REJECT,則出現的訊息會為下列樣子,會告訴你這個port是不能到達(被拒絕)
‘From net15.ee.oit.edu.tw (192.192.73.35): Destination Port Unreachable’

開啟某特定服務port:
若你的主機有提供某些服務,可以去開啟那個服務的port,其中-d後接的是自己的主機名稱。

範例一:
為開啟httpd的port,其中www也可以用其數字來表示,port為80
ipchains –A input –p tcp –d 192.192.73.35 www –j ACCEPT

範例二:
為開啟telnet的port,外界可telnet到192.192.73.35這台主機,port為23
ipchains –A input –p tcp –d 192.192.73.35 telnet –j ACCEPT

範例三:
為開啟smtp的port,192.192.73.35可以對外提供smtp的服務,port為25
若要知道服務的port號,可以查看/etc/service檔案。
ipchains –A input –p tcp –d 192.192.73.35 smtp –j ACCEPT

關閉某特定服務的port:
第一個為0.0.0.0/0 所有的IP不能對192.192.73.35的www(port80)去連線
第二個為192.192.73.35的smtp服務被關閉
ipchains –A input –p tcp –d 192.192.73.35 80 –j DENY
ipchains –A input –p tcp –d 192.192.73.35 25 –j DENY

使用封包過濾:
網路上常會有些不受歡迎人、事、物,對於這一點你大可不必擔太多心,只要把他們擋在門外,他們的威脅性也就相對地減少。

假如常有人到你的聊天室、留言板,亂說話、大放獗詞的話,而你又可以追查到他的ip位址,那麼我們就可以把他擋在門外。

範例:
192.192.73.8這台電腦不能夠對主機eef.oit.edu.tw作出任何連線的請求,完全被拒絕在外。
ipchains –A input –p all –s 192.192.73.8 –d eef.oit.edu.tw –j DENY

六、 使用ipchains-save、ipchains –restore 儲存設定值

ipchains有二支程式去儲存、反存我們所設的規則,ipchains-save可以儲存一個或所有的規則,它是指令檔,會先去讀取ipchains的設定檔並且儲存成檔案起來,使用時可以加入-v參數,列出詳細的動作。

範例:
ipchains-save –v > filename
結果:


若要將檔案回復成ipchains的規則,執行下面指令即可:
ipchains-restore < filename

六、 使用webmin 管理 ipchains

看了上述的說明或許讀者會感到十分困難,其實我們也可以使用 webmin 的Third Party Modules 中IPchains Firewalling 來管理,如下圖所示:



其中有Disable, Low, Medium, High, Full 五個安全等級,或者可自定規則,如下圖所示:



七、流量統計

ntop (http://www.ntop.org)是一個網路使用狀況監測軟體,在互動式模式下,ntop 會將網路的使用狀況顯示在使用者的終端機畫面上。在Web 模式中,ntop會像Web Server 一樣產生出內含網路使用狀況的網頁傳回到使用者的瀏覽器上。在RedHat 7.0 powertools中有ntop-1.3.1.-2.i386.rpm,所以在RedHat 7.0下使用rpm –ivh ntop-1.3.1.-2.i386.rpm安裝,然後用ntop –d 執行即可,執行web 輸出畫面如下:(筆者使用的是 1.1 版)





八、流量記錄

Snort (http://www.snort.org)是一個精巧的網路入侵偵測軟體(IDS)。具有執行即時流量分析與封包紀錄功能的特性,提供了協定的分析,封包內容的搜尋。可用來偵測各種不同的攻擊與調查 (如 buffer overflows,stealth port scans,CGI attacks,SMB probes,OS fingerprinting attempts 等等)。Snort 使用 flexible rule based language 來設定那些流量應該被蒐集,那些應該放行。他也具有模組化的偵測引擎。Snort 具有即時警告的特性,其警告的機制可使用 syslog,使用者自訂的檔案,UNIX socket 或是使用 Samclient 傳遞 WinPopup 訊息給 Windows client 端的使用者。(取自LinuxFAB.cx)

取得 snort-1.6.3.tar.gz ,然後執行下列步驟安裝:

tar xvfz snort-1.6.3.tar.gz
cd snort-1.6.3
./configure
make
make install

在此筆者只介紹封包紀錄功能,其他功能日後再述。假定我們要將記錄檔至於首頁上可以執行 snort –C –d –D –l /home/httpd/html/snort,結果如下:



當然筆者有作一些安全上的管理,否則所有網路的機密便曝光了,況且因為記錄所有資料所以檔案會長的很快,所以如果你真要如此記錄,請注意控制的細節。底下我們再深入看看。




看到 USER 了嗎?接下來當然是PASS …….

結論:

看到了這裡相信大家對ipchains的使用應該有進一步的認識,ipchains的功能實在是很強大,無法去說的很徹底,有些小地方要靠讀者去體會才行。另外由 ntop, snort 可以看出網路是如何不安全性,也希望所有網管人員要多重視。(哎!套一句我女兒說的:說別人說自己 :~~)


施勢帆,任職於亞東技術學院電機系 E-mail�[email protected] URL�Ghttp://mouse.oit.edu.tw 吳國華,任職於帆網路研究室

----------------------------------------
支持小惡魔
BTC : 19tn3RnCuwZVukXAwyhDWZD4uBgUZoGJPx
LTC : LTFa17pSvvoe3aU5jbmfcmEpo1xuGa9XeA
知識跟八卦一樣,越多人知道越有價值;知識最好的備份方法,散播!
藍色小惡魔(林永傑): 臉書


[2013/8/21 下午 02:45:15]   [返迴此篇文章頂端 ]  回到頂端