Cisco ACL

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Автор: Наташа Самойленко

Содержание

[править] Стандартные и расширенные ACL

Именованные ACL могут быть стандартные и расширенные. У них немного отличается синтаксис с нумерованными:

ip access-list <extended|standard> name
   <permit|deny> <tcp|udp> source source-wildcard [operator [port]] destination destination-wildcard [operator [port]] [log]


В конце любого ACL есть невидимое правило deny ip any any.

[править] Стандартные ACL

Стандартный ACL позволяет указывать только IP-адрес отправителя:

router(conf)# access-list <1-99> <permit | deny | remark>  source [source-wildcard]

Применение ACL на интерфейсе:

router(conf-if)# ip access-group <1-99> <in | out>


[править] Пример настройки стандартного ACL

Standard.jpg

Пример стандартного нумерованного ACL, который запрещает хосту 10.0.3.2 доступ в сегмент сервера, но разрешает всем остальным:

R1(conf)# access-list 1 deny 10.0.3.2
R1(conf)# access-list 1 permit any

Применение ACL на интерфейсе (если применить ACL на интерфейсе fa0/0 в направлении in, то он заблокирует и доступ хоста 10.0.3.2 в интернет):

R1(conf)# interface fa0/1
R1(conf-if)# ip access-group 1 out

Тот же пример только с именованным ACL:

R1(conf)# ip access-list standard Test_stand
R1(config-std-nacl)# deny 10.0.3.2
R1(config-std-nacl)# permit any

Применение ACL на интерфейсе:

R1(conf)# interface fa0/1
R1(conf-if)# ip access-group Test_stand out

[править] Применение ACL к vty

К vty ACL применяется другой командой:

router(config-line)# access-class <1-99> <in | out>

Для ограничения доступа к маршрутизатору, по протоколам telnet или SSH, можно использовать стандартный ACL и применить его к vty.

Данный пример ACL разрешает подключаться к маршрутизатору только с адреса 4.4.4.4:

router(config)# access-list 10 permit 4.4.4.4
router(config)# line vty 0 4
router(config-line)# access-class 10 in

[править] Расширенные ACL

Расширенный ACL, при указании протоколов IP, ICMP и др., позволяет указывать IP-адреса отправителя и получателя:

router(conf)# access-list acl-number <permit|deny> <ip|icmp|ospf|eigrp...> source source-wildcard destination destination-wildcard 

Расширенный ACL, при указании протоколов TCP или UDP, позволяет указывать и порты отправителя и/или получателя:

router(conf)# access-list acl-number <deny|permit> <tcp|udp> source source-wildcard [operator [port]] 
destination destination-wildcard [operator [port]] [log]

[править] Пример настройки расширенного ACL

Extended.jpg

Задание для расширенного ACL:

  • запретить хосту 10.0.3.2 доступ к серверу по RDP,
  • запретить хосту 10.0.3.1 доступ по HTTP,
  • разрешить всем остальным из сети 10.0.3.0 всё,
  • запретить всем остальным хостам (хотя в конце и так есть невидимое deny ip any any, его часто дописывают в конце правил, чтобы явно видеть по срабатыванию счетчиков, что трафик заблокировал ACL):

Пример расширенного нумерованного ACL:

R1(conf)# access-list 100 deny tcp host 10.0.3.2 host 192.168.3.10 eq 3389
R1(conf)# access-list 100 deny tcp host 10.0.3.1 any eq 80
R1(conf)# access-list 100 permit ip 10.0.3.0 0.0.0.255 any
R1(conf)# access-list 100 deny ip any any

Применение ACL на интерфейсе:

R1(conf)# interface fa0/0
R1(conf-if)# ip access-group 100 in


Расширенный именованный ACL:

R1(conf)# ip access-list extended Test_extend
R1(config-ext-nacl)# deny tcp host 10.0.3.2 host 192.168.3.10 eq 3389
R1(config-ext-nacl)# deny tcp host 10.0.3.1 any eq 80
R1(config-ext-nacl)# permit ip 10.0.3.0 0.0.0.255 any
R1(config-ext-nacl)# deny ip any any

Применение ACL на интерфейсе:

R1(conf)# interface fa0/0
R1(conf-if)# ip access-group Test_extend in

[править] Команды просмотра

Команды просмотра:

sh access-list

[править] Другие виды ACL

[править] Динамические ACL

[править] Пример настройки динамических ACL

Схема сети:

DMVPN xentaur.png

Создание обычного ACL (в нём разрешён telnet для того чтобы пользователи могли пройти аутентификацию):

dyn1(config)# access-list 101 permit tcp any host 192.168.2.1 eq telnet
dyn1(config)# access-list 101 permit ospf any any
dyn1(config)# access-list 101 permit tcp any any established

Создание динамического ACL:

dyn1(config)# access-list 101 dynamic DYN permit icmp any host 192.168.1.7

Note-icon.gif

Если необходимо чтобы параметр any при применении ACL был заменен на IP-адрес инициатора telnet-соединения, то в команде access-enable host необходимо указать параметр host.

Дополнительно можно настроить временной интервал, после которого динамическая запись будет удалена независимо от активности пользователя:

dyn1(config)# access-list 101 dynamic DYN permit icmp any host 192.168.1.7

Применение ACL на интерфейсе:

dyn1(config)# interface FastEthernet1/0
dyn1(config)# ip access-group 101 in

Настройка доступа telnet:

dyn1(config)# line vty 0 15
dyn1(config-line)# login local

Команда access-enable host активирует динамический ACL:

dyn1(config)# line vty 0 15
dyn1(config-line)# autocommand access-enable host timeout 3

Параметры команды:

  • host -- указывает, что запись будет создана для хостов, которые инициировали сессию telnet,
  • timeout -- настройка периода времени после которого, в случае не использования динамической записи, запись будет удалена.

Создание пользователей:

dyn1(config)# username u3 password u3
dyn1(config)# username u4 password u4

[править] Проверка работы

Проверка связи до активирования динамического ACL:

dyn3# ping 192.168.1.7

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.7, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
dyn3# ping 192.168.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

Просмотр информации на dyn1 до активирования динамического ACL:

dyn1#sh access-lists 
Extended IP access list 101
    10 permit tcp any host 192.168.2.1 eq telnet
    20 permit ospf any any (2 matches)
    30 permit tcp any any established
    40 Dynamic DYN permit icmp any host 192.168.1.7

Активирование ACL:

dyn3#telnet 192.168.2.1
Trying 192.168.2.1 ... Open


User Access Verification

Username: u3
Password: 
[Connection to 192.168.2.1 closed by foreign host]

После активирования динамического ACL (qua7 пингуется, а интерфейс dyn1 по-прежнему нет):

dyn3# ping 192.168.1.7  

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.7, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 96/183/220 ms
dyn3# ping 192.168.2.1  

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
dyn3#

Просмотр информации на dyn1 после активирования динамического ACL:

dyn1#sh access-lists 
Extended IP access list 101
    10 permit tcp any host 192.168.2.1 eq telnet (48 matches)
    20 permit ospf any any (8 matches)
    30 permit tcp any any established
    40 Dynamic DYN permit icmp any host 192.168.1.7
       permit icmp host 192.168.3.3 host 192.168.1.7

Если команда access-enable указана без параметра timeout, то запись будет оставаться постоянно. Удалить её можно с помощью команды clear ip access-template. Например, очистить запись в динамическом ACL:

dyn1# clear ip access-template 101 DYN host 192.168.3.3 host 192.168.1.7

[править] Пример конфигурации маршрутизатора

hostname dyn1
!
username u3 password 0 u3
username u4 password 0 u4
!
!
interface FastEthernet1/0
 ip address 192.168.2.1 255.255.255.0
 ip access-group 101 in
!
router ospf 1
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0
!
access-list 101 permit tcp any host 192.168.2.1 eq telnet
access-list 101 permit ospf any any
access-list 101 permit tcp any any established
access-list 101 dynamic DYN permit icmp any host 192.168.1.7
!
!
line vty 0 4
 login local
 autocommand  access-enable host timeout 3
line vty 5 15
 login local
 autocommand  access-enable host timeout 3
!

[править] Reflexive ACL

Reflexive ACl могут быть настроены только с расширенными именованными ACL. Сами RACL не применяются к интерфейсу, они применяются к ACL.

[1]

[править] Настройка RACL

Схема сети такая же как и для динамических ACL.

Создание ACL для исходящего трафика:

dyn1(config)# ip access-list extended outlist
dyn1(config-ext-nacl)# permit tcp any any eq telnet reflect REF
dyn1(config-ext-nacl)# permit tcp any any eq 22 reflect REF
dyn1(config-ext-nacl)# permit icmp host 192.168.1.7 host 192.168.3.3 reflect REF
dyn1(config-ext-nacl)# permit ospf any any

Создание ACL для входящего трафика:

dyn1(config)# ip access-list extended inlist
dyn1(config-ext-nacl)# permit ospf any any
dyn1(config-ext-nacl)# evaluate REF 

Применение ACL:

dyn1(config)# interface FastEthernet1/0
dyn1(config-if)# ip access-group inlist in
dyn1(config-if)# ip access-group outlist out
[править] Настройка таймеров

Значение глобального таймера по умолчанию 300 секунд:

dyn1#sh access-lists REF
Reflexive IP access list REF
     permit tcp host 192.168.3.3 eq telnet host 192.168.1.7 eq 4749 (41 matches) (time left 299)
     permit icmp host 192.168.3.3 host 192.168.1.7  (7 matches) (time left 296)

Изменение значения глобального таймера:

dyn1(config)# ip reflexive-list timeout 120 

Можно для каждой записи указать своё значение таймера, например:

dyn1(config)# ip access-list extended outlist
dyn1(config-ext-nacl)# permit tcp any any eq telnet reflect REF timeout 60
dyn1(config-ext-nacl)# permit tcp any any eq 22 reflect REF timeout 120
dyn1(config-ext-nacl)# permit icmp host 192.168.1.7 host 192.168.3.3 reflect REF timeout 10
dyn1(config-ext-nacl)# permit ospf any any

Просмотр настроек:

dyn1# sh access-lists 
Reflexive IP access list REF
     permit tcp host 192.168.3.3 eq telnet host 192.168.1.7 eq 1807 (37 matches) (time left 59)
     permit icmp host 192.168.3.3 host 192.168.1.7  (8 matches) (time left 7)
Extended IP access list inlist
    10 permit ospf any any (345 matches)
    20 evaluate REF
Extended IP access list outlist
    10 permit tcp any any eq telnet reflect REF (15 matches)
    20 permit tcp any any eq 22 reflect REF
    30 permit icmp host 192.168.1.7 host 192.168.3.3 reflect REF (4 matches)
    40 permit ospf any any

Note-icon.gif

Если настроены и глобальный и специфический таймер для записи, то приоритет у более специфического таймера.

[править] Пример конфигурации

!
interface FastEthernet1/0
 ip address 192.168.2.1 255.255.255.0
 ip access-group inlist in
 ip access-group outlist out
!
ip access-list extended inlist
 permit ospf any any
 evaluate REF 
ip access-list extended outlist
 permit tcp any any eq telnet reflect REF
 permit tcp any any eq 22 reflect REF
 permit icmp host 192.168.1.7 host 192.168.3.3 reflect REF
 permit ospf any any
!

[править] Временные интервалы для ACL

Применение временных интервалов к правилам ACL может быть полезно, например, в таких случаях:

  • правилами компании разрешается различный тип доступа в зависимости от времени рабочего дня,
  • необходимо создать временное правило

Первый вариант может быть, например, когда в компании запрещен доступ к определенным ресурсам в рабочее время, но разрешен час до начала рабочего времени, и час после окончания рабочего времени.

Второй вариант может возникнуть, например, когда в компании периодически необходимо предоставлять сотрудникам временный доступ к ресурсам. Например, в компании неделю работает подрядчик и ему нужен доступ к каким-то из серверов компании. Если создать правило сразу с временным интервалом, то оно перестанет работать (станет неактивным) в строго определенное время и можно не бояться забыть его удалить. К сожалению, ACL со временем, как правило, сильно разрастаются и в них остаются "мертвые" правила. Такой подход с временными интервалами хотя бы немного позволит упростить поддержание ACL в актуальном виде.

[править] Настройка параметров временного интервала

Пример настройки временного интервала для рабочих дней:

dyn1(config)# time-range dyn1_1 
dyn1(config-time-range)# periodic weekdays 8:00 to 17:00
dyn1(config-time-range)# absolute start 8:00 1 Oct 2009 end 17:00 30 Oct 2009 

Пример настройки временного интервала для выходных дней:

dyn1(config)# time-range dyn1_2
dyn1(config-time-range)# periodic weekend 00:00 to 23:59
dyn1(config-time-range)# absolute start 8:00 1 Oct 2009 end 17:00 30 Oct 2009

Просмотр информации о настроенных временных интервалах (второй интервал неактивен, так как сейчас рабочий день):

dyn1#sh time-range 
time-range entry: dyn1_1 (active)
   absolute start 08:00 01 October 2009 end 17:00 30 October 2009
   periodic weekdays 8:00 to 17:00
   used in: IP ACL entry
time-range entry: dyn1_2 (inactive)
   absolute start 08:00 01 October 2009 end 17:00 30 October 2009
   periodic weekend 0:00 to 23:59
   used in: IP ACL entry
dyn1#
dyn1# sh clock
*14:27:18.951 UTC Wed Oct 7 2009

[править] Применение временного интервала к ACL

Применение временных интервалов к ACL:

dyn1(config)# ip access-list extended Time
dyn1(config-ext-nacl)# permit icmp any any time-range dyn1_2
dyn1(config-ext-nacl)# permit tcp any any eq 80 time-range dyn1_1
dyn1#sh access-lists
Extended IP access list Time
    10 permit icmp any any time-range dyn1_2 (inactive)
    20 permit tcp any any eq www time-range dyn1_1 (active)

[править] ACL и log

[2]

[править] Перенумерация правил ACL

router(conf)# ip access-list resequence <access-list-name> <starting-sequence-number> <increment>

[править] Object-group

object-group network LOCAL_net 
 description LOCAL networks
 10.0.1.0 /24
 10.0.10.0 /24


object-group network REMOTE_OUT
 description remote sites outside networks
 192.168.6.0 /24
 192.168.7.0 /24
 192.168.8.0 /24
 192.168.9.0 /24


ip access-list extended IN_to_remote_OUT 
 permit ip object-group LOCAL_net object-group REMOTE_OUT
dyn1#sh object-group 
Network object group LOCAL_net
 Description LOCAL networks
 10.0.1.0 255.255.255.0
 10.0.10.0 255.255.255.0

Network object group REMOTE_OUT
 Description remote sites outside networks
 192.168.6.0 255.255.255.0
 192.168.7.0 255.255.255.0
 192.168.8.0 255.255.255.0
 192.168.9.0 255.255.255.0


Источник — «http://xgu.ru/wiki/Cisco_ACL»