Cisco Context Based Access Control (методическое пособие)
Содержание
Эволюция
ACL = packet filter
- работает на tcam, статичен
ACL tcp established
- очень простой псевдоним для фильтра по tcp-флагам, соответствующим established-соединению
Reflexive ACL
- записи отраженные в reflexive генерируются на CPU
- динамичен, но ничего не знает про сложные протоколы
- записи отражают sip, dip, sport, dport
CBAC (Cisco IOS® Firewall Feature Set)
- анализ известных протоколов, фильтрация содержимого по сложным правилам
- записи отражают текущее состояние соединения (statefull)
- динамически открывает порты, необходимые для работы сложных протоколов
- работает на CPU
Statefull фильтрация будет ломаться на ассиметричных потоках трафика. Требуется специальный функционал для синхронизации состояний.
В некоторых протоколах есть уловки для использования простых пакет-фильтров, например FTP PASV.
CBAC is a context-based firewall that performs the following:
Inspects traffic in one direction for network, transport, and application layer information
Extracts relevant port information
Dynamically creates access list entries for return traffic
Closes ports at the end of a connection
CBAC also forces protocol conformance for some protocols, has a limited vulnerability signature detection mechanism, and extensive denial-of-service (DOS) prevention mechanisms. However, many of these features are CPU intensive, thereby, adversely affecting the performance of the router. The router is also affected during times of heavy traffic due to the processing of the base engine itself. With this feature, the performance of the router running CBAC is no longer subdued.
стартовый конфиг
ip dhcp pool LAN
network 10.111.0.0 255.255.255.0
default-router 10.111.0.1
dns-server 212.192.64.2
!
no ip domain lookup
!
interface FastEthernet0/0
ip address 212.192.88.150 255.255.255.0
no shut
!
interface FastEthernet0/1
ip address 10.111.0.1 255.255.255.0
no shut
!
ip route 0.0.0.0 0.0.0.0 212.192.88.1
настроить роутинг
Сканируем NMAP снаружи внутрь, изнутри наружу - видно всё
добавить ACL
ip access-list extended to-inet
permit icmp any any
permit tcp any any eq www
permit udp any any eq domain
permit tcp any any eq 3389
ip access-list extended to-lan
permit icmp any any
permit tcp any eq www any
permit udp any eq domain any
permit tcp any eq 3389 any
nmap -sS -sU -T4 -A -v 10.111.0.2 Не видно ничего
Добавить порт источника, якобы 80, или 53 для udp nmap -sS -sU -T4 -A -v -g 80 10.111.0.2 Видно всё
Настроить рефлексив ACL, для всего TCP
ip access-list extended to-inet
permit icmp any any reflect fw
permit tcp any any reflect fw
permit udp any any eq domain reflect fw
permit tcp any any eq 443 reflect fw
ip access-list extended to-lan
evaluate fw
Router#sh access-list
Reflexive IP access list fw
permit udp host 212.192.64.2 eq domain host 10.111.0.2 eq 25114 (2 matches) (time left 248)
permit udp host 212.192.64.2 eq domain host 10.111.0.2 eq 16030 (2 matches) (time left 248)
permit tcp host 212.192.64.74 eq 3389 host 10.111.0.2 eq 17797 (5335 matches) (time left 299)
permit udp host 212.192.64.2 eq domain host 10.111.0.2 eq 27506 (2 matches) (time left 191)
permit icmp host 212.192.64.74 host 10.111.0.2 (369 matches) (time left 299)
Extended IP access list to-inet
10 permit icmp any any reflect fw (246 matches)
20 permit tcp any any reflect fw
40 permit udp any any eq domain reflect fw (9 matches)
Extended IP access list to-lan
10 evaluate fw
nmap -sS -T4 -A -v -Pn 10.111.0.2
Не видно ничего
Сканируем изнутри наружу nmap -p 1-65535 -T5 -A -v -Pn 212.192.64.74
Наблюдаем как пухнет таблица list fw и CPU load
Router#sh proc cpu history
Router 08:48:08 AM Wednesday Mar 25 2015 UTC
88777777777766666666668888877777
9999999444443333333333888888888844444
100
90 ** *****
80 ******* **********
70 ************ **********
60 ********************************
50 ********************************
40 ********************************
30 ********************************
20 ********************************
10 ********************************
0....5....1....1....2....2....3....3....4....4....5....5....6
0 5 0 5 0 5 0 5 0 5 0
CPU% per second (last 60 seconds)
Router#sh proc cpu sorted 5sec
CPU utilization for five seconds: 89%/33%; one minute: 55%; five minutes: 25%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
55 83756 13989 5987 45.14% 27.32% 12.67% 0 IP Input
164 23692 4795 4940 9.68% 5.97% 2.66% 0 IP RACL Ager
Включить CBAC
ip inspect name CBAC icmp
ip inspect name CBAC http
ip inspect name CBAC tcp
ip inspect name CBAC udp ! DNS DNS DNS
!
interface FastEthernet0/0
ip access-group FROM-INET in
!
interface FastEthernet0/1
ip access-group TO-INET in
ip inspect CBAC in
!
ip access-list extended FROM-INET
deny ip any any
ip access-list extended TO-INET
permit ip 10.111.0.0 0.0.0.255 any
deny ip any any
!
nmap -sS -T4 -A -v -Pn 10.111.0.2
Не видно ничего
Сканируем изнутри наружу nmap -p 1-65535 -T5 -A -v -Pn 212.192.64.74 Видно всё Наблюдаем как растет CPU load, а таблица сессий не растет от полуоткрытых )))
Established Sessions
Session 635A2A30 (10.111.0.2:18534)=>(212.192.64.197:80) http SIS_OPEN
Session 635A3930 (10.111.0.2:18530)=>(212.192.64.197:80) http SIS_OPEN
Session 635A3E30 (10.111.0.2:8)=>(212.192.64.74:0) icmp SIS_OPEN
Session 635A22B0 (10.111.0.2:18526)=>(10.10.64.2:5060) tcp SIS_OPEN
Session 635A3BB0 (10.111.0.2:18457)=>(212.192.64.74:3389) tcp SIS_OPEN
Session 635A1DB0 (10.111.0.2:18525)=>(10.10.64.2:6970) tcp SIS_OPEN
Router#sh proc cpu sorted 5sec
CPU utilization for five seconds: 89%/35%; one minute: 86%; five minutes: 37%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
55 211088 21616 9765 48.01% 23.51% 9.41% 0 IP Input
109 16140 3229 4998 3.92% 1.91% 0.76% 0 Inspect Timer
Ограничиваем количество полуоткрытых соединений на хост назначения
ip inspect tcp max-incomplete host 100 block-time 1 ! на хост
no ip inspect alert-off ! смотреть ограничивалку сканирований
ip inspect tcp block-non-session ! ???
Сканируем изнутри наружу nmap -p 1-65535 -T5 -A -v -Pn 212.192.64.74 Ничего не видно - срабатывает ограничение на халф-опен
.Cisco IOS Software, 1841 Software (C1841-ADVIPSERVICESK9-M), Version 12.4(25g)