Листы контроля доступа (ACL) позволяют выборочно ограничивать или разрешать потоки трафика, фильтровать протоколы маршрутизации, перенаправлять трафик в соответствии с правилом (PBR) и .тд
ACL представляет из себя список правил и обрабатывается сверху вниз до первого совпадения. Если одно из условий совпало, лист дальше не обрабатывается. Исходя из этого более специфичные правила записывать выше (на конкретный хост или порт), более общие ниже (на сетевой адрес). Так же есть смысл наиболее часто срабатывающие правила помещать ближе к началу листа. В конце листа присутствует негласное правило "запретить все" (deny any, deny all), поэтому если совпадений в списке не нашлось то трафик будет заблочен последним правилом.
Правило трех П:
- один лист на протокол (per protocol) - для каждого протокола используется свой acl: ip, ipx, apple talk
- один лист на порт (per port)
- один лист на направление (per direction) - один лист на входящий трафик (in) один лист на исходящий трафик (out)
Ключи ACL:
- permit - разрешить
- deny - запретить
- remark - комментарий, ремарка
- established - используется для tcp, позволяет разрешить ответные соединения на указанное правило
- host - используется при указании конкретного узла (вместо маски 0.0.0.0)
- any - указывает на любой адрес (вместо маски 255.255.255.255)
- eq, noeq - равно, неравно (при указании порта)
- lt, gt - меньше больше (при указании порта)
- range - диапазон (при указании порта)
- wildcard mask - маска в которой бит 0 должен проверятся, бит - 1 игнорироваться.
- log - включает логирование срабатываний листа
Стандартные нумерованные листы доступа:
- Используемые номера от 1 до 99 и 1300 до 1999
- access-list {n} {permit | deny | remark}{source ip}{wildcardmask}
- обрабатывает только ip адрес источника
- рекомендуется размещать ближе к назначению
Расширенные нумерованные листы доступа:
- Используемые номера от 100 до 199 и 2000 до 2699
- access-list {n} {protocol} {permit | deny | remark} {source-ip} {wd-mask} {source-port} {dest-ip} {wd-mask}{dest-port} established
- обрабатывает ip адрес источника/назначения, тип протокола, порты
- рекомендуется размещать ближе к источнику
Именованные листы доступа:
- вместо номера используется имя, что позволяет сразу понять назначение листа
- ip access-list {standart | extended} listname
- позволяют нумеровать строки, удобно при добавлении новых правил в любое место листа
- позволяют редактировать содержимое листа без пересоздания
Применение ACL на интерфейс: ip access-group n {in | out}
Применение ACL на линейный интерфейс: ip access-class n {in | out}
Комплексные листы доступа:
- Динамические (Dynamic) - позволяют динамически временно добавлять правила в лист доступа, к примеру после аутентификации пользователя на маршрутизаторе
- Рефлексивные (Reflexive) - позволяют более гибко разрешать входящий трафик в ответ на исходящие соединения (в отличие от established работают не только с tcp, но и с другими протоколами)
- Основанные на времени (TimeBased) - позволяют разрешить/запретить доступ по правилам листа только в определенный диапазон времени
Посмотреть листы доступа и количество срабатываний можно так: show access-lists {n | name}