На устройстве МКСЗ Diamond Next поддерживается возможность задать базовые политики безопасности для контроля сетевого трафика управления устройством и трафика сопутствующих и дополнительных протоколов. К трафику управления можно отнести протокол https (web интерфейс) и ssh (консольное подключение). К дополнительным протокола можно отнести: snmp, rsyslog и др.
При настройке правил фильтрации целесообразно использовать механизм отслеживания соединения с дополнительными опциями логирования.
Ниже представлена общая схема стенда, на базе которого будет задана конфигурация устройства и настроены правила фильтрации для интерфейса управления. По легенде один из Администраторов должен иметь возможность осуществлять конфигурацию устройства, все остальные сотрудники и устройства должны иметь возможность передавать полезную нагрузку и не иметь доступа к интерфейсу управления устройством МКСЗ Diamond Next.
Технология VRF позволяет изолировать сетевой интерфейс с точки зрения маршрутной информации и передачи сетевого трафика. Рекомендуется интерфейс управления всегда переводить в отдельный VRF.
Обратите внимание, что механизм VRF помогает изолировать трафик на сетевом уровне, но не заменят механизм фильтрации.
На принципиальной схеме сети представлено устройство МКСЗ Diamond Next, рабочее место администратора, рабочие места рядовых сотрудников, Syslog сервер, NTP сервер, DNS сервер и Zabbix сервер.
Необходимо реализовать политики фильтрации сетевого трафика, чтобы доступ к интерфейсу управления устройства МКСЗ Diamond Next был только у Администратора (192.168.10.150). Рядовые сотрудники не должны иметь доступа к интерфейсу управления.
Устройство МКСЗ Diamond Next должно иметь возможность взаимодействовать с устройствами серверной группы по соответствующим протоколам.
В настоящей задаче рассматривается только вопрос контроля трафика управления и не рассматривается вопрос контроля полезной нагрузки.
Для настройки интерфейса управления, необходимо подключиться к устройству через web интерфейс. В главном меню выбрать пункт “Сетевые интерфейсы - Интерфейсы Ethernet". В таблице "Интерфейсы Ethernet" необходимо выбрать интерфейс управления “GigabitEthernet1/0/0” и нажать на кнопку “Редактировать”. В новом окне “Настроить ethernet интерфейс” необходимо изменить состояние интерфейса на “up” и нажать на кнопку “ОК”. Для сохранения настроек необходимо нажать на кнопку “Сохранить”.
После изменения состояния сетевого интерфейса, на вкладке “Статус - Сетевые интерфейсы” для заданного сетевого интерфейса можно проверить его состояние, наличие линка и скорость.
Для дальнейшей работы на интерфейсе “GigabitEthernet1/0/0” необходимо задать сетевой адрес и маску подсети. Для задания сетевого адреса необходимо в главном меню выбрать пункт “Сетевые настройки - IP адреса”. В таблице “IP адреса” необходимо нажать на кнопку “Добавить”.
В новом окне “Настроить IP адрес” в поле “Название интерфейса” необходимо выбрать интерфейс “GigabitEthernet1/0/0”, в поле “IP адрес/маска подсети” задать сетевой адрес “192.168.10.1/24”. После задания сетевого адреса необходимо нажать на кнопку “ОК”, для сохранения настроек необходимо нажать на кнопку “Сохранить”.
Дополнительно можно проверить наличие сетевого адреса на интерфейсе в консоли. Для этого необходимо подключиться к устройству по протоколу ssh и перейти на уровень управления полезной нагрузки с помощью команды “vppctl”. Для просмотра информации о сетевых интерфейсах необходимо выполнить команду “show interface”, для просмотра информации о сетевых адресах на интерфейсах необходимо выполнить команду “show interface address”.
# vppctl
vpp# show interface
Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
GigabitEthernet1/0/0 1 up 9000/0/0/0 rx packets 43495
rx bytes 4167861
drops 43495
ip4 10991
ip6 11436
GigabitEthernet2/0/0 2 down 9000/0/0/0
GigabitEthernet3/0/0 3 down 9000/0/0/0
GigabitEthernet6/0/0 4 down 9000/0/0/0
local0 0 down 0/0/0/0
vpp#
vpp# show interface address
GigabitEthernet1/0/0 (up):
L3 192.168.10.1/24
GigabitEthernet2/0/0 (dn):
GigabitEthernet3/0/0 (dn):
GigabitEthernet6/0/0 (dn):
local0 (dn):
vpp#
Устройство МКСЗ Diamond Next включает в себя два уровня: уровень управления и уровень обработки полезной нагрузки. Уровень управления позволяет нам подключиться к устройству по протоколу https и ssh, а также взаимодействовать с различными службами, например, NTP, DNS, SNMP, Rsyslog и т.д. По умолчанию связности между уровне управления и уровне обработки полезной нагрузки нет. Чтобы настроить эту связность необходимо использовать специальный тип интерфейса - интерфейс LCP. Этот тип интерфейса позволяет пробросить сетевой трафик с физического или логического интерфейса уровня обработки полезной нагрузки на уровень управления.
Для создания LCP интерфейса необходимо подключиться к web интерфейсу устройства. В главном меню выбрать пункт “Сетевые интерфейсы - Интерфейс LCP”. В таблице “Интерфейс LCP” необходимо нажать на кнопку “Добавить” для нового LCP интерфейса.
В новом окне “Настроить LCP интерфейс” в поле “Название” необходимо задать название для LCP интерфейса “lcp_mgmt”, в поле “Имя нижележащего интерфейса” необходимо выбрать сетевой интерфейс “GigabitEthernet1/0/0”, с которым необходимо настроить связность.
Дополнительно можно проверить наличие LCP интерфейса в консоли. Для этого необходимо подключиться к устройству по протоколу ssh и выполнить команду “ip a”. В перечне сетевых интерфейсов должен появиться интерфейс “lcp_mgmt” с сетевым адресом, который мы ранее задавали на сетевом интерфейсе “GigabitEthernet1/0/0”.
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
7: lcp_mgmt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UNKNOWN group default qlen 1000
link/ether 00:90:0b:99:f3:0b brd ff:ff:ff:ff:ff:ff
inet 192.168.10.1/24 scope global lcp_mgmt
valid_lft forever preferred_lft forever
inet6 fe80::290:bff:fe99:f30b/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
Для настройки правил фильтрации необходимо подключиться к web интерфейсу устройства. В главном меню выбрать пункт “Межсетевой экран - Список правил ALC”. В таблице “Список правил ACL” необходимо нажать на кнопку “Добавить” для создания нового списка доступа. После нажатия на кнопку “Добавить” будет создан список доступа “ACL0” с приоритетом 0.
Для создания правила фильтрации необходимо в таблице “Список правил ACL” выбрать нужный список доступа, а в таблице “Правила фильтрации” нажать на кнопку добавить. В новом окне “Настроить правило фильтрации” необходимо задать параметры для правила фильтрации, выбрать действие и задать параметры логирования.
При взаимодействии с устройством МКСЗ Diamond Next сетевой трафик на интерфейсе двигается в двух направлениях in и out. Направление in - входящий сетевой трафик по отношению к устройству, out - исходящий сетевой трафик по отношению к устройству. Каждое из направлений необходимо контролировать с помощью персонального списка доступа.
В таблице ниже представлены правила фильтрации для списка доступа ACL0 для контроля in направления.
Список доступа | ip источника | ip назначения | Протокол | Порт источника | Порт назначения | Действие | Логирование | Комментарий |
ACL0 | 192.168.10.150 | 192.168.10.1 | TCP | any | 443 | reflect | start-end session | Доступ к устройству по протоколу https. |
ACL0 | 192.168.10.150 | 192.168.10.1 | TCP | any | 22 | reflect | start-end session | Доступ к устройству по протоколу ssh. |
ACL0 | 192.168.10.201 | 192.168.10.1 | UDP | any | 161 | reflect | periodic | Доступ к устройству по протоколу snmp для снятия метрик и статистики. |
ACL0 | any | 192.168.10.1 | ICMP | any | any | reflect | periodic | Доступ к устройству по протоколу icmp. |
ACL0 | any | any | any | any | any | deny | periodic | Запретить весь остальной трафик. |
В таблице ниже представлены правила фильтрации для списка доступа ACL1 для контроля out направления.
Список доступа | ip источника | ip назначения | Протокол | Порт источника | Порт назначения | Действие | Логирование | Комментарий |
ACL1 | 192.168.10.1 | 192.168.10.200 | UDP | any | 514 | reflect | periodic | Доступ с устройства на syslog сервер по протоколу rsyslog. |
ACL1 | 192.168.10.1 | 192.168.10.10 | UDP | any | 123 | reflect | periodic | Доступ с устройства на NTP сервер для синхронизации точного времени. |
ACL1 | 192.168.10.1 | 192.168.10.14 | UDP | any | 53 | reflect | periodic | Доступ с устройства на DNS сервер для резолва доменных имен. |
ACL1 | any | any | any | any | any | deny | periodic |
После задания всех параметров для списка доступа ACL0 в web интерфейсе правила фильтрации должны выглядеть следующим образом:
После задания всех параметров для списка доступа ACL1 в web интерфейсе правила фильтрации должны выглядеть следующим образом:
Дополнительно можно проверить наличие правил фильтрации в консоли. Для этого необходимо подключиться к устройству по протоколу ssh и перейти на уровень управления полезной нагрузки с помощью команды “vppctl”. Для просмотра информации о сетевых интерфейсах необходимо выполнить команду “show interface”, для просмотра информации о сетевых адресах на интерфейсах необходимо выполнить команду “show interface address”.
# vppctl
vpp# show acl-plugin acl
acl-index 0 count 5 tag {ACL0}
0: ext {} ipv4 permit+reflect src 192.168.10.150/32 dst 192.168.10.1/32 proto 6 sport 0-65535 dport 443 hlp no log sstr send
1: ext {} ipv4 permit+reflect src 192.168.10.150/32 dst 192.168.10.1/32 proto 6 sport 0-65535 dport 22 hlp no log sstr send
2: ext {} ipv4 permit+reflect src 192.168.10.201/32 dst 192.168.10.1/32 proto 17 sport 0-65535 dport 161 hlp no log prd
3: ext {} ipv4 permit+reflect src 0.0.0.0/0 dst 192.168.10.1/32 proto 1 sport 0-65535 dport 0-65535 hlp no log prd
4: ext {} ipv4 deny src 0.0.0.0/0 dst 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535 log prd
acl-index 1 count 4 tag {ACL1}
0: ext {} ipv4 permit+reflect src 192.168.10.1/32 dst 192.168.10.200/32 proto 17 sport 0-65535 dport 514 hlp no log prd
1: ext {} ipv4 permit+reflect src 192.168.10.1/32 dst 192.168.10.10/32 proto 17 sport 0-65535 dport 123 hlp no log prd
2: ext {} ipv4 permit+reflect src 192.168.10.1/32 dst 192.168.10.14/32 proto 17 sport 0-65535 dport 53 hlp no log prd
3: ext {} ipv4 deny src 0.0.0.0/0 dst 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535 log prd
vpp#
Для применения списка доступа на сетевом интерфейсе необходимо в главном меню выбрать пункт “Межсетевой экран - Политики фильтрации”. В таблице “Политики фильтрации” необходимо выбрать интерфейс “GigabitEthernet1/0/0”, направление “Входящее” и нажать на кнопку “Добавить”.
В новом окне “Задать список правил ACL” необходимо выбрать список доступа ACL0 и нажать на кнопку “ОК”.
Аналогичную настройку необходимо сделать для направления “Исходящий трафик” и задать для этого направления список доступа ACL1. Для сохранения настроек необходимо нажать на кнопку “Сохранить”.
Дополнительно можно проверить что списки доступа применились на сетевом интерфейсе в консоли. Для этого необходимо подключиться к устройству по протоколу ssh и перейти на уровень управления полезной нагрузки с помощью команды “vppctl”. Для просмотра информации о сетевых интерфейсах необходимо выполнить команду “show interface”, для просмотра информации о сетевых адресах на интерфейсах необходимо выполнить команду “show interface address”.
# vppctl
vpp# show interface
Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count
GigabitEthernet1/0/0 1 up 9000/0/0/0 rx packets 702
rx bytes 63662
drops 702
ip4 158
ip6 162
GigabitEthernet2/0/0 2 down 9000/0/0/0
GigabitEthernet3/0/0 3 down 9000/0/0/0
GigabitEthernet6/0/0 4 down 9000/0/0/0
local0 0 down 0/0/0/0
vpp#
vpp# show acl-plugin acl
acl-index 0 count 5 tag {ACL0}
0: ext {} ipv4 permit+reflect src 192.168.10.150/32 dst 192.168.10.1/32 proto 6 sport 0-65535 dport 443 hlp no log sstr send
1: ext {} ipv4 permit+reflect src 192.168.10.150/32 dst 192.168.10.1/32 proto 6 sport 0-65535 dport 22 hlp no log sstr send
2: ext {} ipv4 permit+reflect src 192.168.10.201/32 dst 192.168.10.1/32 proto 17 sport 0-65535 dport 161 hlp no log prd
3: ext {} ipv4 permit+reflect src 0.0.0.0/0 dst 192.168.10.1/32 proto 1 sport 0-65535 dport 0-65535 hlp no log prd
4: ext {} ipv4 deny src 0.0.0.0/0 dst 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535 log prd
applied inbound on sw_if_index: 1
applied outbound on sw_if_index:
used in lookup context index: 1
acl-index 1 count 4 tag {ACL1}
0: ext {} ipv4 permit+reflect src 192.168.10.1/32 dst 192.168.10.200/32 proto 17 sport 0-65535 dport 514 hlp no log prd
1: ext {} ipv4 permit+reflect src 192.168.10.1/32 dst 192.168.10.10/32 proto 17 sport 0-65535 dport 123 hlp no log prd
2: ext {} ipv4 permit+reflect src 192.168.10.1/32 dst 192.168.10.14/32 proto 17 sport 0-65535 dport 53 hlp no log prd
3: ext {} ipv4 deny src 0.0.0.0/0 dst 0.0.0.0/0 proto 0 sport 0-65535 dport 0-65535 log prd
applied outbound on sw_if_index: 1
used in lookup context index: 0
vpp# show acl-plugin interface
sw_if_index 0:
sw_if_index 1:
input acl(s): 0
output acl(s): 1
sw_if_index 2:
sw_if_index 3:
sw_if_index 4:
vpp#
После задания всех требуемых параметров можно проверить работоспособность. Проверки можно провести по следующим пунктам:
3. Проверить таблицу состояний для заданного типа трафика. Для этого необходимо подключиться к устройству по протоколу ssh и выполнить команду “vppctl sh acl-plugin sessions_table | grep ESTABLISHED”.