任何企業(yè)安全策略的一個(gè)主要部分都是實(shí)現(xiàn)和維護(hù)防火墻,因此防火墻在網(wǎng)絡(luò)安全的實(shí)現(xiàn)當(dāng)中扮演著重要的角色。防火墻通常位于企業(yè)網(wǎng)絡(luò)的邊緣,這使得內(nèi)部網(wǎng)絡(luò)與Internet之間或者與其他外部網(wǎng)絡(luò)互相隔離,并限制網(wǎng)絡(luò)互訪從而保護(hù)企業(yè)內(nèi)部網(wǎng)絡(luò)。設(shè)置防火墻目的都是為了在內(nèi)部網(wǎng)與外部網(wǎng)之間設(shè)立唯一的通道,簡化網(wǎng)絡(luò)的安全管理。
在眾多的企業(yè)級(jí)主流防火墻中,Cisco PIX防火墻是所有同類產(chǎn)品性能最好的一種。Cisco PIX系列防火墻目前有5種型號(hào)PIX506,515,520,525,535。其中PIX535是PIX 500系列中最新,功能也是最強(qiáng)大的一款。它可以提供運(yùn)營商級(jí)別的處理能力,適用于大型的ISP等服務(wù)提供商。但是PIX特有的OS操作系統(tǒng),使得大多數(shù)管理是通過命令行來實(shí)現(xiàn)的,不象其他同類的防火墻通過Web管理界面來進(jìn)行網(wǎng)絡(luò)管理,這樣會(huì)給初學(xué)者帶來不便。本文將通過實(shí)例介紹如何配置Cisco PIX防火墻。
在配置PIX防火墻之前,先來介紹一下防火墻的物理特性。防火墻通常具有至少3個(gè)接口,但許多早期的防火墻只具有2個(gè)接口;當(dāng)使用具有3個(gè)接口的防火墻時(shí),就至少產(chǎn)生了3個(gè)網(wǎng)絡(luò),描述如下:
內(nèi)部區(qū)域(內(nèi)網(wǎng))。 內(nèi)部區(qū)域通常就是指企業(yè)內(nèi)部網(wǎng)絡(luò)或者是企業(yè)內(nèi)部網(wǎng)絡(luò)的一部分。它是互連網(wǎng)絡(luò)的信任區(qū)域,即受到了防火墻的保護(hù)。
外部區(qū)域(外網(wǎng))。 外部區(qū)域通常指Internet或者非企業(yè)內(nèi)部網(wǎng)絡(luò)。它是互連網(wǎng)絡(luò)中不被信任的區(qū)域,當(dāng)外部區(qū)域想要訪問內(nèi)部區(qū)域的主機(jī)和服務(wù),通過防火墻,就可以實(shí)現(xiàn)有限制的訪問。
?;饏^(qū)(DMZ)。 ?;饏^(qū)是一個(gè)隔離的網(wǎng)絡(luò),或幾個(gè)網(wǎng)絡(luò)。位于停火區(qū)中的主機(jī)或服務(wù)器被稱為堡壘主機(jī)。一般在?;饏^(qū)內(nèi)可以放置Web服務(wù)器,Mail服務(wù)器等。?;饏^(qū)對(duì)于外部用戶通常是可以訪問的,這種方式讓外部用戶可以訪問企業(yè)的公開信息,但卻不允許他們?cè)L問企業(yè)內(nèi)部網(wǎng)絡(luò)。注意:2個(gè)接口的防火墻是沒有?;饏^(qū)的。
由于PIX535在企業(yè)級(jí)別不具有普遍性,因此下面主要說明PIX525在企業(yè)網(wǎng)絡(luò)中的應(yīng)用。
PIX防火墻提供4種管理訪問模式:
2 非特權(quán)模式。 PIX防火墻開機(jī)自檢后,就是處于這種模式。系統(tǒng)顯示為pixfirewall>
2 特權(quán)模式。 輸入enable進(jìn)入特權(quán)模式,可以改變當(dāng)前配置。顯示為pixfirewall#
2 配置模式。 輸入configure terminal進(jìn)入此模式,絕大部分的系統(tǒng)配置都在這里進(jìn)行。顯示為pixfirewall(config)#
2 監(jiān)視模式。 PIX防火墻在開機(jī)或重啟過程中,按住Escape鍵或發(fā)送一個(gè)"Break"字符,進(jìn)入監(jiān)視模式。這里可以更新操作系統(tǒng)映象和口令恢復(fù)。顯示為monitor>
配置PIX防火墻有6個(gè)基本命令:nameif,interface,ip address,nat,global,route.
這些命令在配置PIX是必須的。以下是配置的基本步驟:
1. 配置防火墻接口的名字,并指定安全級(jí)別(nameif)。
Pix525(config)#nameif ethernet0 outside security0
Pix525(config)#nameif ethernet1 inside security100
Pix525(config)#nameif dmz security50
提示:在缺省配置中,以太網(wǎng)0被命名為外部接口(outside),安全級(jí)別是0;以太網(wǎng)1被命名為內(nèi)部接口(inside),安全級(jí)別是100.安全級(jí)別取值范圍為1~99,數(shù)字越大安全級(jí)別越高。若添加新的接口,語句可以這樣寫:
Pix525(config)#nameif pix/intf3 security40 (安全級(jí)別任?。?
2. 配置以太口參數(shù)(interface)
Pix525(config)#interface ethernet0 auto(auto選項(xiàng)表明系統(tǒng)自適應(yīng)網(wǎng)卡類型 )
Pix525(config)#interface ethernet1 100full(100full選項(xiàng)表示100Mbit/s以太網(wǎng)全雙工通信 )
Pix525(config)#interface ethernet1 100full shutdown (shutdown選項(xiàng)表示關(guān)閉這個(gè)接口,若啟用接口去掉shutdown )
3. 配置內(nèi)外網(wǎng)卡的IP地址(ip address)
Pix525(config)#ip address outside 61.144.51.42 255.255.255.248
Pix525(config)#ip address inside 192.168.0.1 255.255.255.0
很明顯,Pix525防火墻在外網(wǎng)的ip地址是61.144.51.42,內(nèi)網(wǎng)ip地址是192.168.0.1
4. 指定要進(jìn)行轉(zhuǎn)換的內(nèi)部地址(nat)
網(wǎng)絡(luò)地址翻譯(nat)作用是將內(nèi)網(wǎng)的私有ip轉(zhuǎn)換為外網(wǎng)的公有ip.Nat命令總是與global命令一起使用,這是因?yàn)閚at命令可以指定一臺(tái)主機(jī)或一段范圍的主機(jī)訪問外網(wǎng),訪問外網(wǎng)時(shí)需要利用global所指定的地址池進(jìn)行對(duì)外訪問。nat命令配置語法:nat (if_name) nat_id local_ip [netmark]
其中(if_name)表示內(nèi)網(wǎng)接口名字,例如inside. Nat_id用來標(biāo)識(shí)全局地址池,使它與其相應(yīng)的global命令相匹配,local_ip表示內(nèi)網(wǎng)被分配的ip地址。例如0.0.0.0表示內(nèi)網(wǎng)所有主機(jī)可以對(duì)外訪問。[netmark]表示內(nèi)網(wǎng)ip地址的子網(wǎng)掩碼。
例1.Pix525(config)#nat (inside) 1 0 0
表示啟用nat,內(nèi)網(wǎng)的所有主機(jī)都可以訪問外網(wǎng),用0可以代表0.0.0.0
例2.Pix525(config)#nat (inside) 1 172.16.5.0 255.255.0.0
表示只有172.16.5.0這個(gè)網(wǎng)段內(nèi)的主機(jī)可以訪問外網(wǎng)。
5. 指定外部地址范圍(global)
global命令把內(nèi)網(wǎng)的ip地址翻譯成外網(wǎng)的ip地址或一段地址范圍。Global命令的配置語法:global (if_name) nat_id ip_address-ip_address [netmark global_mask]
其中(if_name)表示外網(wǎng)接口名字,例如outside.。Nat_id用來標(biāo)識(shí)全局地址池,使它與其相應(yīng)的nat命令相匹配,ip_address-ip_address表示翻譯后的單個(gè)ip地址或一段ip地址范圍。[netmark global_mask]表示全局ip地址的網(wǎng)絡(luò)掩碼。
例1. Pix525(config)#global (outside) 1 61.144.51.42-61.144.51.48
表示內(nèi)網(wǎng)的主機(jī)通過pix防火墻要訪問外網(wǎng)時(shí),pix防火墻將使用61.144.51.42-61.144.51.48這段ip地址池為要訪問外網(wǎng)的主機(jī)分配一個(gè)全局ip地址。
例2. Pix525(config)#global (outside) 1 61.144.51.42
表示內(nèi)網(wǎng)要訪問外網(wǎng)時(shí),pix防火墻將為訪問外網(wǎng)的所有主機(jī)統(tǒng)一使用61.144.51.42這個(gè)單一ip地址。
例3. Pix525(config)#no global (outside) 1 61.144.51.42
表示刪除這個(gè)全局表項(xiàng)。
6. 設(shè)置指向內(nèi)網(wǎng)和外網(wǎng)的靜態(tài)路由(route)
定義一條靜態(tài)路由。route命令配置語法:route (if_name) 0 0 gateway_ip [metric]
其中(if_name)表示接口名字,例如inside,outside。Gateway_ip表示網(wǎng)關(guān)路由器的ip地址。[metric]表示到gateway_ip的跳數(shù)。通常缺省是1。
例1. Pix525(config)#route outside 0 0 61.144.51.168 1
表示一條指向邊界路由器(ip地址61.144.51.168)的缺省路由。
例2. Pix525(config)#route inside 10.1.1.0 255.255.255.0 172.16.0.1 1
Pix525(config)#route inside 10.2.0.0 255.255.0.0 172.16.0.1 1
如果內(nèi)部網(wǎng)絡(luò)只有一個(gè)網(wǎng)段,按照例1那樣設(shè)置一條缺省路由即可;如果內(nèi)部存在多個(gè)網(wǎng)絡(luò),需要配置一條以上的靜態(tài)路由。上面那條命令表示創(chuàng)建了一條到網(wǎng)絡(luò)10.1.1.0的靜態(tài)路由,靜態(tài)路由的下一條路由器ip地址是172.16.0.1
OK,這6個(gè)基本命令若理解了,就可以進(jìn)入到pix防火墻的一些高級(jí)配置了。
A. 配置靜態(tài)IP地址翻譯(static)
如果從外網(wǎng)發(fā)起一個(gè)會(huì)話,會(huì)話的目的地址是一個(gè)內(nèi)網(wǎng)的ip地址,static就把內(nèi)部地址翻譯成一個(gè)指定的全局地址,允許這個(gè)會(huì)話建立。static命令配置語法:static (internal_if_name,external_if_name) outside_ip_address inside_ ip_address 其中internal_if_name表示內(nèi)部網(wǎng)絡(luò)接口,安全級(jí)別較高。如inside.
external_if_name為外部網(wǎng)絡(luò)接口,安全級(jí)別較低。如outside等。outside_ip_address為正在訪問的較低安全級(jí)別的接口上的ip地址。inside_ ip_address為內(nèi)部網(wǎng)絡(luò)的本地ip地址。
例1. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.8
表示ip地址為192.168.0.8的主機(jī),對(duì)于通過pix防火墻建立的每個(gè)會(huì)話,都被翻譯成61.144.51.62這個(gè)全局地址,也可以理解成static命令創(chuàng)建了內(nèi)部ip地址192.168.0.8和外部ip地址61.144.51.62之間的靜態(tài)映射。
例2. Pix525(config)#static (inside, outside) 192.168.0.2 10.0.1.3
例3. Pix525(config)#static (dmz, outside) 211.48.16.2 172.16.10.8
注釋同例1。通過以上幾個(gè)例子說明使用static命令可以讓我們?yōu)橐粋€(gè)特定的內(nèi)部ip地址設(shè)置一個(gè)永久的全局ip地址。這樣就能夠?yàn)榫哂休^低安全級(jí)別的指定接口創(chuàng)建一個(gè)入口,使它們可以進(jìn)入到具有較高安全級(jí)別的指定接口。
B. 管道命令(conduit)
前面講過使用static命令可以在一個(gè)本地ip地址和一個(gè)全局ip地址之間創(chuàng)建了一個(gè)靜態(tài)映射,但從外部到內(nèi)部接口的連接仍然會(huì)被pix防火墻的自適應(yīng)安全算法(ASA)阻擋,conduit命令用來允許數(shù)據(jù)流從具有較低安全級(jí)別的接口流向具有較高安全級(jí)別的接口,例如允許從外部到DMZ或內(nèi)部接口的入方向的會(huì)話。對(duì)于向內(nèi)部接口的連接,static和conduit命令將一起使用,來指定會(huì)話的建立。
conduit命令配置語法:
conduit;permit | deny global_ip port[-port] protocol foreign_ip [netmask]
permit | deny 允許 | 拒絕訪問
global_ip 指的是先前由global或static命令定義的全局ip地址,如果global_ip為0,就用any代替0;如果global_ip是一臺(tái)主機(jī),就用host命令參數(shù)。
port 指的是服務(wù)所作用的端口,例如www使用80,smtp使用25等等,我們可以通過服務(wù)名稱或端口數(shù)字來指定端口。
protocol 指的是連接協(xié)議,比如:TCP、UDP、ICMP等。
foreign_ip 表示可訪問global_ip的外部ip。對(duì)于任意主機(jī),可以用any表示。如果foreign_ip是一臺(tái)主機(jī),就用host命令參數(shù)。
例1. Pix525(config)#conduit permit tcp host 192.168.0.8 eq www any
這個(gè)例子表示允許任何外部主機(jī)對(duì)全局地址192.168.0.8的這臺(tái)主機(jī)進(jìn)行http訪問。其中使用eq和一個(gè)端口來允許或拒絕對(duì)這個(gè)端口的訪問。Eq ftp 就是指允許或拒絕只對(duì)ftp的訪問。
例2. Pix525(config)#conduit deny tcp any eq ftp host 61.144.51.89
表示不允許外部主機(jī)61.144.51.89對(duì)任何全局地址進(jìn)行ftp訪問。
例3. Pix525(config)#conduit permit icmp any any
表示允許icmp消息向內(nèi)部和外部通過。
例4. Pix525(config)#static (inside, outside) 61.144.51.62 192.168.0.3
Pix525(config)#conduit permit tcp host 61.144.51.62 eq www any
這個(gè)例子說明static和conduit的關(guān)系。192.168.0.3在內(nèi)網(wǎng)是一臺(tái)web服務(wù)器,現(xiàn)在希望外網(wǎng)的用戶能夠通過pix防火墻得到web服務(wù)。所以先做static靜態(tài)映射:192.168.0.3->61.144.51.62(全局),然后利用conduit命令允許任何外部主機(jī)對(duì)全局地址61.144.51.62進(jìn)行http訪問。
C. 配置fixup協(xié)議
fixup命令作用是啟用,禁止,改變一個(gè)服務(wù)或協(xié)議通過pix防火墻,由fixup命令指定的端口是pix防火墻要偵聽的服務(wù)。見下面例子:
例1. Pix525(config)#fixup protocol ftp 21
啟用ftp協(xié)議,并指定ftp的端口號(hào)為21
例2. Pix525(config)#fixup protocol http 80
Pix525(config)#fixup protocol http 1080
為http協(xié)議指定80和1080兩個(gè)端口。
例3. Pix525(config)#no fixup protocol smtp 80
禁用smtp協(xié)議。
D. 設(shè)置telnet
telnet有一個(gè)版本的變化。在pix OS 5.0(pix操作系統(tǒng)的版本號(hào))之前,只能從內(nèi)部網(wǎng)絡(luò)上的主機(jī)通過telnet訪問pix。在pix OS 5.0及后續(xù)版本中,可以在所有的接口上啟用telnet到pix的訪問。當(dāng)從外部接口要telnet到pix防火墻時(shí),telnet數(shù)據(jù)流需要用ipsec提供保護(hù),也就是說用戶必須配置pix來建立一條到另外一臺(tái)pix,路由器或vpn客戶端的ipsec隧道。另外就是在PIX上配置SSH,然后用SSH client從外部telnet到PIX防火墻,PIX支持SSH1和SSH2,不過SSH1是免費(fèi)軟件,SSH2是商業(yè)軟件。相比之下cisco路由器的telnet就作的不怎么樣了。
telnet配置語法:telnet local_ip [netmask]
local_ip 表示被授權(quán)通過telnet訪問到pix的ip地址。如果不設(shè)此項(xiàng),pix的配置方式只能由console進(jìn)行。
說了這么多,下面給出一個(gè)配置實(shí)例供大家參考。
Welcome to the PIX firewall
Type help or '?' for a list of available commands.
PIX525> en
Password:
PIX525#sh config
: Saved
:
PIX Version 6.0(1) ------ PIX當(dāng)前的操作系統(tǒng)版本為6.0
Nameif ethernet0 outside security0
Nameif ethernet1 inside security100 ------ 顯示目前pix只有2個(gè)接口
Enable password 7Y051HhCcoiRTSQZ encrypted
Passed 7Y051HhCcoiRTSQZ encrypted ------ pix防火墻密碼在默認(rèn)狀態(tài)下已被加密,在配置文件中不會(huì)以明文顯示,telnet 密碼缺省為cisco
Hostname PIX525 ------ 主機(jī)名稱為PIX525
Domain-name 123.com ------ 本地的一個(gè)域名服務(wù)器123.com,通常用作為外部訪問
Fixup protocol ftp 21
Fixup protocol http 80
fixup protocol h323 1720
fixup protocol rsh 514
fixup protocol smtp 25
fixup protocol sqlnet 1521
fixup protocol sip 5060 ------ 當(dāng)前啟用的一些服務(wù)或協(xié)議,注意rsh服務(wù)是不能改變端口號(hào)
names ------ 解析本地主機(jī)名到ip地址,在配置中可以用名字代替ip地址,當(dāng)前沒有設(shè)置,所以列表為空
pager lines 24 ------ 每24行一分頁
interface ethernet0 auto
interface ethernet1 auto ------ 設(shè)置兩個(gè)網(wǎng)卡的類型為自適應(yīng)
mtu outside 1500
mtu inside 1500 ------ 以太網(wǎng)標(biāo)準(zhǔn)的MTU長度為1500字節(jié)
ip address outside 61.144.51.42 255.255.255.248
ip address inside 192.168.0.1 255.255.255.0 ------ pix外網(wǎng)的ip地址61.144.51.42,內(nèi)網(wǎng)的ip地址192.168.0.1
ip audit info action alarm
ip audit attack action alarm ------ pix入侵檢測(cè)的2個(gè)命令。當(dāng)有數(shù)據(jù)包具有攻擊或報(bào)告型特征碼時(shí),pix將采取報(bào)警動(dòng)作(缺省動(dòng)作),向指定的日志記錄主機(jī)產(chǎn)生系統(tǒng)日志消息;此外還可以作出丟棄數(shù)據(jù)包和發(fā)出tcp連接復(fù)位信號(hào)等動(dòng)作,需另外配置。
pdm history enable ------ PIX設(shè)備管理器可以圖形化的監(jiān)視PIX
arp timeout 14400 ------ arp表的超時(shí)時(shí)間
global (outside) 1 61.144.51.46 ------ 如果你訪問外部論壇或用QQ聊天等等,上面顯示的ip就是這個(gè)
nat (inside) 1 0.0.0.0 0.0.0.0 0 0
static (inside, outside) 61.144.51.43 192.168.0.8 netmask 255.255.255.255 0 0
conduit permit icmp any any
conduit permit tcp host 61.144.51.43 eq www any
conduit permit udp host 61.144.51.43 eq domain any
------ 用61.144.51.43這個(gè)ip地址提供domain-name服務(wù),而且只允許外部用戶訪問domain的udp端口
route outside 0.0.0.0 0.0.0.0 61.144.51.61 1 ------ 外部網(wǎng)關(guān)61.144.51.61
timeout xlate 3:00:00 ------ 某個(gè)內(nèi)部設(shè)備向外部發(fā)出的ip包經(jīng)過翻譯(global)后,在缺省3個(gè)小時(shí)之后此數(shù)據(jù)包若沒有活動(dòng),此前創(chuàng)建的表項(xiàng)將從翻譯表中刪除,釋放該設(shè)備占用的全局地址
timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 rpc 0:10:00 h323 0:05:00 sip 0:30:00 sip_media 0:02:00
timeout uauth 0:05:00 absolute ------ AAA認(rèn)證的超時(shí)時(shí)間,absolute表示連續(xù)運(yùn)行uauth定時(shí)器,用戶超時(shí)后,將強(qiáng)制重新認(rèn)證
aaa-server TACACS+ protocol tacacs+
aaa-server RADIUS protocol radius ------ AAA服務(wù)器的兩種協(xié)議。AAA是指認(rèn)證,授權(quán),審計(jì)。Pix防火墻可以通過AAA服務(wù)器增加內(nèi)部網(wǎng)絡(luò)的安全
no snmp-server location
no snmp-server contact
snmp-server community public ------ 由于沒有設(shè)置snmp工作站,也就沒有snmp工作站的位置和聯(lián)系人
no snmp-server enable traps ------ 發(fā)送snmp陷阱
floodguard enable ------ 防止有人偽造大量認(rèn)證請(qǐng)求,將pix的AAA資源用完
no sysopt route dnat
telnet timeout 5
ssh timeout 5 ------ 使用ssh訪問pix的超時(shí)時(shí)間
terminal width 80
Cryptochecksum:a9f03ba4ddb72e1ae6a543292dd4f5e7
PIX525#
PIX525#write memory ------ 將配置保存
上面這個(gè)配置實(shí)例需要說明一下,pix防火墻直接擺在了與internet接口處,此處網(wǎng)絡(luò)環(huán)境有十幾個(gè)公有ip,可能會(huì)有朋友問如果我的公有ip很有限怎么辦?你可以添加router放在pix的前面,或者global使用單一ip地址,和外部接口的ip地址相同即可。另外有幾個(gè)維護(hù)命令也很有用,show interface查看端口狀態(tài),show static查看靜態(tài)地址映射,show ip查看接口ip地址,ping outside | inside ip_address確定連通性。