В статье будет рассмотрена настройка ACL для управляющих каналов LTP-N; LTX.

Задача

Ограничить доступ по Telnet, SSH, SNMP и HTTP для всех устройств, не принадлежащих к подсети 192.168.11.0/24 во vlan управления с помощью SNMP.
Community стандартные. В качестве MGMT-vlan выступает 3470.  IP LTP 192.168.11.88. В качестве Uplink-порта используется Front-port 1.

Решение

Для ограничения подключений по всем указанным в задаче протоколам необходимо сформировать access-list IP на основе параметров vlan, Src IP, Dst port.
Чтобы сформировать access-list IP и назначить его на Uplink-интерфейсы потребуются следующие таблицы MIB : 

OIDOID в числовом формате
 oltNgNetworkAccessListTable  .1.3.6.1.4.1.35265.1.209.3.10
 oltNgNetworkAccessListIpRuleTable .1.3.6.1.4.1.35265.1.209.3.12
 oltNgNetworkAccessListInterfaceTable .1.3.6.1.4.1.35265.1.209.3.13
 oltNgSystemOperationConfigOperations .1.3.6.1.4.1.35265.1.209.2.1.100

 Выполнение

Синтаксис команды для формирования ACL в конфигурации : 

snmpset -v2c -c <rw_community> <ipaddr> oltNgNetworkAccessListRowStatus.<list_ID>.ip i 4 oltNgNetworkAccessListName.<list_ID>.ip s <name>

Данную команду необходимо выполнять одной строкой.

Синтаксис OID предполагает для формирования acces list IP вместо ip указывать "1".
"2" используется для формирования access list MAC.

Где:

OIDOID в числовом формате
 oltNgNetworkAccessListRowStatus  .1.3.6.1.4.1.35265.1.209.3.10.1.4
 oltNgNetworkAccessListName .1.3.6.1.4.1.35265.1.209.3.10.1.3

Создадим access-list с названием MGMT

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.10.1.4.1.1 i 4 .1.3.6.1.4.1.35265.1.209.3.10.1.3.1.1 s MGMT
iso.3.6.1.4.1.35265.1.209.3.10.1.4.1.1 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.10.1.3.1.1 = STRING: "MGMT"


Затем наполним созданный лист правилами. Для формирования access-list IP требуется указать все, что разрешено в рамках vlan управления и запретить все остальное.  
Общий формат команды для формирования правила согласно поставленной задаче приведен ниже.

snmpset -v2c -c <rw_community> <ipaddr> oltNgNetworkAccessListIpRuleRowStatus.<list_ID>.<rule_ID> i 4 oltNgNetworkAccessListIpRuleAction.<list_ID>.<rule_ID> i <permit/deny> oltNgNetworkAccessListIpRuleProtocol.<list_ID>.<rule_ID> u 1 oltNgNetworkAccessListIpRuleSourceIpAddress.<list_ID>.<rule_ID> a <src_ipaddr>  oltNgNetworkAccessListIpRuleSourceIpMask.<list_ID>.<rule_ID> a <ip_mask>  oltNgNetworkAccessListIpRuleVlanId.<list_ID>.<rule_ID> u <vlanID>  oltNgNetworkAccessListIpRuleDestinationPort.<list_ID>.<rule_ID> u <port

Где:

OIDOID в числовом формате
 oltNgNetworkAccessListIpRuleRowStatus  .1.3.6.1.4.1.35265.1.209.3.12.1.22
 oltNgNetworkAccessListIpRuleAction .1.3.6.1.4.1.35265.1.209.3.12.1.3
 oltNgNetworkAccessListIpRuleProtocol .1.3.6.1.4.1.35265.1.209.3.12.1.4
 oltNgNetworkAccessListIpRuleSourceIpAddress.1.3.6.1.4.1.35265.1.209.3.12.1.5
 oltNgNetworkAccessListIpRuleSourceIpMask.1.3.6.1.4.1.35265.1.209.3.12.1.6
 oltNgNetworkAccessListIpRuleVlanId .1.3.6.1.4.1.35265.1.209.3.12.1.17
 oltNgNetworkAccessListIpRuleDestinationPort.1.3.6.1.4.1.35265.1.209.3.12.1.10

Создадим разрешающие правила для каждого из протоколов управления.  

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.1 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.1 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.1 u 6  .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.1 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.1 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.1 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.1 u 80
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.1 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.1 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.1 = Gauge32: 6
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.1 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.1 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.1 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.1 = Gauge32: 80

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.2 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.2 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.2 u 17  .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.2 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.2 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.2 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.2 u 162
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.2 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.2 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.2 = Gauge32: 17
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.2 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.2 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.2 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.2 = Gauge32: 162

mark@:~$ snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.3 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.3 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.3 u 17  .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.3 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.3 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.3 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.3 u 161
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.3 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.3 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.3 = Gauge32: 17
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.3 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.3 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.3 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.3 = Gauge32: 161

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.4 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.4 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.4 u 6  .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.4 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.4 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.4 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.4 u 162
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.4 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.4 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.4 = Gauge32: 6
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.4 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.4 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.4 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.4 = Gauge32: 162

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.5 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.5 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.5 u 6  .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.5 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.5 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.5 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.5 u 161
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.5 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.5 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.5 = Gauge32: 6
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.5 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.5 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.5 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.5 = Gauge32: 161

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.6 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.6 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.6 u 6 .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.6 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.6 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.6 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.6 u 23
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.6 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.6 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.6 = Gauge32: 6
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.6 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.6 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.6 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.6 = Gauge32: 23

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.7 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.7 i 1 .1.3.6.1.4.1.35265.1.209.3.12.1.4.1.7 u 6  .1.3.6.1.4.1.35265.1.209.3.12.1.5.1.7 a 192.168.11.0  .1.3.6.1.4.1.35265.1.209.3.12.1.6.1.7 a 255.255.255.0  .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.7 u 3470 .1.3.6.1.4.1.35265.1.209.3.12.1.10.1.7 u 22
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.7 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.7 = INTEGER: 1
iso.3.6.1.4.1.35265.1.209.3.12.1.4.1.7 = Gauge32: 6
iso.3.6.1.4.1.35265.1.209.3.12.1.5.1.7 = IpAddress: 192.168.11.0
iso.3.6.1.4.1.35265.1.209.3.12.1.6.1.7 = IpAddress: 255.255.255.0
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.7 = Gauge32: 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.10.1.7 = Gauge32: 22

Так как SNMP-агент поддерживает работу как поверх TCP, так и поверх UDP, следует запретить 161 и 162 порты обоих этих протоколов транспортного уровня.

Для удаления правила из ACL предусмотрена команда snmpset -v2c -c <rw_community> <ipaddr> oltNgNetworkAccessListIpRuleRowStatus.<list_ID>.<rule_ID> i 6
Пример команды для удаления правила с 6 индексом :

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.1 i 6
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.1 = INTEGER: 6

 

Последним индексом настроим запрещающее правило.

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.12.1.22.1.8 i 4 .1.3.6.1.4.1.35265.1.209.3.12.1.3.1.8 i 2 .1.3.6.1.4.1.35265.1.209.3.12.1.17.1.8 u 3470
iso.3.6.1.4.1.35265.1.209.3.12.1.22.1.8 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.12.1.3.1.8 = INTEGER: 2
iso.3.6.1.4.1.35265.1.209.3.12.1.17.1.8 = Gauge32: 3470

При неполном перечислении параметров в команде для настройки правил access-list вместо неуказанных автоматически будет выставлен аргумент "any". 


Теперь назначим сформированный ACL на Uplink-интерфейс. Ниже приведен формат команды.
snmpset -v2c -c <rw_community> <ipaddr> oltNgNetworkAccessListInterfaceRowStatus.<port>.<list_type> i 4 oltNgNetworkAccessListInterfaceName.<port>.<list_type> s <name>

Данную команду необходимо выполнять одной строкой.

Где:

OIDOID в числовом формате
  oltNgNetworkAccessListInterfaceRowStatus .1.3.6.1.4.1.35265.1.209.3.13.1.4
 oltNgNetworkAccessListInterfaceName .1.3.6.1.4.1.35265.1.209.3.13.1.3

Назначим сформированный ACL на Uplink Front-port 1.

snmpset -v2c -c private 192.168.11.88 .1.3.6.1.4.1.35265.1.209.3.13.1.4.17.1 i 4 .1.3.6.1.4.1.35265.1.209.3.13.1.3.17.1 s MGMT
iso.3.6.1.4.1.35265.1.209.3.13.1.4.17.1 = INTEGER: 4
iso.3.6.1.4.1.35265.1.209.3.13.1.3.17.1 = STRING: "MGMT"

Для удаления ACL с интерфейса используется команда  snmpset -v2c -c <rw_community> <ipaddr> oltNgNetworkAccessListInterfaceRowStatus.<list_ID>.<port>.<list_type> i 6
Например для удаления с front-port 1 :

snmpset -v2c -c private 192.168.1.2 .1.3.6.1.4.1.35265.1.209.3.13.1.4.17.1 i 6
iso.3.6.1.4.1.35265.1.209.3.13.1.4.17.1 = INTEGER: 6

 


Осталось применить и сохранить изменения в конфигурации. Для этого используются команды следующего формата:
snmpset -v2c -c <rw_community> -t 20 <ipaddr> oltNgSystemOperationConfigOperationsCommit.0 i 1
snmpset -v2c -c <rw_community> -t 20 <ipaddr> oltNgSystemOperationConfigOperationsSave.0 i 1

Где:

OIDOID в числовом формате
 oltNgSystemOperationConfigOperationsCommit  .1.3.6.1.4.1.35265.1.209.2.1.100.1
 oltNgSystemOperationConfigOperationsSave .1.3.6.1.4.1.35265.1.209.2.1.100.2

Сохраним и применим изменения.

snmpset -v2c -c private -t 20 192.168.11.88 .1.3.6.1.4.1.35265.1.209.2.1.100.1.0 i 1
iso.3.6.1.4.1.35265.1.209.2.1.100.1.0 = INTEGER: 1
snmpset -v2c -c private -t 20 192.168.11.88 .1.3.6.1.4.1.35265.1.209.2.1.100.2.0 i 1
iso.3.6.1.4.1.35265.1.209.2.1.100.2.0 = INTEGER: 1

Результатом будет настроенный во vlan управления access-list:

LTP-16N# show running-config access-list
    access-list ip MGMT
        permit tcp 192.168.11.0 255.255.255.0 any any 80 vlan 3470 index 1
        permit udp 192.168.11.0 255.255.255.0 any any 162 vlan 3470 index 2
        permit udp 192.168.11.0 255.255.255.0 any any 161 vlan 3470 index 3
        permit tcp 192.168.11.0 255.255.255.0 any any 162 vlan 3470 index 4
        permit tcp 192.168.11.0 255.255.255.0 any any 161 vlan 3470 index 5
        permit tcp 192.168.11.0 255.255.255.0 any any 23 vlan 3470 index 6
        permit tcp 192.168.11.0 255.255.255.0 any any 22 vlan 3470 index 7
        deny any any any vlan 3470 index 8
    exit