簡介
本文提供用於在網路入口點過濾傳輸和邊緣流量的准則和推薦部署技術。傳輸存取控制清單(ACL)是用來提高網路資安,因為它明確允許只有所需的流量才能進入您的網路。
傳輸過濾器
典型設定
在大多數邊緣網路環境中(例如典型的企業網路網際網路接入點),應使用入口過濾將未經授權的流量丟棄在網路邊緣。在某些服務提供商部署中,這種形式的邊緣或中轉流量過濾也可以有效地用於限制中轉流量僅流向特定許可協定。本文檔重點介紹企業部署模型。
本示例描述了典型的企業Internet連線設計。兩台邊緣路由器IR1和IR2提供與Internet的直接連線。在這兩台路由器之後,一對防火牆(在本例中為Cisco PIX)提供狀態檢測功能和對內部網路和隔離區(DMZ)的訪問。DMZ包含面向公眾的服務,例如DNS和Web;這是唯一可從公共Internet直接訪問的網路。內部網路決不能直接通過Internet訪問,但是來自內部網路的流量必須能夠到達Internet站點。
邊緣路由器應配置為通過使用入站ACL提供第一級安全性。ACL僅允許特定允許的流量到達DMZ,並允許內部使用者返回訪問網際網路的流量。所有未授權的流量都應在輸入介面上丟棄。
傳輸ACL部分
通常,傳輸ACL由四部分組成。
如何開發傳輸ACL
開發傳輸ACL的第一步是確定網路中所需的協定。雖然每個站點都有特定的要求,但某些協定和應用程式已得到廣泛使用,並且通常得到允許。例如,如果DMZ網段為可公開訪問的Web伺服器提供連線,則需要從網際網路到埠80上的DMZ伺服器地址的TCP。類似地,與Internet的內部連線要求ACL permit返回已建立的TCP流量 — 已設定確認(ACK)位的流量。
確定所需的協定
制定此所需協定清單是一項艱鉅的任務,但可根據需要使用多種技術來幫助確定所需流量。
-
檢查您的本地安全策略/服務策略。
您的本地站點策略應幫助提供允許和拒絕服務的基準。
-
檢查/稽核防火牆配置。
當前防火牆配置應明確包含 permit
允許服務的語句。在許多情況下,您可以將此配置轉換為ACL格式,然後使用它來建立大量ACL條目。
注意:狀態防火牆通常沒有將流量返回到授權連線的明確規則。由於路由器ACL不是有狀態的,因此必須明確允許返回流量。
-
稽核/稽核您的應用。
託管在DMZ上的應用和內部使用的應用可幫助確定過濾要求。檢視應用程式要求,提供有關篩選設計的基本詳細資訊。
-
使用分類ACL。
分類ACL由 permit
可能發往內部網路的各種協定的語句。(有關常用協定和應用的清單,請參閱附錄A。) 使用 show access-list
命令顯示訪問控制條目(ACE)命中數以識別所需的協定。請在明確建立之前調查並瞭解任何可疑或意外結果 permit
意外協定的語句。
-
使用Netflow交換功能。
Netflow是一種交換功能,如果啟用,可提供詳細的流量資訊。如果在邊緣路由器上啟用了Netflow, show ip cache flow
命令提供Netflow記錄的協定清單。Netflow無法識別所有協定,因此這項技術必須與其他技術結合使用。
識別無效流量
除了直接保護,傳輸ACL還應提供第一道防線,以防止Internet上特定型別的無效流量。
要考慮的其他流量型別包括:
套用ACL
新構建的ACL應該應用於邊緣路由器面向Internet的介面的入站流量。在Typical Setup部分所示的示例中,ACL應用於IR1和IR2上面向Internet的介面。
有關詳細資訊,請參閱部署指南和部署示例中的部分。
ACL範例
此存取清單提供傳輸ACL所需典型專案的簡單但真實的範例。此基本ACL需要使用本地站點特定的配置詳細資訊進行自定義。
!--- Add anti-spoofing entries.
!--- Deny special-use address sources.
!--- Refer to RFC 3330 for additional special use addresses.
access-list 110 deny ip 127.0.0.0 0.255.255.255 any
access-list 110 deny ip 192.0.2.0 0.0.0.255 any
access-list 110 deny ip 224.0.0.0 31.255.255.255 any
access-list 110 deny ip host 255.255.255.255 any
!--- The deny statement should not be configured
!--- on Dynamic Host Configuration Protocol (DHCP) relays.
access-list 110 deny ip host 0.0.0.0 any
!--- Filter RFC 1918 space.
access-list 110 deny ip 10.0.0.0 0.255.255.255 any
access-list 110 deny ip 172.16.0.0 0.15.255.255 any
access-list 110 deny ip 192.168.0.0 0.0.255.255 any
!--- Permit Border Gateway Protocol (BGP) to the edge router.
access-list 110 permit tcp host bgp_peer gt 1023 host router_ip eq bgp
access-list 110 permit tcp host bgp_peer eq bgp host router_ip gt 1023
!--- Deny your space as source (as noted in RFC 2827).
access-list 110 deny ip your Internet-routable subnet any
!--- Explicitly permit return traffic.
!--- Allow specific ICMP types.
access-list 110 permit icmp any any echo-reply
access-list 110 permit icmp any any unreachable
access-list 110 permit icmp any any time-exceeded
access-list 110 deny icmp any any
!--- These are outgoing DNS queries.
access-list 110 permit udp any eq 53 host primary DNS server gt 1023
!--- Permit older DNS queries and replies to primary DNS server.
access-list 110 permit udp any eq 53 host primary DNS server eq 53
!--- Permit legitimate business traffic.
access-list 110 permit tcp any Internet-routable subnet established
access-list 110 permit udp any range 1 1023 Internet-routable subnet gt 1023
!--- Allow ftp data connections.
access-list 110 permit tcp any eq 20 Internet-routable subnet gt 1023
!--- Allow tftp data and multimedia connections.
access-list 110 permit udp any gt 1023 Internet-routable subnet gt 1023
!--- Explicitly permit externally sourced traffic.
!--- These are incoming DNS queries.
access-list 110 permit udp any gt 1023 host <primary DNS server> eq 53
!-- These are zone transfer DNS queries to primary DNS server.
access-list 110 permit tcp host secondary DNS server gt 1023 host primary DNS server eq 53
!--- Permit older DNS zone transfers.
access-list 110 permit tcp host secondary DNS server eq 53 host primary DNS server eq 53
!--- Deny all other DNS traffic.
access-list 110 deny udp any any eq 53
access-list 110 deny tcp any any eq 53
!--- Allow IPSec VPN traffic.
access-list 110 permit udp any host IPSec headend device eq 500
access-list 110 permit udp any host IPSec headend device eq 4500
access-list 110 permit 50 any host IPSec headend device
access-list 110 permit 51 any host IPSec headend device
access-list 110 deny ip any host IPSec headend device
!--- These are Internet-sourced connections to
!--- publicly accessible servers.
access-list 110 permit tcp any host public web server eq 80
access-list 110 permit tcp any host public web server eq 443
access-list 110 permit tcp any host public FTP server eq 21
!--- Data connections to the FTP server are allowed
!--- by the permit established ACE.
!--- Allow PASV data connections to the FTP server.
access-list 110 permit tcp any gt 1023 host public FTP server gt 1023
access-list 110 permit tcp any host public SMTP server eq 25
!--- Explicitly deny all other traffic.
access-list 101 deny ip any any
-
其 log
關鍵字可用於提供有關給定協定的源和目標的其他詳細資訊。雖然此關鍵字提供了有關ACL命中詳細資訊的寶貴資訊,但是對使用 log
關鍵字增加CPU利用率。與日誌記錄相關的效能影響因平台而異。
-
ICMP無法到達消息是為被ACL管理性拒絕的資料包生成的。這可能會影響路由器和鏈路效能。考慮使用 no ip unreachables
命令,以在部署傳輸(邊緣)ACL的介面上停用IP無法連線。
-
此ACL最初可部署為所有 permit
語句,以確保業務合法流量不會被拒絕。在識別並記錄業務合法流量後,特定 deny
可以配置元素。
ACL和分段的資料包
ACL具有 fragments
啟用專門分段資料包處理行為的關鍵字。一般來說,與第3層語句(通訊協定、來源位址和目的地位址)相符的非初始片段(不論ACL中的第4層資訊)會受到 permit
或 deny
匹配條目的語句。請注意, fragments
關鍵字可以強制ACL以更高的粒度拒絕或允許非初始片段。
過濾片段為僅使用非初始片段(例如FO > 0)的拒絕服務(DoS)攻擊新增額外的保護層。使用 deny
acl開頭用於非初始片段的語句拒絕所有非初始片段訪問路由器。在極少數情況下,有效的作業階段可能需要分段,因此在以下情況下會過濾有效作業階段: deny fragment
acl中存在語句。可能導致分段的條件包括使用數位證書進行ISAKMP身份驗證和使用IPSec NAT遍歷。
例如,請考慮此處顯示的部分ACL。
access-list 110 deny tcp any Internet routable subnet fragments
access-list 110 deny udp any Internet routable subnet fragments
access-list 110 deny icmp any Internet routable subnet fragments
<rest of ACL>
將這些條目新增到ACL的開頭會拒絕任何非初始片段訪問網路,而未分段的資料包或初始片段會傳遞到ACL的下一行,而不會受到 deny fragment
報表。前面的ACL片段也有助於對攻擊進行分類,因為每個協定(UDP、TCP和ICMP)都會增加ACL中的獨立計數器。
由於許多攻擊依賴於利用分段的資料包泛洪,因此將傳入的片段過濾到內部網路可提供額外的保護措施,並有助於確保攻擊無法通過在傳輸ACL中簡單匹配第3層規則來注入片段。
請參閱存取控制清單和IP片段,以取得選項的詳細討論。
風險評估
部署傳輸流量保護ACL時,請考慮兩個關鍵的風險區域。
思科建議您先在實驗室中測試此設計,然後再進行部署。
附錄
常用通訊協定與應用程式
TCP埠名稱
在Cisco IOS®軟體中設定ACL時,可以使用TCP連線埠名稱清單來代替連線埠號碼。請參閱目前指派編號的RFC,以尋找對這些通訊協定的參考。在配置ACL時,還可以通過輸入?來代替埠號來找到與這些協定對應的埠號。
bgp |
kshell |
chargen |
login |
cmd |
lpd |
daytime |
nntp |
discard |
pim |
domain |
pop2 |
echo |
pop3 |
exec |
smtp |
finger |
sunrpc |
ftp |
syslog |
ftp-data |
tacacstalk |
gopher |
telnet |
hostname |
time |
ident |
uucp |
irc |
whois |
klogin |
www |
UDP埠名稱
在Cisco IOS軟體中設定ACL時,可以使用UDP連線埠名稱清單來代替連線埠號碼。請參閱目前指派編號的RFC,以尋找對這些通訊協定的參考。在配置ACL時,還可以通過輸入?來代替埠號來找到與這些協定對應的埠號。
biff |
ntp |
bootpc |
pim-auto-rp |
bootps |
rip |
discard |
snmp |
dnsix |
snmptrap |
domain |
sunrpc |
echo |
syslog |
isakmp |
tacacs |
mobile-ip |
talk |
nameserver |
tftp |
netbios-dgm |
time |
netbios-ns |
who |
netbios-ss |
xdmcp |
部署指南
思科建議採用保守的部署做法。您必須對所需的協定有清楚的瞭解,才能成功部署傳輸ACL。這些指南介紹了使用迭代方法的保護ACL的部署方法,這種方法非常保守。
- 使用分類ACL識別網路中使用的協定。
部署一個ACL,以允許網路中使用的所有已知協定。此發現或分類ACL的源地址應為 any
以及IP地址或整個Internet可路由IP子網的目標。配置允許的最後一個條目 ip any any log
以便協助識別您需要允許的其他通訊協定。
目的是確定網路中正在使用的所有必需協定。使用日誌記錄進行分析,以確定可能與路由器通訊的其他內容。
註:雖然 log
關鍵字提供了有關ACL命中詳細資訊的寶貴資訊,如果過多地命中使用此關鍵字的ACL條目,則可能會導致日誌條目數量過多,並且路由器CPU使用率可能很高。使用 log
短時間的關鍵字,僅在需要時使用,以便幫助對流量分類。
請注意,當包含所有ACL的ACL permit
陳述已準備就緒。儘快執行分類過程,以便實施適當的訪問控制。
- 檢查識別的資料包並開始過濾對內部網路的訪問。
識別並檢查步驟1中由ACL過濾的資料包後,請更新分類ACL以說明新識別的協定和IP地址。新增用於反欺騙的ACL條目。如有需要,特定替代方案 deny
條目 permit
分類ACL中的語句。您可以使用 show access-list
用於監控特定的 deny
可以監控條目中的命中計數。這樣可提供有關禁止的網路訪問嘗試的資訊,而無需在ACL條目上啟用日誌記錄。ACL的最後一行應是 deny ip any any
.同樣,針對最後一個條目的命中計數可以提供有關禁止訪問嘗試的資訊。
- 監控和更新ACL。
監控已完成的ACL,確保以受控方式新增所需的通訊協定。如果監控ACL,也會提供有關被禁止的網路訪問嘗試的資訊,這可能提供有關即將發生的攻擊的資訊。
部署示例
此範例顯示一個傳輸ACL,它根據此定址保護網路。
傳輸保護ACL是根據此資訊開發的。ACL允許eBGP對等到ISP路由器,提供反欺騙過濾器,允許特定返回流量,允許特定入站流量,並明確拒絕所有其他流量。
no access-list 110
!--- Phase 1 – Add anti-spoofing entries.
!--- Deny special-use address sources.
!--- See RFC 3330 for additional special-use addresses.
access-list 110 deny ip 127.0.0.0 0.255.255.255 any
access-list 110 deny ip 192.0.2.0 0.0.0.255 any
access-list 110 deny ip 224.0.0.0 31.255.255.255 any
access-list 110 deny ip host 255.255.255.255 any
!--- This deny statement should not be configured
!--- on Dynamic Host Configuration Protocol (DHCP) relays.
access-list 110 deny ip host 0.0.0.0 any
!--- Filter RFC 1918 space.
access-list 110 deny ip 10.0.0.0 0.255.255.255 any
access-list 110 deny ip 172.16.0.0 0.15.255.255 any
access-list 110 deny ip 192.168.0.0 0.0.255.255 any
!--- Permit BGP to the edge router.
access-list 110 permit tcp host 10.1.1.1 gt 1023 host 10.1.1.2 eq bgp
access-list 110 permit tcp host 10.1.1.1 eq bgp host 10.1.1.2 gt 1023
!--- Deny your space as source (as noted in RFC 2827).
access-list 110 deny ip 192.168.201.0 0.0.0.255 any
!--- Phase 2 – Explicitly permit return traffic.
!--- Allow specific ICMP types.
access-list 110 permit icmp any any echo-reply
access-list 110 permit icmp any any unreachable
access-list 110 permit icmp any any time-exceeded
access-list 110 deny icmp any any
!--- These are outgoing DNS queries.
access-list 110 permit udp any eq domain host 192.168.201.104 gt 1023
!--- Permit older DNS queries and replies to primary DNS server.
access-list 110 permit udp any eq domain host 192.168.201.104 eq domain
!--- Permit legitimate business traffic.
access-list 110 permit tcp any 192.168.201.0 0.0.0.255 established
access-list 110 permit udp any range 1 1023 192.168.201.0 0.0.0.255 gt 1023
!--- Allow FTP data connections.
access-list 110 permit tcp any eq ftp-data 192.168.201.0 0.0.0.255 gt 1023
!--- Allow TFTP data and multimedia connections.
access-list 110 permit udp any gt 1023 192.168.201.0 0.0.0.255 gt 1023
!--- Phase 3 – Explicitly permit externally sourced traffic.
!--- These are incoming DNS queries.
access-list 110 permit udp any gt 1023 host 192.168.201.104 eq domain
!--- Zone transfer DNS queries to primary DNS server.
access-list 110 permit tcp host 172.16.201.50 gt 1023 host 192.168.201.104 eq domain
!--- Permit older DNS zone transfers.
access-list 110 permit tcp host 172.16.201.50 eq domain host 192.168.201.104 eq domain
!--- Deny all other DNS traffic.
access-list 110 deny udp any any eq domain
access-list 110 deny tcp any any eq domain
!--- Allow IPSec VPN traffic.
access-list 110 permit udp any host 192.168.201.100 eq isakmp
access-list 110 permit udp any host 192.168.201.100 eq non500-isakmp
access-list 110 permit esp any host 192.168.201.100
access-list 110 permit ahp any host 192.168.201.100
access-list 110 deny ip any host 192.168.201.100
!--- These are Internet-sourced connections to
!--- publicly accessible servers.
access-list 110 permit tcp any host 192.168.201.101 eq www
access-list 110 permit tcp any host 192.168.201.101 eq 443
access-list 110 permit tcp any host 192.168.201.102 eq ftp
!--- Data connections to the FTP server are allowed
!--- by the permit established ACE in Phase 3.
!--- Allow PASV data connections to the FTP server.
access-list 110 permit tcp any gt 1023 host 192.168.201.102 gt 1023
access-list 110 permit tcp any host 192.168.201.103 eq smtp
!--- Phase 4 – Add explicit deny statement.
access-list 110 deny ip any any
Edge-router(config)#interface serial 2/0
Edge-router(config-if)#ip access-group 110 in
相關資訊