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. Соответствие названия протокола и его номера приведено в Таблица 8 .

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

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

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

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

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

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

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

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

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

Замечание 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 (см. Замечание 1)

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

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

Замечание 4:                  Для указания 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 и не может с ними сочетаться (синтаксическая ошибка).

Замечание 5:                  В пределах одной команды 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  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.

 

Отличие данной команды от подобной команды 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 данный список вообще не показывается.

 

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

Таблица 8

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

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

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

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 

Таблица 9

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

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

Номер порта

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

Таблица 10

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

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

Номер порта

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

 

Пример

Приведенный ниже пример демонстрирует добавление в расширенный список доступа с именем "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