Функция ACL на коммутаторах Kyland

17 января 2024 г.

Access control list (ACL) - один из механизмов управления безопасностью, использующий настройки правил и политик обработки пакетов с целью фильтрации трафика.

Принцип работы ACL
Коммутатор сравнивает пакет с записями ACL в порядке следования записей в таблице. Каждая запись в списке содержит несколько условий, как только будет найдено совпадение, выполнится действие, и дальнейшее сравнение не будет проводиться.

Схематичную работу функции ACL можно увидеть на рисунке:

Рассмотрим настройку ACL на примере коммутатора серии SICOM3000A. На данных коммутаторах возможна фильтрация только входящего трафика. Максимальное количество записей - 256 на каждом коммутаторе.

В данном примере организуем фильтрацию сетевого трафика через коммутатор, при которой между ПК1 и ПК3 разрешен обмен только по промышленному протоколу Modbus TCP, а ПК2 имеет доступ ко всем компьютерам в сети.

Настройка
Функцию ACL можно найти в разделе Network -> ACL ->Access control list. При первичной настройке можно увидеть пустую таблицу, для создания новой записи необходимо нажать на плюс.

Первые три правила мы создаем для протокола ARP, данные правила необходимы, чтобы компьютеры могли выполнить ARP запросы для поиска MAC-адресов друг друга для дальнейшей связи по TCP.

1. Выбираем порт 1, тип кадра ARP и тип действия “разрешить”, также назначаем IP-адреса источника и получателя согласно схеме.

2. Второе правило создается аналогично, за исключением порта и IP-адресов.

3. И последнее правило для ARP назначаем на порты 1 и 3.

Четвертое и пятое правило уже будет относится к протоколу Modbus TCP:

  1. Выбираем порт, для которого будет действовать фильтрация.
  2. Выбираем тип кадра - IPv4. Помимо данного типа можно еще выбрать Ethernet Type и IPv6.
  3. После выбора типа кадра появляется дополнительное поле IP Parameters (параметры изменяются в зависимости от типа кадра). Здесь выбираем фильтрацию по протоколу TCP. Фильтрация также возможна по протоколу UDP, ICMP или другим. 
  4. Далее назначаем порт Modbus TCP - 502. 
  5. Задаем адресацию для источника и получателя.
  6. Выбираем режим правила - permit (разрешить).

Пятое правило задается аналогично, меняется местами только адресация источника и получателя, входящий порт и фильтруется TCP-порт получателя, а не источника.

Шестое правило необходимо, чтобы ПК2 мог иметь доступ к ПК1 и ПК3, используя любые протоколы связи:

И последнее правило запрещает все на портах 1 и 3.

Теперь можно увидеть заполненную таблицу, в которой отображена краткая информация по каждой из записей. Также эту таблицу можно корректировать с помощью кнопок справа.

+ - добавление новой записи
e - редактирование текущей записи
↑↓ -перемещение записей выше или ниже
x - удаление записи 

После завершения всех настроек необходимо сохранить конфигурацию: Maintenance -> Save Current Configuration.

Теперь можно проверить работу ACL. ПК1 по схеме - Slave-устройство, поэтому для симуляции будем использовать ModRSsim2, а для симуляции Master-устройства на ПК3 - ModbusTool.

Проверка
1. На ПК1 запускаем ModRSsim2, выбираем протокол ModbusTCP/IP и тип регистров Coil Outputs.

2. На ПК3 запускаем ModbusTool, указываем IP-адрес ПК1, порт 502 и Modbus-функцию Read Coils.

3. Устанавливаем соединение со Slave-устройством, нажав кнопку Connect.

4. Пробуем изменить значение регистров в ModRSsim2 и видим, что они также меняются в ModbusTool.

5. А если попробуем произвести команду ping, то результат будет неуспешным.

6. Со стороны ПК2 доступ к обоим компьютерам есть.

Данная проверка говорит о том, что функция ACL работает в соответствии с поставленной задачей.