在企業網絡中常常遇到這樣的問題:在網絡一個重要的部門的主機或服務器不容許其餘部門訪問,而這個部門卻能夠去訪問其餘的部門的主機或服務器。咱們能夠利用訪問控制列表ACL實現單方向訪問來實現以上單向訪問功能。html
所謂單向訪問,就是一部分網絡主機能夠訪問另外一部分網絡主機,而反過來則不容許訪問。對於單向訪問不能簡單的經過訪問控制列表ACL中的deny語句來實現,deny語句能夠實現A、B主機間訪問數據流的完全阻斷,可是沒法實現單向訪問。由於若是deny掉A主機到B主機的訪問,那麼B主機也就不能訪問A主機了(由於B主機到A主機的訪問數據雖然能到達A主機,可是A主機的回覆數據流被ACL訪問控制列表規則阻斷了)。
那麼怎麼實現單向訪問呢?答案是利用permit語句。方法就是利用permit語句讓B主機訪問A主機的同時容許A主機的響應數據流經過(要在permit語句中使用established參數),可是不容許由A主機發起的到B主機的訪問經過,這樣就能夠實現B主機向A主機的單向訪問。
擴展的單向訪問控制列表ACL的基本配置命令以下:
Router(config)#access-list access-list-number {permit|deny} protocol source source-wildcard [operator port] destination destination-wildcard [operator port] [established] [log]
參數解釋:
access-list-number 擴展的訪問控制列表ACL的編號,好比100
permit|deny 容許或不容許經過
protocol 協議類型,好比 TCP IP UDP .
soure 源地址
destination 目標地址
established 已創建的鏈接
established參數能夠在拒絕數據流經過的方向上,讓已創建的鏈接的TCP數據流經過(好比ACK確認包),咱們正是利用這一點來實現單向訪問,將一個普通的擴展訪問列表ACL轉變成一個容許單向訪問的控制列表ACL。
在路由器接口上應用擴展的訪問控制列表ACL的配置命令以下:
Router(config)#ip access-group access-list-number in (通常都是進方向)
下邊咱們用一個ACL實例來看一下具體的實現單向訪問的方法:
網絡環境假定:
A部門網段:路由 S0:192.168.0.1 E0:10.98.0.1
B部門網段:路由 S0:192.168.0.2 E0:10.98.1.1
主機A、 B分別屬於兩個部門
主要配置以下:
A路由配置:
!
interface eth0
ip add 10.98.0.1 255.255.0.0
interface s0
ip add 192.168.0.1 255.255.255.0
ip access-group 100 in
!
ip route 10.98.1.0 255.255.0.0 s0
!
access-list 100 permit tcp any host 10.98.0.1 established log
(這條命令容許10.98.0.1創建的鏈接回送數據)
access-list 100 deny ip any any log
B路由配置:
!
interface eth0
ip add 10.98.1.1 255.255.0.0
!
inter s0
ip add 192.168.0.2 255.255.255.0
!
ip route 10.98.0.1 255.255.0.0 s0
經過訪問控制列表ACL的限制實現了B部門到A部門之間單項訪問,部門A能夠訪問部門B的網絡主機或服務器,而B部門的主機沒法訪問到A部門的主機。