В статье будет рассмотрена настройка 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 :
| OID | OID в числовом формате |
|---|---|
| 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". |
Где:
| OID | OID в числовом формате |
|---|---|
| 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>
Где:
| OID | OID в числовом формате |
|---|---|
| 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
|
Последним индексом настроим запрещающее правило.
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>
Данную команду необходимо выполнять одной строкой. |
Где:
| OID | OID в числовом формате |
|---|---|
| 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
|
Осталось применить и сохранить изменения в конфигурации. Для этого используются команды следующего формата:
snmpset -v2c -c <rw_community> -t 20 <ipaddr> oltNgSystemOperationConfigOperationsCommit.0 i 1
snmpset -v2c -c <rw_community> -t 20 <ipaddr> oltNgSystemOperationConfigOperationsSave.0 i 1
Где:
| OID | OID в числовом формате |
|---|---|
| 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 |