第1章 ACL 訪問控制列表
訪問控制表(Access Control List,ACL),又稱存取控制串列,是使用以訪問控制矩陣為基礎的訪問控制方法,每一個對象對應一個串列主體。
訪問控制表描述每一個對象各自的訪問控制,並記錄可對此對象進行訪問的所有主體對對象的權限。
1.1 為什么要用ACL
流量控制
匹配感興趣的流量
1.2 標准訪問控制列表
只能根據源地址做過濾
針對整個協議采取相關動作{允許或禁止}
1.3 擴展訪問控制列表
能根據源、目的地地址、端口號等等進行過濾
能允許或拒絕特定的協議
1.4 基本原則
1、按順序執行,只要有一條滿足,則不會繼續查找
2、隱含拒絕,如果都不匹配,那么一定匹配最后的隱含拒絕條目,思科默認的
3、任何條件下只給用戶能滿足他們需求的最小權限
4、不要忘記把ACL應用到端口上
1.5 ACL的操作
1.5.1 入站於出站
進方向和出方向是根據數據流相對於接口來確定的
1.5.2 入方向的ACL的操作
1.5.3 出方向的 ACL的操作
1.5.4 ACL語句
一、標准ACL
access-list {1-99} {permit/deny} source-ip source-wildcard [log]
二、擴展ACL
access-list {100-199} {permit/deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established] [log]
三、命名ACL
ip access-list {standard/extended} name { permit /deny} source-ip source-wildcard 標准ACL { permit /deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established][log] 擴展acl
1.5.5 ACL匹配過程
順序匹配,符合不再執行后面的
所有的都沒有匹配到會丟棄(隱含拒絕)
1.6 ACL的配置
1.6.1 ACL的標識
1-99,1300-1999 標准訪問控制列表
100-199,2000-2699 擴展訪問控制列表
name 命名訪問控制列表
1.6.2 標准訪問控制列表的配置
access-list {1-99} {permit/deny} source [wildcard mask]
編號選擇 1-99
通配符若無,默認0.0.0.0
'no access-list access-list-number '會刪除整個ACL列表
ip access-group access-list-number {in|out }
在接口中應用
應用時關聯入或出站方向
默認出站
'no ip access-group access-list-number '會移除接口上應用的訪問列表
1.6.3 通配符
在路由器的配置中,經常出現通配符。和子網掩碼一樣,都是以“0”或“1”表示,不過與子網掩碼所表示的意思卻不一樣。
子網掩碼所表示的是IP的網絡位和主機位,而通配符則表示與IP是否匹配。
通配符同樣是32位,和IP地址一一對應,“0”位代表精確匹配,而“1“位代表不許匹配。
例如路由器EIGRP的配置中:
RouterA(config)#router eigrp 100 RouterA(config-router)#network 10.0.0.0 0.0.0.255 RouterA(config-router)#network 192.168.1.0 0.0.0.255
10.0.0.0 0.0.0.255說明只要接口的IP地址是以“10”開頭就參與EIGRP進程。
同理的,192.168.1.0 0.0.0.255說明只要IP是以192.168.1開頭的IP就符合。
1.6.4 通配符縮寫
192.168.1.1 0.0.0.0 == host 192.168.1.1
精確匹配192.168.1.1這個ip
0.0.0.0 255.255.255.255 == any
匹配所有IP
1.7 【實例】標准ACL
禁止主機A 上外網
1.7.1 拓撲圖
1.7.2 配置路由acl
R-acl-1(config)#access-list 1 deny 192.168.1.1 0.0.0.0 R-acl-1 (config)#access-list 1 permit any
應用到接口上
R-acl-1 (config)#interface fastEthernet 0/0 R-acl-1 (config-if)#ip access-group 1 in
1.7.3 檢查ACL 表內容
R-acl-1#show access-lists 1 Standard IP access list 1 deny host 192.168.1.1 (6 match(es)) permit any
1.8 擴展訪問控制列表的配置
同一個接口上針對一種協議只能用一個ACL
1.8.1 配置命令
access-list {100-199} {permit/deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established] [log] access-list {100-199} permit/deny 協議號 源地址 通配符 目的地址 通配符
應用
ip access-group access-list-number {in|out }
在接口中應用
應用時關聯入或出站方向
1.9 【實例】擴展ACL
禁止A網段中的192.168.1.1-192.168.1.30 訪問B網段的服務器
1.9.1 拓撲圖
1.9.2 路由器acl配置
R-ACL-2(config)#access-list 100 deny ip 192.168.1.0 0.0.0.31 host 192.168.2.200 R-ACL-2(config)#access-list 100 permit ip any any
應用到接口
R-ACL-2(config)#interface fastEthernet 0/0 R-ACL-2(config-if)#ip access-group 100 in
1.9.3 檢查acl信息
R-ACL-2#show access-lists 100 Extended IP access list 100 deny ip 192.168.1.0 0.0.0.31 host 192.168.2.200 permit ip any any
1 C:\>PING 192.168.2.200 2 3 Pinging 192.168.2.200 with 32 bytes of data: 4 5 Reply from 192.168.1.254: Destination host unreachable. 6 Reply from 192.168.1.254: Destination host unreachable.
1.9.4 禁止訪問某一項服務
access-list 100 deny tcp any host 192.168.2.200 eq 23 access-list 100 permint any
標准於擴展ACL的配置內容
R-ACL-2(config)#access-list 1 permit ? A.B.C.D Address to match any Any source host host A single host address R-ACL-2(config)#access-list 100 permit ? ahp Authentication Header Protocol eigrp Cisco's EIGRP routing protocol esp Encapsulation Security Payload gre Cisco's GRE tunneling icmp Internet Control Message Protocol ip Any Internet Protocol ospf OSPF routing protocol tcp Transmission Control Protocol udp User Datagram Protocol
1.10 命名訪問控制列表的配置
1.10.1 配置命令
格式
ip access-list { extended|standard } name
配置
R-ACL-2(config)#ip access-list extended test R-ACL-2(config-ext-nacl)#10 deny TCP 192.168.12.0 0.0.0.255 any eq 23 R-ACL-2(config-ext-nacl)#20 permit ip any any
查看
R-ACL-2#show ip access-lists test Extended IP access list test deny tcp 192.168.12.0 0.0.0.255 any eq telnet permit ip any any
應用到接口
R-ACL-2(config)#interface fastEthernet 0/0 R-ACL-2(config-if)#ip access-group test in
1.11 注意
每個接口,每個方向,每種協議,只能設置1個ACL
組織好你的ACL的順序,比如測試性的最好放在ACL的最頂部
不可能從ACL中除去1行,除去一行意味着你將除去整個ACL。命名ACL除外
默認acl結尾語句時deny any ,所以在ACL中至少有一句permint語句
記得創建了ACL后應用到接口上
ACL是用於過濾經過路由器的數據包,他並不會過濾路由器本身產生的數據包
盡可能的把IP標准ACL放在距離目標近的地方;把擴展ACL放在離源地址近的地方
第2章 NAT動態地址轉換
2.1 為什么需要NAT
IPv4地址緊缺
解決方案: DHCP、IPv6、NAT
2.1.1 私有地址空間
私有地址(Private address)屬於非注冊地址,專門為組織機構內部使用。
NAT將私有地址轉化為共有IP
2.2 私有IP地址空間
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
2.3 NAT術語
名稱 |
含義 |
內部本地 |
轉換之前內部源地址的名字 |
外部本地 |
轉換之前目標主機的名字 |
內部全局 |
轉換之后內部主機的名字 |
外部全局 |
轉換之后外部目標主機的名字 |
2.4 NAT三種類型
2.4.1 靜態NAT
一對一映射
基本網絡地址轉換(Basic NAT)
這一種也可稱作NAT或“靜態NAT”。它在技術上比較簡單一點,僅支持地址轉換,不支持端口映射。Basic NAT要求對每一個當前連接都要對應一個公網IP地址,因此要維護一個公網的地址池。寬帶(broadband)路由器通常使用這種方式來允許一台指定的設備去管理所有的外部鏈接,甚至當路由器本身只有一個可用外部IP時也如此,這台路由器有時也被標記為DMZ主機。
基本NAT要維護一個無端口號NAT表,結構如下。
2.4.2 動態NAT
動態NAT是指將內部網絡的私有IP地址轉換為公用IP地址時,IP地址對是不確定的,是隨機的,所有被授權訪問Internet的私有IP地址可隨機轉換為任何指定的合法IP地址。也就是說,只要指定哪些內部地址可以進行轉換,以及用哪些合法地址作為外部地址時,就可以進行動態轉換。
動態轉換可以使用多個合法外部地址集。當ISP提供的合法IP地址略少於網絡內部的計算機數量時。可以采用動態轉換的方式。
2.4.3 端口復用
網絡地址端口轉換(NAPT)
這種方式支持端口的映射,並允許多台主機共享一個公網IP地址。
支持端口轉換的NAT又可以分為兩類:源地址轉換和目的地址轉換。前一種情形下發起連接的計算機的IP地址將會被重寫,使得內網主機發出的數據包能夠到達外網主機。后一種情況下被連接計算機的IP地址將被重寫,使得外網主機發出的數據包能夠到達內網主機。實際上,以上兩種方式通常會一起被使用以支持雙向通信。
NAPT維護一個帶有IP以及端口號的NAT表,結構如下。
2.5 NAT配置
2.5.1 靜態NAT配置
ip nat inside source static local-ip global-ip 進入連接內網端口 ip nat inside 進入連接外網端口 ip nat outside
查看
show ip nat trnslations
2.5.2 動態NAT轉換
ip nat pool name start-ip end-ip access-list access-list-number permint source [source-wlldcard] ip nat inside source list access-list-number pool name
查看
show ip nat trnslations
2.5.3 PAT配置
access-list access-list-number permit source source-wlldcard ip nat inside source list access-list-number interface interface overload
查看
show ip nat translations
2.5.4 清除NAT轉換表項
清除所有
clear ip nat translation *
2.6 【實驗】NAT轉換
內網手游PC能夠訪問外網
外網用戶能夠通過公網地址訪問內網服務器的telnet服務。
2.6.1 拓撲圖
2.6.2 配置nat
R-NAT-1(config)#access-list 1 permit 192.168.1.0 0.0.0.255 R-NAT-1(config)#ip nat inside source list 1 interface serial 0/0 overload 注意: R-NAT-1(config)#interface fastEthernet 0/0 R-NAT-1(config-if)#ip nat inside R-NAT-1(config-if)#interface s 0/0 R-NAT-1(config-if)#ip nat outside
2.6.3 查看nat表
R-NAT-1#show ip nat translations Pro Inside global Inside local Outside local Outside global icmp 202.101.100.1:1 192.168.1.1:1 202.101.100.30:1 202.101.100.30:1 icmp 202.101.100.1:2 192.168.1.1:2 202.101.100.30:2 202.101.100.30:2 icmp 202.101.100.1:3 192.168.1.1:3 202.101.100.30:3 202.101.100.30:3 icmp 202.101.100.1:4 192.168.1.1:4 202.101.100.30:4 202.101.100.30:4
2.6.4 映射內網服務器
完整映射
R-NAT-1(config)#ip nat inside source static 192.168.1.100 202.101.100.3
端口映射
R-NAT-1(config)#ip nat inside source static tcp 192.168.1.100 80 202.101.100.1 8080
第3章 IPv6
IPv6的128位地址通常寫成8組,每組為四個十六進制數的形式。
3.1 IPv6地址
2001:0db8:3c4d:0012:0000:0000:1234:56ab 全球前綴 子網 接口ID http://[2001:0db8:3c4d:0012:0000:0000:1234:56ab]/default.html
Web瀏覽器發起HTTP連接的例子:
3.1.1 【示例】IPv6地址表達式
AD80:0000:0000:0000:ABAA:0000:00C2:0002
是一個合法的IPv6地址。這個地址比較長,看起來不方便也不易於書寫。
零壓縮法可以用來縮減其長度。
如果幾個連續段位的值都是0,那么這些0就可以簡單的以::來表示,上述地址就可寫成
AD80::ABAA:0000:00C2:0002
這里要注意的是只能簡化連續的段位的0,其前后的0都要保留,比如AD80的最后的這個0,不能被簡化。還有這個只能用一次,在上例中的ABAA后面的0000就不能再次簡化。當然也可以在AAAA后面使用::,這樣的話前面的12個0就不能壓縮了。這個限制的目的是為了能准確還原被壓縮的0,不然就無法確定每個::代表了多少個0。
3.2 IPv6地址類型
單播地址
–全球單播地址:典型的、可路由的通用地址
–鏈路本地地址:私有地址、不能被路由
–本地唯一地址:用於非路由目的,但是全球唯一
組播地址
任播地址
3.2.1 單播地址(unicast)
單播地址又叫單目地址,就是傳統的點對點通信,單播表示一個單接口的標識符。IPv6單播地址的類型又分:全球單播地址、鏈路本地地址和站點本地地址。
全球單播地址相當於IPv4的公網地址,這類地址由供應商提供,或由交換局提供,可聚集全球單點傳送地址結構。
鏈路本地單播地址是處於可聚集全球單播地址外的,只限於直連鏈路,是單網絡鏈路上給的主機編號,作用是進行鏈路上主機的通信
本地唯一地址用於對特定范圍的通信也可說成是規定站點內的通信,不能與站點外地址通信,也不能直接連接到全球Internet。
3.2.2 組播地址(multicast)
又稱為多點傳送地址或者多播,即一組接口的標識符,只要存在合適的多點傳輸的路由拓撲就可將設有多播地址的包傳輸到這個地址識別的那組接口。
3.2.3 任播地址(anycast)
又稱之為任意點傳送地址,它也是一個標識符可以識別多重接口的情況,只要有合適的路由拓撲,即可以將設有任意傳播地址的數據包傳給位址識別的最近的單一接口。
最近的接口是指最短的路由距離。任意點傳送地址空間可以認為是從單點傳送地址空間中划分出來的,它可以是表示單點傳送地址的任何形式。它與單點傳送地址間結構上是沒有差別的。目前,任意點傳送地址僅分配給路由器。
子網-路由任意點傳送地址是必須預先定義的,根據給定接口的子網前綴產生,要構建一個子網路由任意點地址必須固定子網前綴的位數,余下位數必須設定為0。
3.3 IPv6特殊的地址
IPv6地址 |
功能 |
0:0:0:0:0:0:0:0 等於:: |
等價於IPv4的0.0.0.0 |
0:0:0:0:0:0:0:1 等於::1 |
等價於IPv4的127.0.0.1 |
0:0:0:0:0:0:0:192.168.100.1 |
這是在IPv6/v4混合網絡中IPv4地址表示 |
2000::/3 |
全球單播地址范圍 |
FC00::/7 |
本地唯一單播地址范圍 |
FE80::/10 |
鏈路本地單播地址范圍 |
FF00::/8 |
組播地址范圍 |
3FFF:FFFF::/32 |
為示例和文檔保留的地址 |
2001:0DB8::/32 |
也是為示例和文檔保留的地址 |
2002::/16 |
擁有IPv6到IPv4的轉換系統,IPv6包直接通過IPv4網絡傳輸 |
3.4 自動配置
某台設備的MAC地址:
0060.D673.1987 0260.D6FF.FE73.1987
u IPv6地址的接口ID是64位,MAC地址只有48位,因此需要再加上16位,及在中間填充FFFE
02 → 00000010
u 在填充過程中,第7位如果改成值為1,及為全球唯一的,這一位改成值為0,及為本的唯一的
u 這種類型的自動配置稱為“無狀態自動配置”
3.5 用IPv6配置Cisco路由器
在路由器上啟用IPv6,默認時,IPv6流量轉發被禁用
ipv6 unicast-routing
在接口上配置IPv6地址
ipv6 address 2001:db8:3c4d:1:0260.d6FF.FE73.1987/64
啟用接口,通過DHCP獲得IPv6地址
ipv6 enable