ACL+NAT
ACL
一、ACL基礎介紹
1、ACL概念。
訪問控制列表ACL(Access Control List)是由一條或多條規則組成的集合。所謂規則,是指描述報文匹配條件的判斷語句。
條件可以是報文的源地址、目的地址、端口號等。
ACL本質上是一種報文過濾器,規則是過濾器的濾芯。設備基於這些規則進行報文匹配,可以過濾出特定的報文,並根據應用ACL的業務模塊的處理策略來允許或阻止該報文通過。
2、ACL規則。
ACL由一系列規則組成,通過將報文與ACL規則進行匹配,設備可以過濾出特定的報文。設備支持軟件ACL和硬件ACL兩種實現方式
|
分類 |
適用的IP版本 |
規則定義描述 |
編號範圍 |
|
基本ACL |
IPv4 |
僅使用報文的源IP地址、分片信息和生效時間段信息來定義規則。 |
2000~2999 |
|
高級ACL |
IPv4 |
既可使用IPv4報文的源IP地址,也可使用目的IP地址、IP協議類型、ICMP類型、TCP源/目的端口、UDP源/目的端口號、生效時間段等來定義規則。 |
3000~3999 |
|
二層ACL |
IPv4和IPv6 |
使用報文的以太網幀頭信息來定義規則,如根據源MAC(Media Access Control)地址、目的MAC地址、二層協議類型等。 |
4000~4999 |
|
用户自定義ACL |
IPv4和IPv6 |
使用報文頭、偏移位置、字符串掩碼和用户自定義字符串來定義規則,即以報文頭為基準,指定從報文的第幾個字節開始與字符串掩碼進行“與”操作,並將提取出的字符串與用户自定義的字符串進行比較,從而過濾出相匹配的報文。 |
5000~5999 |
|
用户ACL |
IPv4 |
既可使用IPv4報文的源IP地址或源UCL(User Control List)組,也可使用目的IP地址或目的UCL組、IP協議類型、ICMP類型、TCP源端口/目的端口、UDP源端口/目的端口號等來定義規則。 |
6000~9999 |
|
基本ACL6 |
IPv6 |
可使用IPv6報文的源IPv6地址、分片信息和生效時間段來定義規則。 |
2000~2999 |
|
高級ACL6 |
IPv6 |
可以使用IPv6報文的源IPv6地址、目的IPv6地址、IPv6協議類型、ICMPv6類型、TCP源/目的端口、UDP源/目的端口號、生效時間段等來定義規則。 |
3000~3999 |
|
用户ACL6 |
IPv6 |
既可使用IPv6報文的源IPv6地址或源UCL組,也可使用目的IPv6地址、IPv6協議類型、ICMPv6類型、TCP源端口/目的端口、UDP源端口/目的端口號等來定義規則。 |
6000~9999 |
3、ACL匹配原則
|
ACL類型 |
匹配順序(從高到低) |
|
基本ACL |
|
|
高級ACL |
|
|
基本ACL6 |
|
|
高級ACL6 |
|
|
二層ACL |
|
|
用户自定義ACL |
用户自定義ACL規則的匹配順序只支持配置順序,即規則編號從小到大的順序進行匹配。 |
|
用户ACL&ACL6 |
|
4、IP承載協議
|
協議類型 |
協議編號 |
|
ICMP |
1 |
|
TCP |
6 |
|
UDP |
17 |
|
GRE |
47 |
|
IGMP |
2 |
|
IPinIP |
4 |
|
OSPF |
89 |
5、配置原則
|
業務模塊的ACL默認動作 |
permit所有報文 |
deny所有報文 |
permit少部分報文,deny大部分報文 |
deny少部分報文,permit大部分報文 |
|
permit |
無需應用ACL |
配置rule deny |
需先配置rule permit a,再配置rule deny b或rule deny 説明: 以上原則適用於報文過濾的情形。當ACL應用於流策略中進行流量監管或者流量統計時,如果僅希望對指定的報文進行限速或統計,則只需配置rule permit a。 |
只需配置rule deny a,無需再配置rule permit b或rule permit 説明: 如果配置rule permit並在流策略中應用ACL,且該流策略的流行為behavior配置為deny,則設備會拒絕所有報文通過,導致全部業務中斷。 |
|
deny |
|
|
只需配置rule permit a,無需再配置rule deny b或rule deny |
需先配置rule deny a,再配置rule permit b或rule permit |
二、配置指導
1、配置指導
#
time-range test 08:00 to 18:00 working-day
time-range test 14:00 to 18:00 off-day
time-range test from 00:00 1/1/2014 to 23:59 12/31/2014
#
acl basic 2000
rule 0 permit source 192.168.0.0 0.0.0.255
rule 5 permit source 192.168.1.0 0.0.0.255
rule 10 permit source 192.168.2.0 0.0.0.255
rule 15 permit source 192.168.3.0 0.0.0.255
rule 20 permit source 192.168.5.0 0.0.0.255
rule 30 permit source 192.168.10.0 0.0.0.255
rule 40 permit source 192.168.100.0 0.0.0.255
rule 45 permit source 192.168.201.0 0.0.0.255
rule 50 deny
#
acl basic 2001
rule 0 permit source 0.0.0.0 255.255.255.0
rule 5 remark 1
#
acl basic 2002
rule 45 permit source 0.0.0.0 255.255.255.0
rule 55 permit source 192.168.34.1 0
#
acl basic 2007
step 5 start 5
rule 5 permit source 193.169.23.0 0.0.0.255
rule 10 permit source 192.169.24.0 0.0.0.255
rule 15 permit source 192.169.25.0 0.0.0.255
rule 20 permit source 192.169.26.0 0.0.0.255
rule 25 permit source 192.169.27.0 0.0.0.255
rule 30 permit source 192.169.28.0 0.0.0.255
rule 35 permit source 192.169.29.0 0.0.0.255
#
acl number 2014
rule 5 permit time-range test
#
acl basic name aclnum1
description numnu1
rule 10 deny source 0.0.0.0 255.255.255.0
rule 15 permit source 0.0.0.0 255.255.255.0
#
acl advanced 3009
step 20
rule 0 remark gj-acl
rule 0 permit ip source 192.168.20.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
rule 5 permit ip source 192.168.1.100 0 destination 10.0.0.1 0
rule 10 permit tcp source 192.168.1.200 0 destination 172.16.1.1 0 destination-port eq 3389
rule 20 permit gre destination 192.168.2.0 0.0.0.255
rule 40 permit gre source 192.168.3.0 0.0.0.255
rule 60 permit gre source 192.168.10.1 0 destination 192.168.11.1 0
rule 80 permit tcp source 192.168.23.1 0 destination-port eq ftp
rule 100 permit tcp source 10.1.1.50 0 destination 192.168.2.100 0 destination-port range 8000 8080
rule 120 permit tcp source 192.168.34.0 0 destination 192.168.45.0 0 source-port range 1001 1008 destination-port range 1001 1008
#
acl advanced 3010
step 10
rule 0 permit icmp source 192.168.1.100 0 destination 10.0.0.1 0 icmp-type echo
rule 10 deny icmp destination 172.16.1.1 0 icmp-type echo
rule 20 permit tcp destination 192.168.2.100 0 destination-port eq www
rule 40 permit tcp source 10.1.1.0 0.0.0.255 destination 192.168.2.100 0 destination-port eq 22
rule 50 permit udp destination 8.8.8.8 0 destination-port eq dns
rule 60 deny udp destination 192.168.1.200 0 destination-port eq ntp
rule 70 permit gre source 203.0.113.1 0 destination 198.51.100.1 0
rule 80 deny gre destination 192.168.10.1 0
rule 90 permit ospf source 10.0.0.2 0 destination 224.0.0.5 0
rule 100 deny ospf destination 10.0.0.1 0
rule 110 permit ip source 192.168.1.0 0.0.0.255 destination 10.0.0.0 0.0.0.255
rule 120 deny ip source 192.168.99.0 0.0.0.255
#
#
acl ipv6 basic 2004
step 10
rule 0 permit source 2001::/64
rule 10 permit source 2003::/64
rule 20 permit source 2004::/64
rule 30 permit source 2005::/64
rule 40 permit source 2006::/64
rule 50 permit source 2007::/64
rule 60 permit source 2008::/64
rule 70 permit source 2009::/64
rule 80 permit source 2010::/64
rule 90 permit source 2011::/64
rule 100 permit source 2012::/64
rule 110 deny
#
acl ipv6 number 3678
step 10
rule 5 permit icmpv6 source 2001:DB8:1::100/128 destination 2001:DB8:2::1/128 icmp6-type echo-request
rule 10 deny icmpv6 destination 2001:DB8:3::1/128 icmp6-type echo-request
rule 20 permit tcp destination 2001:DB8:4::100/128 destination-port eq www
rule 30 permit tcp source 2001:DB8:5::/64 destination 2001:DB8:4::100/128 destination-port eq 22
rule 40 permit udp destination 2001:4860:4860::8888/128 destination-port eq dns
rule 50 deny udp destination 2001:DB8:6::200/128 destination-port eq ntp
rule 60 permit gre source 2001:DB8:7::1/128 destination 2001:DB8:8::1/128
rule 70 deny gre destination 2001:DB8:9::1/128
rule 80 permit ospf source 2001:DB8:A::2/128 destination FF02::5/128
rule 90 deny ospf destination 2001:DB8:A::1/128
rule 100 permit ipv6 source 2001:DB8:B::/64 destination 2001:DB8:C::/64
rule 110 deny ipv6 source 2001:DB8:D::/64
- 規則:即描述報文匹配條件的判斷語句。
- 規則編號:用於標識ACL規則。可以自行配置規則編號,也可以由系統自動分配。
ACL規則的編號範圍是0~4294967294。所有規則均按照規則編號從小到大進行排序。系統按照規則編號從小到大的順序,將規則依次與報文匹配,一旦匹配上一條規則即停止匹配。 - 動作:報文處理動作,包括permit/deny兩種,表示允許/拒絕。
- 匹配項:ACL定義了極其豐富的匹配項。除了圖中的源地址和生效時間段,ACL還支持很多其他規則匹配項。例如,二層以太網幀頭信息(如源MAC、目的MAC、以太幀協議類型),三層報文信息(如目的IP地址、協議類型),以及四層報文信息(如TCP/UDP端口號)等。
- ACL名稱:通過名稱來標識ACL,就像用域名代替IP地址一樣,更加方便記憶。這種ACL,稱為命名型ACL。
命名型ACL一旦創建成功,便不允許用户再修改其名稱。
僅基本ACL與基本ACL6,以及高級ACL與高級ACL6,可以使用相同的ACL名稱;其他類型ACL之間,不能使用相同的ACL名稱。
命名型ACL實際上是“名字+數字”的形式,可以在定義命名型ACL時同時指定ACL編號。如果不指定編號,則由系統自動分配,設備為其分配的編號是該類型ACL可用編號中取值範圍內的最大值。 - ACL編號:用於標識ACL,也可以單獨使用ACL編號,表明該ACL是數字型。不同的ACL類型使用不同的ACL編號取值標識。
NAT
公網地址與私網地址轉換
1、靜態NAT
【格式】nat static outbound 內網地址 公網地址
[FW] nat static outbound 10.110.10.8 202.38.1.100
【調用】
[FW] interface gigabitethernet 1/0/2 //這個是去互聯網的WAN口
[FW-GigabitEthernet1/0/2] nat static enable
2、動態NAT-公網地址不重複
①創建NAT地址組
[FW] nat address-group 0
[FW-address-group-0] address 202.38.1.2 202.38.1.100
②創建ACL
[FW]acl basic 2001
[FW-acl-ipv4-basic-2001]rule 0 permit
③調用規則
[FW-GigabitEthernet1/0/2] nat outbound 2000 address-group 0
3、動態NAT-公網地址重複
①開啓NAT ALG dns 功能
[FW] NAT ALG DNS
②創建NAT地址組1、組2.
[FW] nat address-group 1
[FW-address-group-1] address 202.38.1.2 202.38.1.2
[FW] nat address-group 2
[FW-address-group-2] address 202.38.1.3 202.38.1.3
③創建ACL
[FW]acl basic 2001
[FW-acl-ipv4-basic-2001]rule 0 permit
④調用規則
[FW-GigabitEthernet1/0/2] NAT inbound 2000 address-group 1 no-pat reversible
[FW-GigaWbitEthernet1/0/2] NAT outbound 2000 address-group 2
4、外網用户通過外網地址(公網地址)訪問內網服務器的操作-地址重複。
[FW]interface GigabitEthernet1/0/2
[FW-GigabitEthernet1/0/2]display this //在防火牆的出口做NAT服務器映射規則。
[FW-GigabitEthernet1/0/2]ip address 222.83.212.246 255.255.255.192
[FW-GigabitEthernet1/0/2]nat outbound
【防火牆映射服務器格式一】 nat server protocol tcp/udp/icmp global 公網IP地址 端口號 inside 私網地址 端口號 規則名稱
【防火牆映射服務器格式二】 nat server protocol tcp/udp/icmp global 公網IP地址 端口號 端口號 inside 私網地址 端口號 端口號 規則名稱
[FW-GigabitEthernet1/0/2]nat server protocol tcp global 222.83.212.246 222 inside 172.16.100.250 222 rule ServerRule_1
[FW-GigabitEthernet1/0/2]nat server protocol tcp global 222.83.212.246 9999 inside 1.1.1.1 443 rule ServerRule_2
[FW-GigabitEthernet1/0/2]nat server protocol tcp global 222.83.212.246 10000 10020 inside 172.16.100.250 10000 10020 rule ServerRule_3
[FW-GigabitEthernet1/0/2]nat server protocol tcp global 222.83.212.246 15000 16999 inside 172.16.100.250 15000 16999 rule ServerRule_4
[FW-GigabitEthernet1/0/2]nat server protocol udp global 222.83.212.246 7660 inside 172.16.100.250 7660 rule ServerRule_5
[FW-GigabitEthernet1/0/2]nat server protocol udp global 222.83.212.246 15000 16999 inside 172.16.100.250 15000 16999 rule ServerRule_6
[FW-GigabitEthernet1/0/2]undo dhcp select server
[FW-GigabitEthernet1/0/2]gateway 公網地址網關
5、外網用户通過域名訪問內網服務器的操作-地址不重複。
前提該公司擁有兩個外網IP地址: 202.38.1.2和202.38.1.3
①開啓NAT ALG NDS功能
[FW] NAT ALG DNS
②創建基礎ACL規則
[FW]acl basic 2001
[FW-acl-ipv4-basic-2001]rule 0 permit
③創建NAT地址組
[FW] nat address-group 1
[FW-address-group-1] address 202.38.1.2 202.38.1.3
④調用規則
[FW]interface GigabitEthernet1/0/2
[FW-GigabitEthernet1/0/2]NAT server protocol UDP global 202.38.1.2 inside 10.110.10.3 DNS
[FW-GigabitEthernet1/0/2]NAT outbound 2001 address-group 1 no-pat reversible
6、外網用户通過域名訪問內網服務器的操作-地址重複。
前提條件:有三個外網IP地址: 202.38.1.2、 202.38.1.3和202.38.1.4
①開啓NAT ALG NDS功能
[FW] NAT ALG DNS
②創建基礎ACL規則
[FW]acl basic 2001
[FW-acl-ipv4-basic-2001]rule 0 permit
③創建NAT地址組
[FW] nat address-group 1
[FW-address-group-1] address 202.38.1.2 202.38.1.2
[FW] nat address-group 2
[FW-address-group-1] address 202.38.1.3 202.38.1.3
④調用規則
[FW]interface GigabitEthernet1/0/2
[FW-GigabitEthernet1/0/2] nat server protocol udp global 202.38.1.4 inside 192.168.1.3 dns
[FW-GigabitEthernet1/0/2] nat outbound 2001 address-group 1 no-pat reversible
[FW-GigabitEthernet1/0/2] nat inbound 2001 address-group 2
7、內網用户通過NAT地址訪問內網服務器
前提條件 GigabitEthernet1/0/1 是內網口 GigabitEthernet1/0/2 外網口。
① 創建基礎ACL規則
[FW]acl basic 2001
[FW-acl-ipv4-basic-2001]rule 0 permit
② 外網接口配置
[FW]interface GigabitEthernet1/0/2
[FW-GigabitEthernet1/0/2]nat server protocol tcp global 202.38.1.2 inside 192.168.1.4 ftp
[FW-GigabitEthernet1/0/2]nat outbound 2001
③ 內網接口配置
[FW]interface GigabitEthernet1/0/1
[FW-GigabitEthernet1/0/1] nat hairpin enable
8、內網用户通過NAT地址互訪-P2P網絡
① 創建基礎ACL規則
[FW]acl basic 2001
[FW-acl-ipv4-basic-2001]rule 0 permit
②調用規則
[FW-GigabitEthernet1/0/2]nat outbound 2001
# 配置PAT方式下的地址轉換模式為EIM,即只要是來自相同源地址和源端口號的且匹配ACL 2001的報文,不論其目的地址是否相同,
通過PAT轉換後,其源地址和源端口號都被轉換為同一個外部地址和端口號。
[Device] nat mapping-behavior endpoint-independent acl 2001
9、 負載分擔內部服務器
防火牆內網 三台FTP服務器 10.110.10.1/16、10.110.10.2/16、10.110.10.3/16
防火牆外網 IP地址 202.38.1.1
配置服務器地址組
[FW]system-view
[FW] nat server-group 0
[FW-nat-server-group-0] inside ip 10.110.10.1 port 21
[FW-nat-server-group-0] inside ip 10.110.10.2 port 21
[FW-nat-server-group-0] inside ip 10.110.10.3 port 21
[FW-nat-server-group-0] inside ip X.X.X.X port 21
[FW] interface gigabitethernet 1/0/2
[FW-GigabitEthernet1/0/2] nat server protocol tcp global 202.38.1.1 ftp inside server-group 0
10、NAT DNS mapping
前提條件:某公司內部對外提供Web和FTP服務。公司內部網址為10.110.0.0/16。其中, Web服務器
地址為10.110.10.1/16, FTP服務器地址為10.110.10.2/16。公司具有202.38.1.1至202.38.1.3三個公網
IP地址。另外公司在外網有一台DNS服務器, IP地址為202.38.1.4。
# 開啓DNS的NAT ALG功能。
[FW]system-view
[FW] nat alg dns
[FW]GigabitEthernet1/0/2。
[FW] interface gigabitethernet 1/0/2
# 配置NAT內部Web服務器,允許外網主機使用地址202.38.1.2訪問內網Web服務器。
[FW-GigabitEthernet1/0/2] nat server protocol tcp global 202.38.1.2 inside 10.110.10.1 http
# 配置NAT內部FTP服務器,允許外網主機使用地址202.38.1.2訪問內網FTP服務器。
[FW-GigabitEthernet1/0/2] nat server protocol tcp global 202.38.1.2 inside 10.110.10.2 ftp
# 在接口GigabitEthernet1/0/2上配置Easy IP方式的出方向動態地址轉換。
[FW-GigabitEthernet1/0/2] nat outbound
# 配置兩條DNS mapping表項:
Web服務器的域名www.example.com對應IP地址202.38.1.2;
FTP服務器的域名ftp.example.com對應IP地址202.38.1.2。
[FW] nat dns-map domain www.example.com protocol tcp ip 202.38.1.2 port http
[FW] nat dns-map domain ftp.example.com protocol tcp ip 202.38.1.2 port ftp
11、NAT444 端口靜態映射
內部網絡用户10.110.10.1~ 10.110.10.10使用外網地址202.38.1.100訪問Internet。內網
用户地址基於NAT444端口塊靜態映射方式複用外網地址202.38.1.100,外網地址的端口範圍為10001~15000,端口塊大小為500
# 創建NAT端口塊組1。
[FW]system-view
[FW] nat port-block-group 1
# 添加私網地址成員10.110.10.1~ 10.110.10.10。
[FW-port-block-group-1] local-ip-address 10.110.10.1 10.110.10.10
# 添加公網地址成員為202.38.1.100。
[FW-port-block-group-1] global-ip-pool 202.38.1.100 202.38.1.100
# 配置端口塊大小為500,公網地址的端口範圍為10001~ 15000。
[FW-port-block-group-1] block-size 500
[FW-port-block-group-1] port-range 10001 15000
[FW-port-block-group-1] quit
# 在接口GigabitEthernet1/0/2上配置NAT444端口塊靜態映射,引用端口塊組1。
[FW] interface gigabitethernet 1/0/2
[FW-GigabitEthernet1/0/2] nat outbound port-block-group 1
12、NAT444 端口動態映射
某公司內網使用的IP地址為192.168.0.0/16。該公司擁有202.38.1.2和202.38.1.3兩個外網IP地址。
需要實現,內部網絡中的192.168.1.0/24網段的用户可以訪問Internet,其它網段的用户不能訪問Internet。
基於NAT444端口塊動態映射方式複用兩個外網地址202.38.1.2和202.38.1.3,外網地址的端
口範圍為1024~ 65535,端口塊大小為300。
當為某用户分配的端口塊資源耗盡時,再為其增量分配1個端口塊。
[FW]system-view
[FW] nat address-group 0
[FW-address-group-0] address 202.38.1.2 202.38.1.3
[FW-address-group-0] port-range 1024 65535
[FW-address-group-0] port-block block-size 300 extended-block-number 1
[FW-address-group-0] quit
# 配置ACL 2000,僅允許對內部網絡中192.168.1.0/24網段的用户報文進行地址轉換。
[FW] acl basic 2000
[FW-acl-ipv4-basic-2000] rule permit any
# 在接口GigabitEthernet1/0/2上配置出方向動態地址轉換,允許使用地址組0中的地址對匹配ACL 2000
的報文進行源地址轉換,並在轉換過程中使用端口信息。
[FW] interface gigabitethernet 1/0/2
[FW-GigabitEthernet1/0/2] nat outbound 2000 address-group 0
13、DS-Lite B4端口塊動態映射
支持DS-Lite協議的私網IPv4主機(即: DS-Lite host)和公網IPv4 network通過IPv6網絡相
連。通過在DS-Lite host和AFTR之間建立DS-Lite隧道,並在AFTR連接IPv4 network接口上配置NAT,為
DS-Lite host動態分配端口塊,實現IPv4私網穿越IPv6網絡訪問IPv4公網。
# 配置接口GigabitEthernet1/0/1的地址。
system-view
[FW] interface gigabitethernet 1/0/1
[FW-GigabitEthernet1/0/1] ip address 20.1.1.1 24
# 配置接口GigabitEthernet1/0/2(隧道的實際物理接口)的地址。
[FW] interface gigabitethernet 1/0/2
[FW-GigabitEthernet1/0/2] ipv6 address 1::2 64
# 創建模式為AFTR端DS-Lite隧道的接口Tunnel2。
[FW] interface tunnel 2 mode ds-lite-aftr
# 配置Tunnel2接口的IP地址。
[FW-Tunnel2] ip address 30.1.2.2 255.255.255.0
# 配置Tunnel2接口的源接口為GigabitEthernet1/0/2。
[FW-Tunnel2] source gigabitethernet 1/0/2
# 將Tunnel2接口加入到安全域IPv6Zone。
[FW] security-zone name IPv6Zone
[FW-security-zone-IPv6Zone] import interface Tunnel 2
# 在接口GigabitEthernet1/0/1上開啓DS-Lite隧道功能。
[FW] interface gigabitethernet 1/0/1
[FW-GigabitEthernet1/0/1] ds-lite enable
# 配置NAT地址組0,包含兩個外網地址20.1.1.11和20.1.1.12,外網地址的端口範圍為1024~ 65535,
端口塊大小為300。
[FW] nat address-group 0
[FW-address-group-0] address 20.1.1.11 20.1.1.12
[FW-address-group-0] port-range 1024 65535
[FW-address-group-0] port-block block-size 300
# 配置IPv6 ACL 2100,僅允許對1::/64網段的IPv6源地址進行地址轉換。
[FW] acl ipv6 basic 2100
[FW-acl-ipv6-basic-2100] rule permit source 1::/64
# 在接口GigabitEthernet1/0/1上配置出方向動態地址轉換,允許使用地址組0中的地址對匹配IPv6 ACL
2100的DS-Lite B4報文進行源地址轉換,並在轉換過程中使用端口信息。
[FW] interface gigabitethernet 1/0/1
[FW-GigabitEthernet1/0/1] nat outbound ds-lite-b4 2100 address-group 0