本文檔提供了Cisco PIX/ASA安全裝置上的基本網路地址轉換(NAT)和埠地址轉換(PAT)配置示例。提供了簡化的網路圖。有關詳細資訊,請參閱您的PIX/ASA軟體版本的PIX/ASA文檔。
要了解有關PIX 5.x及更高版本上nat、global、static、conduit和access-list命令以及埠重定向(轉發)的詳細資訊,請參閱在PIX上使用nat、global、static、conduit和access-list命令以及埠重定向(轉發)命令。
要瞭解有關Cisco安全PIX防火牆上基本NAT和PAT配置示例的詳細資訊,請參閱在Cisco安全PIX防火牆上使用NAT和PAT語句。
有關ASA版本8.3及更高版本中NAT配置的詳細資訊,請參閱有關NAT的資訊。
註:PIX/ASA版本8.x支援透明模式下的NAT。有關詳細資訊,請參閱透明模式下的NAT。
本文檔讀者應瞭解Cisco PIX/ASA安全裝置。
本文檔中的資訊基於Cisco PIX 500系列安全裝置軟體版本7.0及更高版本。
注意:本文檔已透過PIX/ASA版本8.x重新認證。
注意:以下檔案中使用的指令適用於防火牆服務模組(FWSM)。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
PIX/ASA上的nat-control 命令指定,透過防火牆的所有資料流都必須具有具體的轉換條目(具有匹配的global或static語句的nat語句)才能通過防火牆。nat-control 命令可確保轉換行為與7.0版以前的PIX防火牆版本相同。PIX/ASA版本7.0及更高版本的預設配置是指定no nat-control命令。對於PIX/ASA版本7.0及更高版本,可以在發出nat-control命令時更改此行為。
在停用nat-control的情況下,PIX/ASA將資料包從安全性較高的介面轉發到安全性較低的介面,而不在配置中設定具體的轉換條目。要將流量從安全性較低的介面傳遞到安全性較高的介面,請使用訪問清單來允許該流量。然後,PIX/ASA會轉發流量。本文檔重點介紹已啟用nat-control 時的PIX/ASA安全裝置行為。
注意:如果要刪除或停用PIX/ASA中的nat-control語句,需要從安全裝置中移除所有NAT語句。一般而言,在關閉NAT控制之前,需要先刪除NAT。您必須重新配置PIX/ASA中的NAT語句才能如預期工作。
網路圖表
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
在本例中,ISP為網路管理器提供從172.16.199.1到172.16.199.63的地址範圍。網路管理員決定將172.16.199.1分配給Internet路由器上的內部介面,將172.16.199.2分配給PIX/ASA的外部介面。
網路管理員已經為網路192.168.200.0/24分配了C類地址,並且有些工作站使用這些地址訪問Internet。這些工作站不會被地址轉換。但是,新工作站在10.0.0.0/8網路中分配了地址,因此需要轉換地址。
為了適應此網路設計,網路管理員必須在PIX/ASA配置中使用兩個NAT語句和一個全局池,如以下輸出所示:
global (outside) 1 172.16.199.3-172.16.199.62 netmask 255.255.255.192 nat (inside) 0 192.168.200.0 255.255.255.0 0 0 nat (inside) 1 10.0.0.0 255.0.0.0 0 0
此配置不會轉換來自192.168.200.0/24網路的任何出站流量的源地址。它將10.0.0.0/8網路中的源地址轉換為從172.16.199.3到172.16.199.62範圍內的地址。
以下步驟說明如何使用自適應安全裝置管理器(ASDM)應用此相同配置。
注意:透過CLI或ASDM執行所有配置更改。使用CLI和ASDM進行配置更改會導致ASDM應用內容的行為非常不穩定。這不是Bug,而是由於ASDM的工作方式而發生的。
注意:打開ASDM時,它會從PIX/ASA導入當前配置,並在您進行和應用更改時從該配置開始工作。如果在ASDM會話處於打開狀態時對PIX/ASA進行了更改,則ASDM不再使用它「認為」的PIX/ASA當前配置。如果透過CLI進行配置更改,請務必關閉所有ASDM會話。當您要透過GUI工作時,請再次打開ASDM。
啟動ASDM,瀏覽到Configuration頁籤,然後按一下NAT。
按一下Add以建立新規則。
將出現一個新窗口,允許使用者更改此NAT條目的NAT選項。在本示例中,對到達內部介面(源自特定10.0.0.0/24網路)的資料包執行NAT。
PIX/ASA將這些資料包轉換為外部介面上的動態IP池。輸入描述哪些流量到達NAT的資訊後,請為轉換後的流量定義一個IP地址池。
按一下Manage Pools 以增加新的IP池。
選擇outside,然後按一下Add。
指定池的IP範圍,並為池指定唯一的整數ID號。
輸入適當的值,然後按一下OK。
為外部介面定義新池。
定義池後,按一下OK以返回到NAT規則配置窗口。
確保在Address Pool下拉選單下選擇剛建立的正確池。
現在,您已建立透過安全裝置的NAT轉換。但是,您仍然需要建立NAT條目,該條目指定哪些流量不發往NAT。
按一下位於窗口頂部的Translation Exemption Rules,然後按一下Add以建立新規則。
選擇inside介面作為源,並指定192.168.200.0/24子網。將「連線時」值保留為預設值。
現在定義了NAT規則。
按一下Apply以將更改應用於安全裝置的當前運行配置。
此輸出顯示了應用於PIX/ASA配置的實際增加內容。它們與從手動方法輸入的命令略有不同,但它們是相等的。
access-list inside_nat0_outbound extended permit ip 192.168.200.0 255.255.255.0 any global (outside) 1 172.16.199.3-172.16.199.62 netmask 255.255.255.192 nat (inside) 0 access-list inside_nat0_outbound nat (inside) 1 10.0.0.0 255.255.255.0
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
在本例中,網路管理器具有在Internet上註冊的兩個IP地址範圍。網路管理器必須將10.0.0.0/8範圍內的所有內部地址轉換為註冊地址。網路管理器必須使用的IP地址範圍是172.16.199.1到172.16.199.62和192.168.150.1到192.168.150.254。網路管理員可以執行以下操作:
global (outside) 1 172.16.199.3-172.16.199.62 netmask 255.255.255.192 global (outside) 1 192.168.150.1-192.168.150.254 netmask 255.255.255.0 nat (inside) 1 0.0.0.0 0.0.0.0 0 0
在動態NAT中,更具體的語句是在全局上使用同一介面時優先使用的語句。
nat (inside) 1 10.0.0.0 255.0.0.0 nat (inside) 2 10.1.0.0 255.255.0.0 global (outside) 1 172.16.1.1 global (outside) 2 192.168.1.1
如果將內部網路設定為10.1.0.0,則NAT全局2的優先順序高於1,因為它更適用於轉換。
注意:NAT語句中使用了萬用字元編址方案。此語句指示PIX/ASA在內部源地址傳出到Internet時對其進行轉換。如果需要,此命令中的地址可以更具體一些。
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
在本例中,ISP為網路管理員提供從172.16.199.1到172.16.199.63的地址範圍供公司使用。網路管理器決定將172.16.199.1用於Internet路由器上的內部介面,將172.16.199.2用於PIX/ASA上的外部介面。您將剩下172.16.199.3到172.16.199.62用於NAT池。但是,網路管理員知道,任何時候嘗試從PIX/ASA出發的人員都可能超過60人。因此,網路管理員決定獲取172.16.199.62並將其作為PAT地址,以便多個使用者可以同時共用一個地址。
global (outside) 1 172.16.199.3-172.16.199.61 netmask 255.255.255.192 global (outside) 1 172.16.199.62 netmask 255.255.255.192 nat (inside) 1 0.0.0.0 0.0.0.0 0 0
這些命令指示PIX/ASA將源地址轉換為172.16.199.3到172.16.199.61,以便前59個內部使用者透過PIX/ASA。在這些地址用完後,PIX會將所有後續源地址轉換為172.16.199.62,直到NAT池中的一個地址變為可用地址為止。
注意:NAT語句中使用了萬用字元編址方案。此語句指示PIX/ASA在內部源地址傳出到Internet時對其進行轉換。如果您願意,此命令中的地址可以更具體一些。
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
在本例中,ISP為網路管理器提供從172.16.199.1到172.16.199.63的地址範圍。網路管理員決定將172.16.199.1分配給Internet路由器上的內部介面,將172.16.199.2分配給PIX/ASA的外部介面。
但是,在此場景中,另一個專用LAN網段位於Internet路由器之外。當這兩個網路中的主機相互通訊時,網路管理員不希望浪費全局池中的地址。當所有內部使用者(10.0.0.0/8)連線到網際網路時,網路管理員仍需要為其轉換源地址。
access-list 101 permit ip 10.0.0.0 255.0.0.0 192.168.1.0 255.255.255.0 global (outside) 1 172.16.199.3-172.16.199.62 netmask 255.255.255.192 nat (inside) 0 access-list 101 nat (inside) 1 10.0.0.0 255.0.0.0 0 0
此配置不會轉換源地址為10.0.0.0/8且目標地址為192.168.1.0/24的地址。它將源地址從從10.0.0.0/8網路內發起併發往192.168.1.0/24以外任何位置的任何流量轉換為從172.16.199.3到172.16.199.62範圍內的地址。
如果您獲得了來自Cisco裝置的write terminal命令輸出,則可以使用輸出解釋程式工具(僅限註冊客戶)。
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
當您對0以外的任何NAT ID配合使用訪問清單和nat命令時,您便啟用了策略NAT。
注意:策略NAT在版本6.3.2中引入。
當您在訪問清單中指定源地址和目標地址(或埠)時,策略NAT允許您標識本地流量以進行地址轉換。常規NAT僅使用源地址/埠,而策略NAT同時使用源地址和目標地址/埠。
注意:除NAT免除(nat 0 access-list)外,所有型別的NAT都支援策略NAT。NAT免除使用訪問控制清單來標識本地地址,但與策略NAT的不同之處在於不考慮埠。
使用策略NAT,可以建立多個NAT或靜態語句,只要源/埠和目標/埠組合對於每個語句都是唯一的,這些語句就會標識相同的本地地址。然後,您可以將不同的全局地址與每個源/埠和目標/埠對進行匹配。
在本範例中,網路管理員為連線埠80 (web)和連線埠23 (Telnet)提供目的地IP位址192.168.201.11的存取,但必須使用兩個不同的IP位址作為來源位址。IP地址172.16.199.3用作Web的源地址。IP地址172.16.199.4用於Telnet,必須轉換10.0.0.0/8範圍內的所有內部地址。網路管理員可以執行以下操作:
access-list WEB permit tcp 10.0.0.0 255.0.0.0 192.168.201.11 255.255.255.255 eq 80 access-list TELNET permit tcp 10.0.0.0 255.0.0.0 192.168.201.11 255.255.255.255 eq 23 nat (inside) 1 access-list WEB nat (inside) 2 access-list TELNET global (outside) 1 172.16.199.3 netmask 255.255.255.192 global (outside) 2 172.16.199.4 netmask 255.255.255.192
您可以使用輸出直譯器工具(僅供註冊客戶使用)來顯示潛在的問題和解決方法。
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
靜態NAT配置建立一對一對映,並將特定地址轉換為另一個地址。這種型別的配置在NAT表中建立一個永久條目(只要該配置存在),並使內部主機和外部主機都可以發起連線。這對於提供應用程式服務(例如郵件、Web、FTP和其他服務)的主機來說非常有用。在本示例中,靜態NAT語句配置為允許內部使用者和外部使用者訪問DMZ上的Web伺服器。
此輸出顯示靜態語句是如何構造的。注意對映和實際IP地址的順序。
static (real_interface,mapped_interface) mapped_ip real_ip netmask mask
以下是建立靜態轉換,讓內部介面上的使用者能夠訪問DMZ上的伺服器。它在內部地址與DMZ上的伺服器地址之間建立對映。然後,內部使用者可以透過內部地址訪問DMZ上的伺服器。
static (DMZ,inside) 10.0.0.10 192.168.100.10 netmask 255.255.255.255
以下是建立靜態轉換,讓外部介面上的使用者能夠訪問DMZ上的伺服器。它在外部地址和DMZ上的伺服器地址之間建立對映。然後,外部使用者可以透過外部地址訪問DMZ上的伺服器。
static (DMZ,outside) 172.16.1.5 192.168.100.10 netmask 255.255.255.255
注意:由於外部介面的安全級別低於DMZ,因此還必須建立訪問清單以允許外部使用者訪問DMZ上的伺服器。訪問清單必須授予使用者對靜態轉換中對映的地址的訪問許可權。建議使此訪問清單儘可能具體。在這種情況下,任何主機都只能訪問Web伺服器上的埠80 (www/http)和443 (https)。
access-list OUTSIDE extended permit tcp any host 172.16.1.5 eq www access-list OUTSIDE extended permit tcp any host 172.16.1.5 eq https
然後,必須將訪問清單應用到外部介面。
access-group OUTSIDE in interface outside
有關access-list和access-group命令的詳細資訊,請參閱access-list extended和access-group。
本節介紹如何繞過NAT。啟用NAT控制時,可能需要繞過NAT。可以使用身份NAT、靜態身份NAT或NAT免除來繞過NAT。
身份NAT將實際IP地址轉換為同一個IP地址。只有「轉換的」主機可以建立NAT轉換,並且允許返迴響應流量。
注意:如果更改NAT配置,並且不希望等待現有轉換超時後再使用新的NAT資訊,則可以使用clear xlate命令以清除轉換表。但是,當您清除轉換表時,所有使用轉換的當前連線都將斷開。
要配置身份NAT,請輸入以下命令:
hostname(config)#nat (real_interface) 0 real_ip [mask [dns] [outside] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
例如,要對內部10.1.1.0/24網路使用身份NAT,請輸入以下命令:
hostname(config)#nat (inside) 0 10.1.1.0 255.255.255.0
有關nat命令的詳細資訊,請參閱Cisco安全裝置命令參考,版本7.2。
靜態身份NAT將實際IP地址轉換為同一個IP地址。轉換始終處於活動狀態,「已轉換」主機和遠端主機都可以發起連線。靜態身份NAT允許您使用常規NAT或策略NAT。在確定要轉換的實際地址時,透過策略NAT可以辨識實際地址和目標地址(有關策略NAT的詳細資訊,請參閱使用策略NAT部分)。例如,當內部地址訪問外部介面並且目標為伺服器A時,可以使用策略靜態身份NAT,但在訪問外部伺服器B時使用普通轉換。
注意:如果刪除靜態命令,則使用該轉換的當前連線不會受到影響。要刪除這些連線,請輸入clear local-host 命令。使用clear xlate命令不能從轉換表中清除靜態轉換,而必須刪除靜態命令。使用clear xlate命令只能刪除由nat和global命令建立的動態轉換。
要配置策略靜態身份NAT,請輸入以下命令:
hostname(config)#static (real_interface,mapped_interface) real_ip access-list acl_id [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
請使用access-list extended命令建立擴展訪問清單。此訪問清單應僅包括允許ACE。確保訪問清單中的源地址與此命令中的real_ip匹配。策略NAT不考慮inactive或time-range關鍵字;對於策略NAT配置,所有ACE都被視為活動。有關詳細資訊,請參閱使用策略NAT部分。
要配置常規靜態身份NAT,請輸入以下命令:
hostname(config)#static (real_interface,mapped_interface) real_ip real_ip [netmask mask] [dns] [norandomseq] [[tcp] tcp_max_conns [emb_limit]] [udp udp_max_conns]
為兩個real_ip引數指定相同的IP地址。
網路圖表
注意:此配置中使用的IP編址方案在Internet上無法合法路由。這些地址是在實驗室環境中使用的RFC 1918地址。
例如,當外部訪問時,此命令對內部IP地址(10.1.1.2)使用靜態身份NAT:
hostname(config)#static (inside,outside) 10.1.1.2 10.1.1.2 netmask 255.255.255.255
有關static命令的詳細資訊,請參閱Cisco安全裝置命令參考,版本7.2。
此命令在內部訪問外部地址(172.16.199.1)時使用靜態身份NAT:
hostname(config)#static (outside,inside) 172.16.199.1 172.16.199.1 netmask 255.255.255.255
此命令靜態對映整個子網:
hostname(config)#static (inside,dmz) 10.1.1.2 10.1.1.2 netmask 255.255.255.0
此靜態身份策略NAT示例顯示訪問一個目標地址時使用身份NAT的單個實際地址,訪問另一個目標地址時使用轉換:
hostname(config)#access-list NET1 permit ip host 10.1.1.3 172.16.199.0 255.255.255.224
hostname(config)#access-list NET2 permit ip host 10.1.1.3 172.16.199.224 255.255.255.224
hostname(config)#static (inside,outside) 10.1.1.3 access-list NET1
hostname(config)#static (inside,outside) 172.16.199.1 access-list NET2
注意:有關static命令的詳細資訊,請參閱Cisco ASA 5580自適應安全裝置命令參考,版本8.1。
注意:有關訪問清單的詳細資訊,請參閱Cisco ASA 5580自適應安全裝置命令列配置指南,版本8.1。
NAT免除對地址進行轉換,並允許實際主機和遠端主機發起連線。使用NAT免除,您可以在確定要免除的實際流量時指定實際地址和目標地址(類似於策略NAT),因此使用NAT免除,比使用identity NAT具有更大的控制能力。但是,與策略NAT不同,NAT免除不考慮訪問清單中的埠。使用靜態身份NAT考慮訪問清單中的埠。
注意:如果刪除NAT免除配置,使用NAT免除的現有連線不會受到影響。要刪除這些連線,請輸入clear local-host 命令。
要配置NAT免除,請輸入以下命令:
hostname(config)#nat (real_interface) 0 access-list acl_name [outside]
使用access-list extended命令建立擴展訪問清單。此訪問清單可以包括permit ACE和deny ACE。請勿在訪問清單中指定實際埠和目標埠;NAT免除不會考慮這些埠。NAT免除也不考慮inactive或time-range關鍵字;對於NAT免除配置,所有ACE都被視為活動。
預設情況下,此命令免除從內部到外部的流量。如果希望從外部到內部的資料流繞過NAT,請另外增加一個nat命令並輸入outside以將NAT例項標識為外部NAT。如果為外部介面配置動態NAT並要排除其他流量,則可能需要使用外部NAT免除。
例如,要在訪問任何目標地址時排除內部網路,請輸入以下命令:
hostname(config)#access-list EXEMPT permit ip 10.1.1.0 255.255.255.0 any
hostname(config)# nat (inside) 0 access-list EXEMPT
要將動態外部NAT用於DMZ網路,並免除另一個DMZ網路,請輸入以下命令:
hostname(config)#nat (dmz) 1 10.1.1.0 255.255.255.0 outside dns
hostname(config)#global (inside) 1 10.1.1.2
hostname(config)#access-list EXEMPT permit ip 10.1.1.0 255.255.255.0 any
hostname(config)#nat (dmz) 0 access-list EXEMPT
為了在訪問兩個不同的目標地址時排除內部地址,請輸入以下命令:
hostname(config)#access-list NET1 permit ip 10.1.1.0 255.255.255.0 172.16.199.0 255.255.255.224
hostname(config)#access-list NET1 permit ip 10.1.1.0 255.255.255.0 172.16.199.224 255.255.255.224
hostname(config)#nat (inside) 0 access-list NET1
流經安全裝置的流量最有可能經過NAT。要驗證安全裝置上所使用的轉換,請參閱PIX/ASA:監控和排除效能問題。
show xlate count 命令可顯示透過PIX建立的當前轉換數和可透過PIX建立的最大轉換數。轉換是內部地址到外部地址的對映,可以是一對一對映(如NAT)或多對一對映(如PAT)。此命令是show xlate命令的子集,它輸出透過PIX的每個轉換。命令輸出顯示轉換「使用中」,這是指發出命令時PIX中的活動轉換數;「最常用」是指自PIX通電以來,在PIX上已看到的最大轉換。
問題
當您為埠443增加靜態PAT時,會收到此錯誤消息:
[錯誤] static (INSIDE,OUTSIDE) tcp interface 443 192.168.1.87 443 netmask 255.255.255 tcp 0 udp 0
無法為靜態PAT保留埠443
錯誤:無法下載策略
解決方案
當ASDM或WEBVPN在443埠上運行時,會出現此錯誤消息。若要解決此問題,請登入防火牆,然後完成以下步驟之一:
要將ASDM埠更改為443以外的任何埠,請運行以下命令:
ASA(config)#no http server enable ASA(config)#http server enable 8080
要將WEBVPN埠更改為443以外的任何埠,請運行以下命令:
ASA(config)#webvpn ASA(config-webvpn)#enable outside ASA(config-webvpn)#port 65010
運行這些命令後,您應該能夠將埠443上的NAT/PAT增加到另一台伺服器。當您將來嘗試使用ASDM管理ASA時,請將新埠指定為8080。
問題
在ASA上增加靜態語句時收到此錯誤:
錯誤:對映地址與現有靜態地址衝突
解決方案
驗證要增加的靜態源中是否不存在條目。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
03-May-2005 |
初始版本 |