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