本文檔提供使用靜態網路地址轉換(NAT)語句在ASA 5500系列自適應安全裝置或PIX 500系列安全裝置上執行域名系統(DNS)修正的示例配置。DNS修正允許安全裝置重寫DNS A記錄。
DNS重寫執行兩個功能:
當DNS客戶端位於專用介面上時,將DNS應答中的公共地址(可路由或對映的地址)轉換為專用地址(實際地址)。
當DNS客戶端位於公共介面上時,將私有地址轉換為公共地址。
注意:本文檔中的配置包含兩個NAT介面;內部和外部。有關使用static命令和三個NAT介面(內部、外部和dmz)進行DNS修正的示例,請參閱PIX/ASA:使用static命令和三個NAT介面執行DNS修正的配置示例。
有關如何在安全裝置上使用NAT的詳細資訊,請參閱PIX/ASA 7.x NAT和PAT語句和在PIX上使用nat、global、static、conduit和access-list命令以及埠重定向(轉發)。
必須啟用DNS檢查,才能在安全裝置上執行DNS修正。預設情況下,DNS檢測處於打開狀態。如果該檢查處於停用狀態,請參閱本文檔後面的配置DNS檢查部分以將其重新啟用。啟用DNS檢查後,安全裝置將執行以下任務:
根據使用static和nat命令完成的配置轉換DNS記錄(DNS重寫)。轉換只適用於DNS回覆中的A記錄。因此,請求PTR記錄的反向查詢不受DNS重寫的影響。
注意:DNS重寫與靜態埠地址轉換(PAT)不相容,因為多個PAT規則適用於每個A記錄,並且要使用的PAT規則不明確。
強制設定最大DNS消息長度(預設值為512位元組,最大長度為65535位元組)。必要時會執行重組,以驗證封包長度是否小於配置的最大長度。如果封包超過最大長度,就會將其捨棄。
注意:如果在不使用最大長度選項的情況下發出inspect dns命令,則不會檢查DNS資料包的大小。
強制域名長度為255位元組,標籤長度為63位元組。
如果DNS消息中遇到壓縮指標,則驗證指標引用的域名的完整性。
檢查是否存在壓縮指標回圈。
本文檔中的資訊基於ASA 5500系列安全裝置版本7.2(1)。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
此配置還可用於Cisco PIX 500系列安全裝置6.2版或更高版本。
注意:思科自適應安全裝置管理器(ASDM)配置僅適用於版本7.x。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
在典型的DNS交換中,客戶端會向DNS伺服器傳送URL或主機名,以確定該主機的IP地址。DNS伺服器接收請求,查詢該主機的名稱到IP地址的對映,然後將A記錄與IP地址提供給客戶端。儘管此過程在許多情況下都運行良好,但可能會出現問題。當客戶端和客戶端嘗試訪問的主機都位於NAT後的同一專用網路上,但客戶端使用的DNS伺服器位於另一公共網路時,就會發生這些問題。
在此場景中,客戶端和客戶端嘗試訪問的WWW伺服器都位於ASA的內部介面上。動態PAT配置為允許客戶端訪問網際網路。帶訪問清單的靜態NAT配置為允許伺服器訪問Internet,以及允許Internet主機訪問WWW伺服器。
此圖是此情況的範例。在這種情況下,地址為192.168.100.2的客戶端想要使用server.example.com URL來訪問地址為192.168.100.10的WWW伺服器。客戶端的DNS服務由位於172.22.1.161的外部DNS伺服器提供。因為DNS伺服器位於另一個公共網路上,所以它不知道WWW伺服器的私有IP地址。相反,它知道WWW伺服器對映地址172.20.1.10。因此,DNS伺服器包含server.example.com到172.20.1.10的「IP地址到名稱」對映。
如果在這種情況下未啟用DNS修正或其他解決方案,則當客戶端傳送獲取server.example.com的IP地址的DNS請求時,它將無法訪問WWW伺服器。這是因為客戶端收到一個A記錄,其中包含對映的公共地址:WWW伺服器的172.20.1.10。當客戶端嘗試訪問此IP地址時,安全裝置會丟棄資料包,因為它不允許在同一介面上重定向資料包。以下是未啟用DNS修正時,配置的NAT部分的外觀:
ciscoasa(config)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Output suppressed. global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 access-group OUTSIDE in interface outside !--- Output suppressed.
當DNS修正未啟用時,ASDM中的配置如下所示:
以下是未啟用DNS修正時事件的封包擷取:
客戶端傳送DNS查詢。
No. Time Source Destination Protocol Info 1 0.000000 192.168.100.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f) Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 50879 (50879), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x0004 Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
ASA對DNS查詢執行PAT並轉發查詢。請注意,資料包的源地址已更改為ASA的外部介面。
No. Time Source Destination Protocol Info 1 0.000000 172.20.1.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 (00:30:94:01:f1:22) Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 1044 (1044), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x0004 Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
DNS伺服器使用WWW伺服器的對映地址進行應答。
No. Time Source Destination Protocol Info 2 0.005005 172.22.1.161 172.20.1.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 (172.20.1.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 1044 (1044) Domain Name System (response) [Request In: 1] [Time: 0.005005000 seconds] Transaction ID: 0x0004 Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
ASA會撤消對DNS響應目標地址的轉換,並將資料包轉發到客戶端。請注意,在未啟用DNS修正的情況下,應答中的地址仍然是WWW伺服器的對映地址。
No. Time Source Destination Protocol Info 2 0.005264 172.22.1.161 192.168.100.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 (00:04:c0:c8:e4:00) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 (192.168.100.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 50879 (50879) Domain Name System (response) [Request In: 1] [Time: 0.005264000 seconds] Transaction ID: 0x0004 Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
此時,客戶端嘗試訪問地址為172.20.1.10的WWW伺服器。ASA會為此通訊建立連線條目。但是,由於它不允許流量從內部流向外部流入內部,因此連線超時。ASA日誌顯示:
%ASA-6-302013: Built outbound TCP connection 54175 for outside:172.20.1.10/80 (172.20.1.10/80) to inside:192.168.100.2/11001 (172.20.1.2/1024) %ASA-6-302014: Teardown TCP connection 54175 for outside:172.20.1.10/80 to inside:192.168.100.2/11001 duration 0:00:30 bytes 0 SYN Timeout
使用dns關鍵字進行DNS修正,安全裝置可以攔截和重寫DNS伺服器應答客戶端的內容。如果正確配置了安全裝置,安全裝置則可以修改A記錄,從而允許諸如問題:客戶端無法訪問WWW伺服器部分中討論的場景中的客戶端進行連線。在這種情況下,DNS修正處於啟用狀態,安全裝置可以重寫A記錄以將客戶端定向到192.168.100.10而不是172.20.1.10。在將dns關鍵字增加到靜態NAT語句時,會啟用DNS修正。以下是啟用DNS修正時,配置的NAT部分的外觀:
ciscoasa(config)#show run : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Output suppressed. global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns !--- The "dns" keyword is added to instruct the security appliance to modify !--- DNS records related to this entry. access-group OUTSIDE in interface outside !--- Output suppressed.
要在ASDM中配置DNS修正,請完成以下步驟:
導航到Configuration > NAT,然後選擇要進行修改的靜態NAT規則。按一下Edit。
按一下NAT Options...。
選中Translate DNS replies that match the translation rule覈取方塊。
按一下OK退出「NAT Options」窗口。按一下OK退出「Edit Static NAT Rule」窗口。按一下Apply,將您的配置傳送到安全裝置。
以下是啟用DNS修正時事件的封包擷取:
客戶端傳送DNS查詢。
No. Time Source Destination Protocol Info 1 0.000000 192.168.100.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f) Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 52985 (52985), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x000c Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
ASA對DNS查詢執行PAT並轉發查詢。請注意,資料包的源地址已更改為ASA的外部介面。
No. Time Source Destination Protocol Info 1 0.000000 172.20.1.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 (00:30:94:01:f1:22) Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 1035 (1035), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x000c Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
DNS伺服器使用WWW伺服器的對映地址進行應答。
No. Time Source Destination Protocol Info 2 0.000992 172.22.1.161 172.20.1.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 (172.20.1.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 1035 (1035) Domain Name System (response) [Request In: 1] [Time: 0.000992000 seconds] Transaction ID: 0x000c Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
ASA會撤消對DNS響應目標地址的轉換,並將資料包轉發到客戶端。請注意,在DNS修正處於啟用狀態時,會將應答中的地址重寫為WWW伺服器的實際地址。
No. Time Source Destination Protocol Info 2 0.001251 172.22.1.161 192.168.100.2 DNS Standard query response A 192.168.100.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 (00:04:c0:c8:e4:00) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 (192.168.100.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 52985 (52985) Domain Name System (response) [Request In: 1] [Time: 0.001251000 seconds] Transaction ID: 0x000c Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 192.168.100.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 192.168.100.10 !--- 172.20.1.10 has been rewritten to be 192.168.100.10.
此時,客戶端嘗試訪問地址為192.168.100.10的WWW伺服器。連線成功。由於客戶端和伺服器位於同一子網中,ASA上不會捕獲任何流量。
這是要使用dns關鍵字和兩個NAT介面執行DNS修正的ASA的最終配置。
最終ASA 7.2(1)配置 |
---|
ciscoasa(config)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa enable password 9jNfZuG3TC5tCVH0 encrypted names dns-guard ! interface Ethernet0/0 nameif outside security-level 0 ip address 172.20.1.2 255.255.255.0 ! interface Ethernet0/1 nameif inside security-level 100 ip address 192.168.100.1 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! interface Management0/0 shutdown no nameif no security-level no ip address management-only ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Simple access-list that permits HTTP access to the mapped !--- address of the WWW server. pager lines 24 logging enable logging buffered debugging mtu outside 1500 mtu inside 1500 asdm image disk0:/asdm512-k8.bin no asdm history enable arp timeout 14400 global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns !--- PAT and static NAT configuration. The DNS keyword instructs !--- the security appliance to rewrite DNS records related to this entry. access-group OUTSIDE in interface outside !--- The Access Control List (ACL) that permits HTTP access !--- to the WWW server is applied to the outside interface. route outside 0.0.0.0 0.0.0.0 172.20.1.1 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 username cisco password ffIRPGpDSOJh9YLq encrypted http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart telnet timeout 5 ssh timeout 5 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !--- DNS inspection map. policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP !--- DNS inspection is enabled using the configured map. inspect icmp policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum 512 ! service-policy global_policy global prompt hostname context Cryptochecksum:a4a38088109887c3ceb481efab3dcf32 : end |
警告:使用靜態NAT的髮夾功能涉及透過安全裝置在客戶端和WWW伺服器之間傳送所有流量。實施此解決方案之前,請仔細考慮預期流量和安全裝置的功能。
髮夾是流量從到達的同一介面傳送回的過程。此功能在安全裝置軟體版本7.0中引入。對於早於7.2(1)的版本,要求至少加密髮夾流量(入站或出站)的一個部分。從7.2(1)及更高版本開始,此要求不再適用。使用7.2(1)時,傳入和傳出的流量可能都未加密。
使用髮夾功能結合靜態NAT語句,可以獲得與DNS修正相同的效果。此方法不會更改從DNS伺服器返回給客戶端的DNS A記錄的內容。然而,使用髮夾功能時(例如本文檔中討論的場景),客戶端可以使用由DNS伺服器返回的地址172.20.1.10進行連線。
以下是使用髮夾和靜態NAT實現DNS修正效果時,配置的相關部分的外觀。以粗體顯示的命令將在以下輸出末尾有更詳細的解釋:
ciscoasa(config)#show run : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. same-security-traffic permit intra-interface !--- Enable hairpinning. global (outside) 1 interface !--- Global statement for client access to the Internet. global (inside) 1 interface !--- Global statment for hairpinned client access through !--- the security appliance. nat (inside) 1 192.168.100.0 255.255.255.0 !--- The NAT statement defines which traffic should be natted. !--- The whole inside subnet in this case. static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping the WWW server's real address to a !--- public address on the outside interface. static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statment mapping requests for the public IP address of !--- the WWW server that appear on the inside interface to the WWW server's !--- real address of 192.168.100.10.
same-security-traffic— 透過此命令,相同安全級別的流量可以傳輸安全裝置。permit intra-interface關鍵字允許same-security-traffic進入和離開同一介面,從而啟用髮夾功能。
注意:有關髮夾和same-security-traffic命令的詳細資訊,請參閱same-security-traffic。
global (inside) 1 interface -透過安全裝置的所有流量必須經過NAT。此命令使用安全裝置的內部介面地址,以使進入內部介面的資料流在內部介面髮夾回外部時能夠進行PAT。
static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255— 此靜態NAT條目為WWW伺服器的公用IP地址建立第二個對映。但是,與第一個靜態NAT條目不同,這次地址172.20.1.10對映到安全裝置的內部介面。這樣,安全裝置可以響應內部介面上看到的該地址的請求。然後,它透過自身將這些請求重定向到WWW伺服器的實際地址。
要在ASDM中使用靜態NAT配置髮夾功能,請完成以下步驟:
導航到Configuration > Interfaces。
在窗口底部,選中Enable traffic between two or more hosts connected to the same interface 覈取方塊。
按一下「Apply」。
導航到Configuration > NAT,然後選擇Add > Add Static NAT Rule...。
填寫新靜態轉換的配置。
用WWW伺服器的資訊填充Real Address區域。
用要將WWW伺服器對映到的地址和介面填充Static Translation區域。
在這種情況下,選擇內部介面以允許內部介面上的主機透過對映地址172.20.1.10訪問WWW伺服器。
按一下OK退出「Add Static NAT Rule」窗口。
選擇現有的動態PAT轉換並按一下Edit。
從「Interface」下拉框中選擇inside。
按一下Add。
選擇標有Port Address Translation (PAT) using IP address of the interface的單選按鈕。按一下Add。
按一下OK 退出「Add Global Address Pool」窗口。按一下OK退出「Edit Dynamic NAT Rule」窗口。按一下Apply,將您的配置傳送到安全裝置。
以下是配置髮夾時所發生的一系列事件。假設客戶端已經查詢了DNS伺服器並且收到了WWW伺服器地址的172.20.1.10應答:
客戶端嘗試聯絡地址為172.20.1.10的WWW伺服器。
%ASA-7-609001: Built local-host inside:192.168.100.2
安全裝置會看到該請求,並發現WWW伺服器位於192.168.100.10。
%ASA-7-609001: Built local-host inside:192.168.100.10
安全裝置為客戶端建立動態PAT轉換。客戶端流量的源現在是安全裝置的內部介面:192.168.100.1。
%ASA-6-305011: Built dynamic TCP translation from inside:192.168.100.2/11012 to inside:192.168.100.1/1026
安全裝置透過自身在客戶端和WWW伺服器之間建立TCP連線。請注意括弧中每個主機的對映地址。
%ASA-6-302013: Built inbound TCP connection 67399 for inside:192.168.100.2/11012 (192.168.100.1/1026) to inside:192.168.100.10/80 (172.20.1.10/80)
安全裝置上的show xlate命令可驗證客戶端資料流是否透過安全裝置進行轉換。
ciscoasa(config)#show xlate 3 in use, 9 most used Global 172.20.1.10 Local 192.168.100.10 Global 172.20.1.10 Local 192.168.100.10 PAT Global 192.168.100.1(1027) Local 192.168.100.2(11013)
安全裝置上的show conn命令可驗證是否已在安全裝置和代表客戶端的WWW伺服器之間成功建立了連線。請注意括弧中的客戶端實際地址。
ciscoasa#show conn TCP out 192.168.100.1(192.168.100.2):11019 in 192.168.100.10:80 idle 0:00:03 bytes 1120 flags UIOB
這是使用髮夾和靜態NAT實現兩個NAT介面的DNS修正效果的ASA的最終配置。
最終ASA 7.2(1)配置 |
---|
ciscoasa(config-if)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa enable password 9jNfZuG3TC5tCVH0 encrypted names dns-guard ! interface Ethernet0/0 nameif outside security-level 0 ip address 172.20.1.2 255.255.255.0 ! interface Ethernet0/1 nameif inside security-level 100 ip address 192.168.100.1 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! interface Management0/0 shutdown no nameif no security-level no ip address management-only ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive same-security-traffic permit intra-interface access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Simple access-list that permits HTTP access to the mapped !--- address of the WWW server. pager lines 24 logging enable logging buffered debugging mtu outside 1500 mtu inside 1500 asdm image disk0:/asdm512-k8.bin no asdm history enable arp timeout 14400 global (outside) 1 interface !--- Global statement for client access to the Internet. global (inside) 1 interface !--- Global statment for hairpinned client access through !--- the security appliance. nat (inside) 1 192.168.100.0 255.255.255.0 !--- The NAT statement defines which traffic should be natted. !--- The whole inside subnet in this case. static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping the WWW server's real address to a public !--- address on the outside interface. static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping requests for the public IP address of the !--- WWW server that appear on the inside interface to the WWW server's real address !--- of 192.168.100.10. access-group OUTSIDE in interface outside !--- The ACL that permits HTTP access to the WWW server is applied !--- to the outside interface. route outside 0.0.0.0 0.0.0.0 172.20.1.1 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 username cisco password ffIRPGpDSOJh9YLq encrypted http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart telnet timeout 5 ssh timeout 5 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP inspect icmp policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum 512 ! service-policy global_policy global prompt hostname context Cryptochecksum:7c9b4e3aff085ba90ee194e079111e1d : end |
注意:有關可以使用髮夾功能的不同方案的詳細資訊,請參閱此影片,Cisco ASA上的髮夾功能(僅限註冊客戶)。
要啟用DNS檢查(如果之前已停用),請執行以下步驟。在本示例中,將DNS檢查增加到預設全局檢查策略中,該策略由service-policy命令全局應用,就好像ASA以預設配置開始一樣。有關服務策略和檢查的詳細資訊,請參閱使用模組化策略架構。
為DNS建立檢查策略對映。
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP
在策略對映配置模式下,進入引數配置模式以指定檢測引擎的引數。
ciscoasa(config-pmap)#parameters
在策略對映引數配置模式下,將DNS消息的最大消息長度指定為512。
ciscoasa(config-pmap-p)#message-length maximum 512
退出策略對映引數配置模式和策略對映配置模式。
ciscoasa(config-pmap-p)#exit ciscoasa(config-pmap)#exit
確認已根據需要建立檢查策略對映。
ciscoasa(config)#show run policy-map type inspect dns ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !
進入global_policy的策略對映配置模式。
ciscoasa(config)#policy-map global_policy ciscoasa(config-pmap)#
在策略對映配置模式下,指定預設層3/4類對映inspection_default。
ciscoasa(config-pmap)#class inspection_default ciscoasa(config-pmap-c)#
在策略對映類配置模式下,指定應使用步驟1-3中建立的檢查策略對映來檢查DNS。
ciscoasa(config-pmap-c)#inspect dns MY_DNS_INSPECT_MAP
退出策略對映類配置模式和策略對映配置模式。
ciscoasa(config-pmap-c)#exit ciscoasa(config-pmap)#exit
驗證是否已根據需要配置global_policy策略對映。
ciscoasa(config)#show run policy-map ! !--- The configured DNS inspection policy map. policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP !--- DNS application inspection enabled. !
驗證global_policy是否已由service-policy全局應用。
ciscoasa(config)#show run service-policy service-policy global_policy global
在組策略配置模式下發出split-dns 命令,以進入要透過分割隧道解析的域清單。使用 否 命令格式來刪除清單。
如果沒有分割隧道域清單,使用者將繼承預設組策略中存在的任何清單。發出split-dns none命令以防止繼承分割隧道域清單。
使用單個空格分隔域清單中的每個條目。條目數量沒有限制,但整個字串長度不能超過255個字元。只能使用字母數字字元、連字元(-)和句點(.)。不帶任何引數使用no split-dns 命令時,刪除所有當前值,包括發出split-dns none 命令時建立的空值。
本示例顯示如何配置域Domain1、Domain2、Domain3和Domain4,以便透過名為FirstGroup的組策略的分割隧道進行解析:
hostname(config)#group-policy FirstGroup attributes hostname(config-group-policy)#split-dns value Domain1 Domain2 Domain3 Domain4
使用本節內容,確認您的組態是否正常運作。
輸出直譯器工具(僅供註冊客戶使用) (OIT)支援某些show指令。使用OIT檢視對show命令輸出的分析。
驗證安全裝置是否正確重寫DNS記錄的方法之一是捕獲相關資料包,如上一個示例中所述。完成以下步驟以捕獲ASA上的流量:
為您要建立的每個擷取執行處理建立存取清單。
ACL應指定要捕獲的流量。在本範例中,已建立兩個ACL。
外部介面上流量的ACL:
access-list DNSOUTCAP extended permit ip host 172.22.1.161 host 172.20.1.2 !--- All traffic between the DNS server and the ASA. access-list DNSOUTCAP extended permit ip host 172.20.1.2 host 172.22.1.161 !--- All traffic between the ASA and the DNS server.
內部介面上流量的ACL:
access-list DNSINCAP extended permit ip host 192.168.100.2 host 172.22.1.161 !--- All traffic between the client and the DNS server. access-list DNSINCAP extended permit ip host 172.22.1.161 host 192.168.100.2 !--- All traffic between the DNS server and the client.
建立擷取執行個體:
ciscoasa#capture DNSOUTSIDE access-list DNSOUTCAP interface outside !--- This capture collects traffic on the outside interface that matches !--- the ACL DNSOUTCAP. ciscoasa#capture DNSINSIDE access-list DNSINCAP interface inside !--- This capture collects traffic on the inside interface that matches !--- the ACL DNSINCAP.
檢視擷取。
以下是當某些DNS流量透過後,示例捕獲的外觀:
ciscoasa#show capture DNSOUTSIDE 2 packets captured 1: 14:07:21.347195 172.20.1.2.1025 > 172.22.1.161.53: udp 36 2: 14:07:21.352093 172.22.1.161.53 > 172.20.1.2.1025: udp 93 2 packets shown ciscoasa#show capture DNSINSIDE 2 packets captured 1: 14:07:21.346951 192.168.100.2.57225 > 172.22.1.161.53: udp 36 2: 14:07:21.352124 172.22.1.161.53 > 192.168.100.2.57225: udp 93 2 packets shown
(可選)以pcap格式將捕獲複製到TFTP伺服器以便在其他應用程式中進行分析。
可以剖析pcap格式的應用程式可以顯示其他詳細資訊,例如DNS A記錄中的名稱和IP位址。
ciscoasa#copy /pcap capture:DNSINSIDE tftp ... ciscoasa#copy /pcap capture:DNSOUTSIDE tftp
本節提供的資訊可用於對組態進行疑難排解。
確保在安全裝置上配置了DNS檢查。請參閱配置DNS檢查部分。
如果無法在客戶端和WWW伺服器之間建立連線,則可能是由於NAT配置錯誤導致的。檢查安全裝置日誌,查詢表明協定無法通過安全裝置建立轉換的消息。如果出現此類消息,請驗證是否已針對所需流量配置了NAT,並且沒有不正確的地址。
%ASA-3-305006: portmap translation creation failed for tcp src inside:192.168.100.2/11000 dst dmz:10.10.10.10/23
清除xlate條目,然後刪除並重新應用NAT語句以解決此錯誤。
由於DNS資料包丟棄,您可能會收到此錯誤消息:
%PIX|ASA-4-410001: UDP DNS request from source_interface:source_address/source_port to dest_interface:dest_address/dest_port; (label length | domain-name length) 52 bytes exceeds remaining packet length of 44 bytes.
將DNS資料包長度增加到512-65535之間以解決此問題。
範例:
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP ciscoasa(config-pmap)#parameters ciscoasa(config-pmap-p)#message-length maximum <512-65535>
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
29-Sep-2006 |
初始版本 |