Команда 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