本文檔介紹如何在安全裝置上配置URL過濾。
過濾流量具有以下優點:
它可以幫助降低安全風險並防止不當使用。
它可以更好地控制透過安全裝置的流量。
注意:由於URL過濾需要CPU密集使用,因此使用外部過濾伺服器可確保其他流量的吞吐量不會受到影響。但是,根據網路速度和URL過濾伺服器的容量,使用外部過濾伺服器過濾流量時,初始連線所需的時間可能會明顯變慢。
注意:不支援從較低安全性層級到較高安全性層級實行篩選。URL過濾僅適用於出站流量,例如,源自高安全性介面且目的地為低安全性介面上伺服器的流量。
本文中的資訊係根據以下軟體和硬體版本:
PIX 500系列安全裝置(版本6.2及更高版本)
ASA 5500系列安全裝置(版本7.x及更高版本)
調適型安全裝置管理員(ASDM) 6.0
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
您可以過濾從較安全網路到較安全網路的連線請求。雖然您可以使用訪問控制清單(ACL)來阻止對特定內容伺服器的出站訪問,但由於Internet的規模和動態性質,很難以此方式管理使用情況。透過使用運行以下網際網路過濾產品之一的單獨伺服器,您可以簡化配置並提高安全裝置的效能:
Websense Enterprise -過濾HTTP、HTTPS和FTP。PIX防火牆版本5.3及更高版本支援該功能。
Secure Computing SmartFilter,以前稱為N2H2 -過濾HTTP、HTTPS、FTP和長URL過濾。PIX防火牆版本6.2及更高版本支援該功能。
與使用訪問控制清單相比,這減少了管理任務並提高了過濾效率。此外,由於URL過濾是在單獨的平台上處理的,因此PIX防火牆的效能受到的影響要小得多。但是,當過濾伺服器遠離安全裝置時,使用者可能會注意到訪問網站或FTP伺服器的時間更長。
PIX防火牆使用URL過濾伺服器上定義的策略檢查出站URL請求。PIX防火牆根據來自過濾伺服器的響應來允許或拒絕連線。
當啟用過濾並透過安全裝置定向內容請求時,該請求將同時傳送到內容伺服器和過濾伺服器。如果過濾伺服器允許連線,安全裝置會將響應從內容伺服器轉發到發出請求的客戶端。如果過濾伺服器拒絕連線,安全裝置將丟棄響應並傳送表明連線不成功的消息或返回代碼。
如果在安全裝置上啟用了使用者身份驗證,安全裝置還會將使用者名稱傳送到過濾伺服器。過濾伺服器可以使用特定於使用者的過濾設定,或提供有關使用情況的增強報告。
本節提供用於設定本文件中所述功能的資訊。
注意:使用命令查詢工具(僅限註冊客戶)可以獲取有關本部分使用的命令的更多資訊。
此文件使用以下網路設定:
在本範例中,URL篩選伺服器位於DMZ網路中。位於網路內部的終端使用者嘗試透過Internet訪問位於網路外部的Web伺服器。
這些步驟在使用者請求Web伺服器時完成:
一般使用者瀏覽至Web伺服器上的頁面,然後瀏覽器傳送HTTP要求。
安全裝置收到此請求後,會將該請求轉發到Web伺服器,同時提取URL並向URL過濾伺服器傳送查詢請求。
URL過濾伺服器收到查詢請求後,會檢查其資料庫以確定是允許還是拒絕該URL。它返回permit或deny狀態,並向Cisco IOS®防火牆發出查詢響應。
安全裝置接收此查詢響應並執行下列功能之一:
如果查詢響應允許該URL,則會將HTTP響應傳送給終端使用者。
如果查詢響應拒絕URL,則URL過濾伺服器會將使用者重定向到其自己的內部Web伺服器,該伺服器會顯示一條消息,說明阻止URL的類別。此後,連線兩端被重置。
您需要使用url-server命令來辨識過濾伺服器的地址。您必須根據所使用的過濾伺服器型別使用此命令的相應形式。
注意:對於軟體版本7.x及更高版本,您可以為每個上下文最多辨識四個過濾伺服器。安全裝置按順序使用伺服器,直到伺服器做出響應。在配置中,只能配置一種型別的伺服器,即Websense或N2H2。
Websense是第三方過濾軟體,可以根據以下策略過濾HTTP請求:
目標主機名
目的IP地址
關鍵字
使用者名稱
該軟體維護著一個包含超過2000萬個站點的URL資料庫,這些站點被劃分為60多個類別和子類別。
軟體版本6.2:
url-server [(if_name)] vendor websense host local_ip [timeout seconds] [protocol {TCP | UDP} version]
url-server命令可指定運行N2H2或Websense URL過濾應用程式的伺服器。限制為16個URL伺服器。但是,一次只能使用一個應用程式,可以是N2H2或Websense。此外,如果您在PIX防火牆上更改配置,它不會更新應用伺服器上的配置。這必須根據各個供應商的說明單獨完成。
軟體版本7.x及更高版本:
pix(config)# url-server (if_name) host local_ip [timeout seconds] [protocol TCP | UDP version 1|4 [connections num_conns] ]
用連線到過濾伺服器的安全裝置介面的名稱替換if_name。預設值為inside。用過濾伺服器的IP地址替換local_ip。用安全裝置必須持續嘗試連線過濾伺服器的秒數替換seconds。
使用protocol選項指定要使用TCP還是UDP。對於Websense伺服器,您還可以指定要使用的TCP的version。TCP第1版是預設值。如果PIX防火牆已經對使用者進行了身份驗證,則TCP版本4允許PIX防火牆向Websense伺服器傳送經過身份驗證的使用者名稱和URL日誌記錄資訊。
例如,若要辨識單一Websense篩選伺服器,請發出以下命令:
hostname(config)#url-server (DMZ) vendor websense host 192.168.15.15 protocol TCP version 4
PIX版本6.2:
pix(config)#url-server [(if_name)] vendor n2h2 host local_ip[:port number] [timeout] [protocol TCP | UDP]
軟體版本7.0和7.1:
hostname(config)#url-server (if_name) vendor n2h2 host local_ip[:port number] [timeout seconds] [protocol TCP connections number | UDP [connections num_conns]]
軟體版本7.2及更高版本:
hostname(config)#url-server (if_name) vendor {secure-computing | n2h2} host[port ] [timeout ] [protocol {TCP [connections ]} | UDP]
對於vendor {secure-computing | n2h2},您可以使用secure-computing作為供應商字串。但是,如果想具備向後相容性,則可以使用n2h2。生成配置條目時,secure-computing被儲存為供應商字串。
用連線到過濾伺服器的安全裝置介面的名稱替換if_name。預設值為inside。用過濾伺服器的IP地址替換local_ip,用所需的埠號替換port <number>。
注意:安全計算SmartFilter伺服器使用TCP或UDP與安全裝置通訊時使用的預設埠是埠4005。
用安全裝置必須持續嘗試連線過濾伺服器的秒數替換seconds。使用protocol選項指定要使用TCP還是UDP。
connections <number>是在主機和伺服器之間嘗試建立連線的次數。
例如,要標識單個N2H2過濾伺服器,請發出以下命令:
hostname(config)#url-server (DMZ) vendor n2h2 host 192.168.15.15 port 4444 timeout 45 protocol tcp connections 10
或者,如果您要使用預設值,請發出以下命令:
hostname(config)#url-server (DMZ) vendor n2h2 host 192.168.15.15
注意:必須先標識並啟用URL過濾伺服器,然後才能啟用URL過濾。
當過濾伺服器批准HTTP連線請求時,安全裝置允許來自Web伺服器的應答到達發起該請求的客戶端。如果過濾伺服器拒絕該請求,安全裝置會將使用者重定向到指示訪問被拒絕的阻止頁面。
發出filter url命令,以配置用於過濾URL的策略:
PIX版本6.2:
filter url [http | port[-port] local_ip local_mask foreign_ip foreign_mask] [allow] [proxy-block] [longurl-truncate | longurl-deny] [cgi-truncate]
軟體版本7.x及更高版本:
filter url [http | port[-port] local_ip local_mask foreign_ip foreign_mask] [allow] [proxy-block] [longurl-truncate | longurl-deny] [cgi-truncate]
如果要使用HTTP (80)預設埠以外的其他埠,請使用用來過濾HTTP流量的埠號替換port。要標識埠號範圍,請輸入以連字元分隔的範圍的開始和結束。
啟用過濾後,安全裝置將停止出站HTTP流量,直到過濾伺服器允許連線。如果主過濾伺服器沒有響應,安全裝置會將過濾請求定向到輔助過濾伺服器。如果使用allow選項,則在主過濾伺服器不可用時,安全裝置會轉發HTTP流量,而不進行過濾。
發出proxy-block命令,以將所有請求轉給代理伺服器。
注意:其餘引數用於截斷長URL。
使用longurl-truncate選項,當URL的長度超過允許的最大長度時,安全裝置只將URL的主機名或IP地址部分傳送給過濾伺服器進行評估。
使用longurl-deny選項可以在URL的長度超過最大長度限制時拒絕出站的URL流量。
使用cgi-truncate選項可以截斷CGI URL,使其只包含CGI指令碼位置和指令碼名稱,而不包含任何引數。
以下是一般篩選器組態範例:
hostname(config)#filter url http 192.168.5.0 255.255.255.0 172.30.21.99 255.255.255.255 allow proxy-block longurl-truncate cgi-truncate
如果要對常規過濾策略進行例外處理,請發出以下命令:
filter url except local_ip local_mask foreign_ip foreign_mask]
用您想從過濾限制中排除的使用者或子網的IP地址和子網掩碼替換local_ip和local_mask。
用您想從過濾限制中排除的伺服器或子網的IP地址和子網掩碼替換foreign_ip和foreign_mask。
例如,此命令會使從內部主機到172.30.21.99的所有HTTP請求轉發到過濾伺服器,來自主機192.168.5.5的請求除外:
以下是例外的組態範例:
hostname(config)#filter url except 192.168.5.5 255.255.255.255 172.30.21.99 255.255.255.255
本節提供有關高級過濾引數的資訊,包括以下主題:
緩衝
快取
長URL支援
當使用者發出連線內容伺服器的請求時,安全裝置將同時向內容伺服器和過濾伺服器傳送該請求。如果過濾伺服器在內容伺服器之前沒有響應,則伺服器響應將被丟棄。這會從Web使用者端的觀點延遲Web伺服器回應,因為使用者端必須重新發出要求。
如果啟用了HTTP響應緩衝區,來自Web內容伺服器的響應將被緩衝,如果過濾伺服器允許連線,響應將被轉發到發出請求的客戶端。這可以防止否則可能發生的延遲。
若要緩衝對HTTP要求的回應,請完成以下步驟:
要對等待來自過濾伺服器的響應的HTTP請求啟用響應緩衝,請發出以下命令:
hostname(config)#url-block block block-buffer-limit
用要緩衝的塊的最大數量替換block-buffer-limit。
若要設定可用以緩衝待處理URL的最大記憶體,以及使用Websense緩衝較長URL的最大記憶體,請發出以下命令:
hostname(config)#url-block url-mempool memory-pool-size
用2到10240之間的值替換memory-pool-size,表示2 KB到10 MB之間的最大記憶體分配。
使用者訪問站點後,過濾伺服器允許安全裝置將伺服器地址快取一段時間,只要該地址所託管的每個站點都屬於允許所有時間的類別。然後,當使用者再次訪問伺服器,或者如果其他使用者訪問伺服器,安全裝置就不需要再次查詢過濾伺服器。
如果要提高吞吐率,請發出url-cache命令:
hostname(config)#url-cache dst | src_dst size
用1到128 (KB)範圍內的快取大小值替換size。
使用dst關鍵字可以根據URL目標地址快取條目。如果所有使用者在Websense伺服器上共用相同的URL過濾策略,請選擇此模式。
使用src_dst關鍵字可以根據發出URL請求的源地址和URL目標地址來快取條目。如果使用者在Websense伺服器上未共用相同的URL過濾策略,請選擇此模式。
預設情況下,如果HTTP URL超過1159個字元,安全裝置會將其視為長URL。您可以使用此命令增加單個URL允許的最大長度:
hostname(config)#url-block url-size long-url-size
用每個要緩衝的長URL的最大大小(以KB為單位)替換long-url-size。
例如,以下命令配置安全裝置以進行高級URL過濾:
hostname(config)#url-block block 10 hostname(config)#url-block url-mempool 2 hostname(config)#url-cache dst 100 hostname(config)#url-block url-size 2
此組態包括本檔案所描述的命令:
ASA 8.0配置 |
---|
ciscoasa#show running-config : Saved : ASA Version 8.0(2) ! hostname ciscoasa domain-name Security.lab.com enable password 2kxsYuz/BehvglCF encrypted no names dns-guard ! interface GigabitEthernet0/0 speed 100 duplex full nameif outside security-level 0 ip address 172.30.21.222 255.255.255.0 ! interface GigabitEthernet0/1 description INSIDE nameif inside security-level 100 ip address 192.168.5.11 255.255.255.0 ! interface GigabitEthernet0/2 description LAN/STATE Failover Interface shutdown ! interface GigabitEthernet0/3 description DMZ nameif DMZ security-level 50 ip address 192.168.15.1 255.255.255.0 ! interface Management0/0 no nameif no security-level no ip address ! passwd 2KFQnbNIdI.2KYOU encrypted boot system disk0:/asa802-k8.bin ftp mode passive clock timezone CST -6 clock summer-time CDT recurring dns server-group DefaultDNS domain-name Security.lab.com same-security-traffic permit intra-interface pager lines 20 logging enable logging buffer-size 40000 logging asdm-buffer-size 200 logging monitor debugging logging buffered informational logging trap warnings logging asdm informational logging mail debugging logging from-address aaa@cisco.com mtu outside 1500 mtu inside 1500 mtu DMZ 1500 no failover failover lan unit primary failover lan interface interface GigabitEthernet0/2 failover link interface GigabitEthernet0/2 no monitor-interface outside icmp unreachable rate-limit 1 burst-size 1 asdm image disk0:/asdm-602.bin asdm history enable arp timeout 14400 global (outside) 1 interface nat (inside) 1 0.0.0.0 0.0.0.0 route outside 0.0.0.0 0.0.0.0 172.30.21.244 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout uauth 0:05:00 absolute ldap attribute-map tomtom dynamic-access-policy-record DfltAccessPolicy url-server (DMZ) vendor websense host 192.168.15.15 timeout 30 protocol TCP version 1 connections 5 url-cache dst 100 aaa authentication ssh console LOCAL aaa authentication enable console LOCAL aaa authentication telnet console LOCAL filter url except 192.168.5.5 255.255.255.255 172.30.21.99 255.255.255.255 filter url http 192.168.5.0 255.255.255.0 172.30.21.99 255.255.255.255 allow proxy-block longurl-truncate cgi-truncate http server enable http 172.30.0.0 255.255.0.0 outside no snmp-server location no snmp-server contact telnet 0.0.0.0 0.0.0.0 inside telnet timeout 5 ssh 0.0.0.0 0.0.0.0 inside ssh timeout 60 console timeout 0 management-access inside dhcpd address 192.168.5.12-192.168.5.20 inside dhcpd enable inside ! threat-detection basic-threat threat-detection statistics access-list ! class-map inspection_default match default-inspection-traffic ! ! policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect icmp ! service-policy global_policy global url-block url-mempool 2 url-block url-size 2 url-block block 10 username fwadmin password aDRVKThrSs46pTjG encrypted privilege 15 prompt hostname context Cryptochecksum:db208a243faa71f9b3e92491a6ed2105 : end |
本部分演示如何使用自適應安全裝置管理器(ASDM)為安全裝置配置URL過濾。
啟動ASDM後,請完成以下步驟:
選擇Configuration窗格。
在Configuration窗格所顯示的清單中,按一下Firewall。
從Firewall下拉選單中,選擇URL Filtering Servers。選擇要使用的URL過濾伺服器型別,然後按一下Add配置其引數。
注意:您必須先新增篩選伺服器,才能設定HTTP、HTTPS或FTP篩選規則的篩選。
在躍現式視窗中選擇適當的引數:
Interface -顯示連線到過濾伺服器的介面
IP Address -顯示過濾伺服器的IP地址
Timeout -顯示到過濾伺服器的請求超時前的秒數
Protocol -顯示用於與過濾伺服器通訊的協定。TCP第1版是預設值。如果PIX防火牆已經對使用者進行了身份驗證,TCP版本4允許PIX防火牆向Websense伺服器傳送經過身份驗證的使用者名稱和URL日誌記錄資訊
TCP連線-顯示允許與URL過濾伺服器通訊的TCP連線的最大數量
輸入引數後,在彈出窗口中按一下OK,然後在主窗口中按一下Apply。
從Firewall下拉選單中,選擇Filter Rules。在主窗口中按一下Add按鈕,然後選擇您要增加的規則型別。在本示例中,選擇Add Filter HTTP Rule。
當彈出窗口出現時,可以按一下Source、Destination和Service選項的瀏覽按鈕,以選擇適當的引數。
以下是Source選項的瀏覽窗口。進行選擇,然後按一下OK。
完成所有引數的選擇後,按一下OK繼續。
配置完適當的引數後,按一下Apply提交更改。
對於高級URL過濾選項,從Firewall下拉選單中再次選擇URL Filtering Servers,然後按一下主窗口中的Advanced按鈕。
在彈出窗口中配置引數,如URL快取大小、URL緩衝區大小和長URL支援。在彈出窗口中按一下OK,然後在主窗口中按一下Apply以繼續。
最後,請確保在終止ASDM會話之前儲存所做的更改。
使用本節中的命令可檢視URL過濾資訊。您可以使用這些指令來驗證您的組態。
輸出直譯器工具(僅供註冊客戶使用) (OIT)支援某些show指令。使用OIT可檢視對show命令輸出的分析。
show url-server —顯示有關過濾伺服器的資訊
舉例來說:
hostname#show url-server url-server (DMZ) vendor n2h2 host 192.168.15.15 port 4444 timeout 45 protocol tcp connections 10
在軟體版本7.2及更高版本中,此命令的形式為show running-config url-server。
show url-server stats —顯示有關過濾伺服器的資訊和統計資訊
對於軟體版本7.2,此命令的形式為show running-config url-server statistics。
在軟體版本8.0及更高版本中,此命令的形式為show url-server statistics。
舉例來說:
hostname#show url-server statistics Global Statistics: -------------------- URLs total/allowed/denied 13/3/10 URLs allowed by cache/server 0/3 URLs denied by cache/server 0/10 HTTPSs total/allowed/denied 138/137/1 HTTPSs allowed by cache/server 0/137 HTTPSs denied by cache/server 0/1 FTPs total/allowed/denied 0/0/0 FTPs allowed by cache/server 0/0 FTPs denied by cache/server 0/0 Requests dropped 0 Server timeouts/retries 0/0 Processed rate average 60s/300s 0/0 requests/second Denied rate average 60s/300s 0/0 requests/second Dropped rate average 60s/300s 0/0 requests/second Server Statistics: -------------------- 192.168.15.15 UP Vendor websense Port 15868 Requests total/allowed/denied 151/140/11 Server timeouts/retries 0/0 Responses received 151 Response time average 60s/300s 0/0 URL Packets Sent and Received Stats: ------------------------------------ Message Sent Received STATUS_REQUEST 1609 1601 LOOKUP_REQUEST 1526 1526 LOG_REQUEST 0 NA Errors: ------- RFC noncompliant GET method 0 URL buffer update failure 0
show url-block -顯示URL塊緩衝的配置
舉例來說:
hostname#show url-block url-block url-mempool 128 url-block url-size 4 url-block block 128
在軟體版本7.2及更高版本中,此命令的形式為show running-config url-block。
show url-block block statistics —顯示URL塊統計資訊
舉例來說:
hostname#show url-block block statistics URL Pending Packet Buffer Stats with max block 128 ----------------------------------------------------- Cumulative number of packets held: 896 Maximum number of packets held (per URL): 3 Current number of packets held (global): 38 Packets dropped due to exceeding url-block buffer limit: 7546 HTTP server retransmission: 10 Number of packets released back to client: 0
對於軟體版本7.2,此命令的形式為show running-config url-block block statistics。
show url-cache stats —顯示如何使用快取
舉例來說:
hostname#show url-cache stats URL Filter Cache Stats ---------------------- Size : 128KB Entries : 1724 In Use : 456 Lookups : 45 Hits : 8
在軟體版本8.0中,此命令的形式為show url-cache statistics。
show perfmon -顯示URL過濾效能統計資訊,以及其他效能統計資訊。過濾統計資訊顯示在「URL訪問」和「URL伺服器請求」行中。
舉例來說:
hostname#show perfmon PERFMON STATS: Current Average Xlates 0/s 0/s Connections 0/s 2/s TCP Conns 0/s 2/s UDP Conns 0/s 0/s URL Access 0/s 2/s URL Server Req 0/s 3/s TCP Fixup 0/s 0/s TCPIntercept 0/s 0/s HTTP Fixup 0/s 3/s FTP Fixup 0/s 0/s AAA Authen 0/s 0/s AAA Author 0/s 0/s AAA Account 0/s 0/s
show filter -顯示過濾配置
舉例來說:
hostname#show filter filter url http 192.168.5.5 255.255.255.255 172.30.21.99 255.255.255.255 allow proxy-block longurl-truncate cgi-truncate
在軟體版本7.2及更高版本中,此命令的形式為show running-config filter。
本部分提供有關如何對配置進行故障排除的資訊。
當防火牆等待從URL伺服器獲得確認時,用於儲存伺服器應答的URL快取將用盡。
此問題基本上與ASA和Websense伺服器之間的延遲有關。為了解決此問題,請嘗試以下解決方法。
嘗試將ASA上使用的協定更改為UDP,以便與Websense通訊。
Websense伺服器和防火牆之間存在延遲問題,在該問題中,來自Websense伺服器的回覆需要很長時間才能返回防火牆,因此這會導致URL緩衝區在等待響應時填滿。
您可以使用UDP而不是TCP進行Websense伺服器和防火牆之間的通訊。這是因為當您使用TCP進行URL過濾時,對於每個新的URL請求,ASA需要與Websense伺服器建立TCP連線。由於UDP是無連線協定,因此ASA不會被迫建立連線以接收伺服器的響應。這應該會改善伺服器的效能。
ASA(config)#url-server (inside) vendor websense host X.X.X.X timeout 30 protocol UDP version 4 connections 5
請務必將url-block塊增加到可能的最高值,即128。可以透過show url-block命令進行檢視這個值。
如果顯示128,請將Cisco錯誤ID CSCta27415(僅限註冊客戶)增強功能列入考慮。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
03-Jul-2007 |
初始版本 |