permit (extended)

Команда  permit (extended) используется для редактирования расширенных списков доступа.

Эта команда разрешает трафик, соответствующий условиям, заданным в команде.

Для отмены разрешающей записи в расширенном списке доступа используется та же команда с префиксом no.

Синтаксис

permit protocol source source-wildcard [operator port [port]] destination destination-wildcard [operator port [port]] [established] flag-name | {match-any | match-all} {+ | -}flag-name] [log | log-input] [time-range time-range-name] 

no permit protocol source source-wildcard [operator port [port]] destination destination-wildcard [operator port [port]] [established] flag-name |{match-any | match-all} {+ | -}flag-name] [log | log-input] [time-range time-range-name]

Protocol

Протокол. Задается в виде номера протокола. Протоколы IP, TCP, UDP, AH, ESP, ICMP, EIGRP, GRE, IGMP, IPINIP, NOS,OSPF,PCP,PIM могут быть заданы аббревиатурой ip, tcp, udp, ahp, esp, icmp, eigrp, gre, igmp, ipinip, nos, ospf, pcp, pim. Соответствие названия протокола и его номера приведено в Таблица 11.

Примечание 1

Вместо описания протокола можно написать ссылку на группу сервисов (object-group name, где name - имя группы сервисов).

Если группа с таким именем не существует, будет выдано сообщение об ошибке:

Object group <name> is not configured

Если имя принадлежит группе объектов сети, а не группе сервисов, будет выдано сообщение об ошибке:

Object group type mismatch

Source

Этот параметр описывает отправителя пакета.

Возможны три варианта описания:

      явное указание IP-адреса в формате четырех десятичных значений, разделенных точками;

      использование ключевого слова any, обозначающего пару значений 0.0.0.0 255.255.255.255 для параметров source и source-wildcard;

      использование ключевого слова host перед значением source, что предполагает значение 0.0.0.0 для параметра source-wildcard.

source-wildcard

инвертированная маска подсети отправителя (получателя) пакета. Описан в разделе "Permit (standard)". Используется в списках доступа для того, чтобы определить: соответствует ли IP-адрес в заголовке пакета IP-адресу в записях списка доступа.

Operator

Описывает условие сравнения, применяемое к портам источника и получателя.

Используются операторы eq (equal, равно) и range (диапазон). Иные операторы не допускаются. Необязательный параметр.

port

Только для протоколов TCP или UDP  можно указывать порт или диапазон портов. Целое число из диапазона от 0 до 65535. Используется только в связке с параметром operator. При использовании operator=range после него следуют два числа (лежащих в диапазоне от 0 до 65535), определяющие границы диапазона портов. Перечисление портов не допускается. Необязательный параметр. Поддерживаемые имена портов протоколов TCP и UDP приведены в Таблица 12 и Таблица 13.

Примечание 2

Если задать два одинаковых порта, например, permit udp any range non500-isakmp 4500 any, то это будет эквивалентно оператору eq.

Примечание 3

Если задать сначала порт с большим номером, то порты в диапазоне автоматически поменяются местами.

Destination

Этот параметр описывает получателя пакета.

Возможны три варианта описания:

      явное указание IP-адреса в формате четырех десятичных значений, разделенных точками;

      использование ключевого слова any, обозначающего пару значений 0.0.0.0 255.255.255.255 для параметров destination и destination-wildcard. При указании any будут создаваться «широкие» SA (по всему адресному пространству). Это отличается от поведения шлюзов предыдущих версий.

      использование ключевого слова each. При указании each будут создаваться «узкие» SA. В предыдущих версиях продукта такое поведение было при указании any в качестве приемника. Имеет специальный смысл только для списков доступа, связанных с записью криптокарты (команда match address). При использовании для других целей (фильтрация, классификация) идентично any. Допустимо прописывать только в качестве адреса приемника. Значение, специфичное для cs_console. В Cisco IOS отсутствует. См. также Примечание 4.

      использование ключевого слова host перед значением destination, что предполагает значение 0.0.0.0 для параметра destination-wildcard.

Примечание 4

Использование значения each в IPsec фильтрах может привести к созданию большого количества SA. Отдельный SA будет строиться для трафика до каждого хоста сети.

destination-wildcard

инвертированная маска подсети получателя пакета. Аналогичен source- wildcard, который описан в разделе "Permit (standard)".

Примечание 5

Вместо описания адреса источника и/или приемника можно написать ссылку на группу объектов сети (object-group name, где name - имя группы объектов сети).

Если группа с таким именем не существует, будет выдано сообщение об ошибке:

Object group <name> is not configured

Если имя принадлежит группе сервисов, а не группе объектов сети, то будет выдано сообщение об ошибке:

Object group type mismatch

Примечание 6

Для указания TCP-флагов используется старый или новый формат.

 

Старый формат используется в нумерованных и именованных расширенных списках доступа, и представляет собой комбинацию ключевого слова established и перечисления TCP-флагов - flag-name.


Новый формат используется только в именованных расширенных списках доступа, и представляет собой комбинацию ключевого слова match-any|match-all и перечисления TCP-флагов - {+|-}flag-name.

Established

Только для протокола TCP. Состояние соединения. Выделяются только установленные TCP-соединения и по ним могут передаваться данные.

flag-name

Имена TCP-флагов - fin, syn, rst, psh, ack, urg. Порядок флагов при вводе не важен. Перечисление флагов работает как «ИЛИ» (аналог match-any в новом формате). Ключевое слово established эквивалентно флагам rst ack и не может с ними сочетаться (синтаксическая ошибка).

Примечание 7

В пределах одной команды permit/deny старый формат указания TCP-флагов не может сочетаться с новым.

match-any|match-all

Только для протокола TCP и именованных списков доступа. Указывает условие сравнения TCP-флагов в пакете и правиле.

Ключевое слово match-any означает, что должно выполняться одно из указанных далее условий по TCP-флагам. Ключевое слово match-all означает, что должны выполняться все заданные условия по TCP-флагам.

Если попытаться использовать эти ключевые слова для нумерованного списка доступа, то будет выдано сообщение об ошибке:

%match-all/match-any are allowed on named ACLs only

{+|-}flag-name

Имена TCP-флагов - fin, syn, rst, psh, ack, urg. Префикс “+” перед флагом означает, что этот флаг должен быть выставлен в заголовке пакета, а префикс “-“ означает, что этот флаг не должен быть выставлен в заголовке пакета. Порядок флагов при вводе не важен.

log|log-input 

      Флаг log или log-input задает ведение журнала. Оба флага задают одну и ту же функциональность (отличие от Cisco IOS).

      В Syslog выдаются сообщения о пакетах, удовлетворяющих условиям данного списка доступа. В сообщении указан номер списка доступа, разрешено или запрещено прохождение пакета, адрес отправителя и количество пакетов.

      Сообщение формируется для первого совпавшего пакета, а затем с периодичностью в 5 минут выдается сообщение о количестве пропущенных или запрещенных пакетов за этот интервал времени.

      Флаги логирования могут смешиваться с другими флагами, например, с TCP-флагами. Два флага логирования log и log-input не могут применяться вместе в одной команде permit/deny.

time-range time-range-name

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

      Ссылка на расписание может смешиваться с другими дополнительными параметрами, например, с TCP-флагами.

      Допускается ссылка на расписание, отсутствующее в конфигурации на момент ввода команды. Однако на момент конвертирования расписание должно существовать, в противном случае конвертирование будет прервано с сообщением об ошибке.

Режимы команды

config-ext-nacl (режим редактирования расширенных списков доступа)

Рекомендации по

использованию

Используйте эту команду после входа в режим редактирования расширенного списка доступа для задания условий доступа, разрешающих трафик.

Нумерация записей в списке

•      Перед командой permit или deny допускается вводить порядковый номер записи в списке, который можно использовать для упрощения редактирования записей, например,

ip access-list extended acl2

 10 permit udp any any

 20 permit tcp any any

 30 deny udp host 10.1.1.1 eq snmp any

      В режиме редактирования списка доступа запись с указанным номером будет вставлена на нужную позицию, например,

15 permit udp 10.1.1.1 0.0.255.255 host 10.2.2.2

      Если запись с таким номером существует, то будет выдано сообщение об ошибке:

% Duplicate sequence number

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

% Exceeded maximum sequence number

      При выходе из консоли нумерация записей теряется. При следующем старте консоли записи располагаются в порядке возрастания номеров в режиме по умолчанию.

Просмотр по

команде show

running-config

По команде show running-config нумерованные списки доступа показываются в виде последовательности команд access-list  за одним исключением:

     если после редактирования нумерованного списка доступа он становится пустым (в нем нет записей вида permit или deny (no permit, no deny), то он будет показан в виде:

ip access-list {standard|extended} name

По команде show running-config выводится конфигурация, в которой слово host может отсутствовать.

 

Так как по команде show running-config ранее введенные номера записей в списке не показываются, то при редактировании, чтобы внести запись на нужную позицию, можно еще раз упорядочить записи в списке с заданным начальным номером и приращением. Для этого используется команда: ip access-list resequence. Посмотреть номера записей в списке можно командой show access-lists.

По команде show running-config флаги fin, syn, rst, psh, ack, urg будут указаны в этом порядке. А сочетание флагов «rst ack» в команде будет заменено на established при выводе.

Флаги логирования log, log-input показываются после TCP-флагов, а расписание (time-range) - после флагов логирования.

Удаление

Удаление записи в списке доступа осуществляется:

      командой no <полная запись>, например:
no permit tcp host 10.1.1.1 eq telnet any

      или по номеру записи, например, no 15.

Если попытаться удалить несуществующую запись, выдается сообщение об ошибке:

% Entry not found

Отличие данной

команды от

подобной команды

Cisco IOS

      В инвертированной маске подсети source-wildcard  и destination-wildcard  должна быть непрерывная линейка из установленных битов в конце, не допускается чередование 0 и 1.

      Отсутствует возможность задавать отдельные ICMP-type и ICMP-code, только ICMP протокол целиком.

      Не допускается использование hostname в качестве source и destination.

      Не допускаются операторы кроме eq и range.

      Пустой нумерованный список по команде show running-config  показывается в виде ip access-list name. В Cisco IOS данный список вообще не показывается.

Пример

Приведенный ниже пример демонстрирует добавление в расширенный список доступа с именем "a101" записи, разрешающей трафик между хостами 10.10.1.101 и 10.11.1.101 по протоколу udp:

Router(config)#ip access-list extended a101

Router(config-ext-nacl)#permit udp host 10.10.1.101 host 10.11.1.101

Router(config-ext-nacl)#exit

      Примеры указания TCP-флагов в старом формате:

permit tcp any any established

permit tcp host 10.10.1.101 host 10.11.1.101 established syn urg

deny tcp any any psh

      Примеры указания TCP-флагов в новом формате:

permit tcp any any match-any +rst +ack

permit tcp host 10.10.1.101 host 10.11.1.101 match-all +syn -fin

permit tcp any any match-any -psh +urg

 

Имя и номер протокола

Таблица 11

Имя протокола

Описание протокола

Номер протокола

ip

Any Internet Protocol

 

tcp

Transmission Control Protocol

6

udp

User Datagram Protocol

17

ahp

Authentication Header Protocol

51

icmp

Internet Control Message Protocol

1

esp

Encapsulation Security Payload

50

eigrp

Cisco's EIGRP routing protocol

88

gre

Cisco's GRE tunneling

47

igmp

Internet Gateway Message Protocol

2

ipinip

IP in IP tunneling

4

nos

KA9Q NOS compatible IP over IP tunneling

94

ospf

OSPF routing protocol

89

pcp

Payload Compression Protocol

108

pim

Protocol Independent Multicast

103

 

Поддерживаемые имена портов протокола TCP

Таблица 12

Имя протокола

Описание протокола

Номер порта

bgp

Border Gateway Protocol

179

chargen

Character generator

19

cmd

Remote commands (rcmd)

514

daytime

Daytime

13

discard

Discard

9

domain

Domain Name Service

53

drip

Dynamic Routing Information Protocol

3949

echo

Echo

7

exec

Exec (rsh)

512

finger

Finger

79

ftp

File Transfer Protocol

21

ftp-data

FTP data connections

20

gopher

Gopher

70

hostname

NIC hostname server

101

ident

Ident Protocol

113

irc

Internet Relay Chat

194

klogin

Kerberos login

543

kshell

Kerberos shell

544

login

Login (rlogin)

513

lpd

Printer service

515

nntp

Network News Transport Protocol

119

pim-auto-rp

PIM Auto-RP

496

pop2

Post Office Protocol v2

109

pop3

Post Office Protocol v3

110

smtp

Simple Mail Transport Protocol

25

sunrpc

Sun Remote Procedure Call

111

syslog

Syslog 

Примечание: по команде show running-config заменяется на cmd  (аналогично Cisco).

514

tacacs

tacacs-ds

TAC Access Control System 

Примечание: вторая запись эквивалентна первой, но не показывается в подсказке (аналогично Cisco).

49

talk

Talk

517

telnet

Telnet

23

time

Time

37

uucp

Unix-to-Unix Copy Program

540

whois

Nicname

43

www

World Wide Web (HTTP)

80

 

Поддерживаемые имена портов протокола UDP

Таблица 13

Имя протокола

Описание протокола

Номер порта

biff

Biff (mail notification, comsat)

512

bootpc

Bootstrap Protocol (BOOTP) client

68

bootps

Bootstrap Protocol (BOOTP) server

67

discard

Discard

9

dnsix

DNSIX security protocol auditing

195

domain

Domain Name Service (DNS)

53

echo

Echo

7

isakmp

Internet Security Association and Key Management Protocol

500

mobile-ip

Mobile IP registration

434

nameserver

IEN116 name service (obsolete)

42

netbios-dgm

NetBios datagram service

138

netbios-ns

NetBios name service

137

netbios-ss

NetBios session service

139

non500-isakmp

Internet Security Association and Key Management Protocol

4500

ntp

Network Time Protocol

123

pim-auto-rp

PIM Auto-RP

496

rip

Routing Information Protocol (router, in.routed)

520

snmp

Simple Network Management Protocol

161

snmptrap

SNMP Traps

162

sunrpc

Sun Remote Procedure Call

111

syslog

Syslog

514

tacacs

tacacs-ds

TAC Access Control System 

Примечание: вторая запись эквивалентна первой, но не показывается в подсказке (аналогично Cisco).

49

talk

Talk

517

tftp

Trivial File Transfer Protocol

69

time

Time

37

who

Who service (rwho)

513

xdmcp

X Display Manager Control Protocol

177