Средства информационной безопасности в коммутаторах

Опубликовано 01.12.2009

Оригинал: Security Features on Switches
Перевод: Сгибнев Михаил

Чаcть I: Storm Control, Protected Ports, Private Virtual Local Area Network (PVLAN), Port Blocking и Port Security.

 В условиях быстрого роста IP-сетей все большее значение приобретает коммутация пакетов. Канальный уровень (Layer 2 в модели OSI) обеспечивает функциональные и процедурные средства для передачи данных между сетями, взаимодействие и взаимосвязь с другими уровнями модели, но с точки зрения безопасности канальный уровень имеет свои недостатки.

 Понимание и готовность к угрозам информационной безопасности очень важно в настоящее время, поэтому избегнуть защиты Layer 2 не представляется возможным. В этой статье мы рассмотрим несколько примеров, позволяющих повысыть уровень информационной безопасности при использовании коммутаторов Cisco Catalyst.

Контроль трафика на порту

 Контроль трафика на порту (Port-based traffic control) может быть использован для защиты единичного порта. Коммутаторы Catalyst предоставляют возможности Storm Control, Protected Ports, Private Virtual Local Area Network (PVLAN), Port Blocking и Port Security.

Storm Control

 Сетевой шторм обычно возникает при наводнении сегмента LAN ненужными пакетами, приводящими к значительному снижению пропускной способности сегмента. Шторм может быть вызван рядом факторов, например ошибками в реализации стека протоколов какого-либо устройства, образовании сетевой петли или действия злоумышленника.

 
Функция Storm Control позволяет регулировать постоянный трафик и защищать физический порт от broadcast, multicast или unicast шторма.

 Функция traffic storm control (так же известная как функция traffic suppression) с 1-секундным интервалом проверяет приходящие на интерфейс пакеты и сравнивает их количество с установленным уровнем storm-control, используя один из следующих методов измерения активности:

  • Процент от полной доступной полосы пропускания порта, назначенной для broadcast, multicast или unicast трафика.
  • Поток трафика на интерфейсе через 1-секундные интервалы, выраженные в pps.

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

 Для включения этой функции используйте следующую команду глобального конфигурационного режима:

storm-control {broadcast | multicast | unicast}

 По умолчанию эта фунция выключена.

 Нижеприведенная команда используется ля указания производимого действия при обнаружении шторма. Если ни одно из действий не указано, то трафик сверх порога отфильтровывается.

storm-control action {shutdown | trap}

 Для проверки конфигурации storm control на интерфейсе используется команда:

show storm-control [interface] [broadcast | multicast | unicast]

Protected Ports (PVLAN Edge)

 В некоторых сетях нет необходимости в обмене трафиком между хостами, расположенными в одном сегменте LAN. Функция PVLAN edge позволяет изолировать указанные порты друг от друга, блокируя весь unicast, broadcast или multicast трафик. Обращаем ваше внимание на то, что данная функция ограничена только локальными портами одного коммутатора и не позволяет контролировать трафик между коммутаторами. При работе с несколькими коммутаторами необходимо использовать функцию PVLAN (будет рассмотрена ниже).

 
PVLAN edge предоставляет следующие возможности:

  • Коммутатор не передает трафик между портами, которые помечены как protected. Трафик между такими портами может проходить только через процесс маршрутизации на Layer 3.
  • Системный трафик, такой как обмен маршрутной информацией между protected портами пропускается.
  • Обмен трафиком между защищенным и незащищенным портом по умолчанию разрешен.

 По умолчанию на коммутаторе нет портов, отмеченных как protected. На примере ниже вы можете увидеть, как назначить защиту на порт и проверить состояние порта.

Switch(config)# interface Fastethernet0/1
Switch(config-if)# switchport protected
Switch(config-if)# end

Switch# show interfaces FastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: static access
...
Protected: true

Private VLAN (PVLAN)

 Как говорилось в разделе Protected Ports (PVLAN Edge), функция PVLAN позволяет запретить обмен данными между хостами в пределах одного VLAN на нескольких коммутаторах. PVLAN предоставляет изоляцию Layer 2 для портов, находящихся в одном PVLAN.

 Портам доступа в PVLAN разрешено общаться только с назначенными портами маршрутизатора. В большинстве случаев, адресом порта выступает адрес шлюза по умолчанию. Private VLANs и обычные VLAN могут сосуществовать в пределах одного коммутатора. Особенностью PVLAN является то, что он позволяет сегрегировать трафик на Layer 2, превращая таким образом broadcast сегмент в nonbroadcast с подобием множественного доступа. PVLAN может довольно эффективно использоваться для предотвращения обмена данными между хостами, так как количество возможных подсетей или VLAN довольно невелико.

 Обратите внимание, что функция PVLAN доступна не на всех коомутаторах Cisco. Для уточнения этого момента обратитесь к документации на оборудование или к таблице в оригинальной статье.

 
Доступно три типа портов PVLAN:

  • Promiscuous: такой порт может общаться со всем типами портов, включая Isolated и Community в пределах PVLAN. Функция Promiscuous порта заключается в обмене трафиком между портами в community или isolated VLAN-ами. В одном PVLAN может быть только один порт такого типа и он обслуживает все порты community и isolated VLANs в Private VLAN.
  • Isolated: этот тип порта полностью ограничен в доступе к другим портам в пределах того же самого PVLAN, кроме Promiscuous порта. Трафик от isolated порта может быть отправлен только Promiscuous порту и никому другому.
  • Community: это логически объединенные группы портов в общем Community и могут передать трафик между собой и Promiscuous портом. Порты отделены по Layer 2 от всех других интерфейсов в других Community или Isolated портах в пределах их PVLAN.


Компоненты PVLAN


  Наличие портов isolated and community в пределах одного PVLAN на нескольких коммутаторах становится возможным вследствии поддержки транковыми интерфейсами трафика VLAN между isolated, community и promiscuous портами. Следовательно, порты PVLAN связаны с отдельным набором VLAN-ов, которые используются, для создания труктуры PVLAN. PVLAN использует VLAN следующими тремя способами:

  • Как primary VLAN: — передает трафик между promiscuous портом в isolated, community или другим promiscuous портом в том же самом первичном VLAN.
  • Как isolated VLAN: — передает трафик от isolated порта в promiscuous порт. Порт в isolated VLAN не может передавать данные по Layer 2 ни с каким другим портом в пределах Private VLAN (другим community VLAN портом или портом в том же isolated VLAN). Для связи с другими портами необходомо обратиться к promiscuous порту.
  • Как community VLAN: — передает трафик между другими community VLAN портами в пределах community и promiscuous портом. При этом передача трафика по Layer 2 между другими community или isolated VLAN-ами невозможна, все данные должны передаваться через promiscuous порт. В пределах одного Private VLAN может быть определено несколько community VLAN.

 Isolated и community VLAN так же называются secondary VLAN. PVLAN может быть расширен на несколько коммутаторов через транки.


Правила передачи трафика в PVLAN


Конфигурирование PVLAN

 Обратите внимание, что при конфигурации PVLAN коммутатор необходимо выставить в режим VTP transparent mode прежде, чем вы приступите к конфигурированию. PVLAN настраиваются в пределах одного коммутатора и не могут быть в группе с другими коммутаторами.


[ad name=»Google Adsense»]



 Для настройки выполните следующие шаги:

 (1) Создайте primary и secondary PVLAN. Для примера, сконфигурируйте VLAN 101 как primary VLAN, VLAN 201 и 202 как community VLAN и VLAN 301 в качестве isolated VLAN.

Hostname(config)# vlan 101
Hostname(config-vlan)# private-vlan primary
Hostname(config)# vlan 201
Hostname(config-vlan)# private-vlan community
Hostname(config)# vlan 202
Hostname(config-vlan)# private-vlan community
Hostname(config)# vlan 301
Hostname(config-vlan)# private-vlan isolated

 (2) Привяжите secondary VLAN к primary PVLAN.

Hostname(config)# vlan 101
Hostname(config-vlan)# private-vlan association 201-202,301
Hostname(config-vlan)# exit

 Внимание: только один isolated VLAN может быть привязан к primary VLAN. Community VLAN может быть несколько.

 (3) Привяжите secondary VLANs к SVI (Switched Virtual Interface), который является интерфейсом Layer 3 primary VLAN. Например, разрешим маршрутизацию secondary VLAN — входящий трафик от VLAN 201-202 и 301 в private VLAN 101 SVI (интерфейс Layer 3).

Hostname(config)# interface vlan 101
Hostname(config-if)# private-vlan mapping add 201-202,301

 (4) Сконфигурируем интерфейс Layer 2 как isolated или community порт и ассоциируем порт Layer 2 с портом primary VLAN, затем выберем secondary VLAN. В данном примере мы сконфигурируем FastEthernet 1/1 в качестве PVLAN порта в community VLAN 201, привяжем его к паре private-secondary PVLAN, сконфигурируем порт FastEthernet 1/2 как PVLAN порт в isolated VLAN 301, и привяжем его к паре private-secondary PVLAN.

Hostname(config)# interface Fastethernet 1/1
Hostname(config-if)# switchport mode private-vlan host
Hostname(config-if)# switchport private-vlan host-association 101 201
Hostname(config)# interface Fastethernet 1/2
Hostname(config-if)# switchport mode private-vlan host
Hostname(config-if)# switchport private-vlan host-association 101 301

 (5) Сконфигурируйте интерфейс Layer 2 в качестве promiscuous порта для данного PVLAN и привяжите его к primary VLAN. Затем привяжите его к secondary VLAN. В данном примере в качестве promiscuous порта будет выступать FastEthernet 1/10.

Hostname(config)# interface Fastethernet 1/10
Hostname(config-if)# switchport mode private-vlan promiscuous
Hostname(config-if)# switchport private-vlan mapping 101 201-202,301

 Для проверки конфигурации используйте команды show interface private-vlan mapping и show interface [interface-id] switchport.

Port Blocking

 Когда пакет попадает на коммутатор, тот начинает поиск MAC адреса хоста назначения пакета в таблице MAC адресов, для того, что бы определить порт, на который надо передать пакет. Если адреса не находится, то коммутатор начинает broadcast(flood), unknown unicast или multicast рассылку по всем портам в пределах одного VLAN (broadcast domain). Передача unknown unicast или multicast трафика может привести к проблемам с безопасностью.

 Для конфигурирования блокировки портов unknown unicast и multicast флуда используется следующая процедура:

  • Команда switchport block multicas для блокировки unknown multicast трафика на порт
  • Команда switchport block unicast для блокировки unknown unicast трафика на порт
  • Команда show interfaces {interface} switchport для проверки конфигурации

 По умолчанию порты коммутатора не блокируют трафик. В нижеприведенном примере покажем, как это делается:

Switch(config)# interface Fastethernet0/1
Switch(config-if)# switchport block multicast
Switch(config-if)# switchport block unicast
Switch(config-if)# end
Switch# show interfaces FastEthernet 0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: static access
...
Protected: true
Unknown unicast blocked: enabled
Unknown multicast blocked: enabled
Appliance trust: none

Port Security

 Данная функция предотвращает несанкционированный доступ к порту коммутатора. Port Security может использоваться для идентификации и ограничения количества MAC адресов хостов, которым разрешен доступ к порту. Когда задействована эта функция, трафик от хостов, чьи MAC адреса не указаны в сприске разрешенных, блокируется. Для понимания этой технологии представьте себе автомобильную стоянку, где каждое машиноместо закреплено за определенным автомобилем.

 Функция Port security может быть реализована следующими способами:

  • MAC адрес, которому будет разрешен доступ прописывается вручную командой port-security mac-address [source-mac-address]. Адрес помещается в таблицу MAC адресов и в конфигурацию.
  • Динамическое обучение коммутатора MAC адресам, с удалением списка из таблицы адресов при перезагрузке коммутатора.
  • Комбинация вышеприведенных пунктов. В этом случае адреса определяются автоматически и затем они сохраняются в таблице и в конфигурации. Таким образом, после перезагрузки нет необходимости в повторном обучении.

 При возникновении инцидента необходимо выполнить определенное действие. Факт инцидента определяется попыткой передать данные хостом, MAC адреса которого не содержится в таблице или попыткой передать данные хостом, чей адрес имеется в таблице MAC адресов, но не соответствует полученному при начальном обучении порт коммутатора.
 

Интерфейс может быть сконфигурирован в одном из следующих трех режимов нарушения безопасности, основанных на действии, которое будет применено при возникновении инцидента:

  • Protect: в этом режиме все unicast или multicast пакеты от хоста с неизвестным MAC адресом будут заблокированы. Уведомление об инциденте
    не отсылается.
  • Restrict: в этом режиме отбрасываются все пакеты от хоста с неизвестным MAC адресом. При этом инцидент наступает, когда превышено количество определенных для обучения адресов. Блокировка трафика от хоста продолжается до тех пор, пока не будет увеличен лимит на количество MAC адресов на порту коммутатора или пока не будет удален один из уже имеющихся адресов. При таком типе инцидента формируется оповещение — посылается SNMP trap, записывается сообщение в syslog и увеличивается счетчик инцидентов.
  • Shutdown: в этом режиме порт полностью блокируется и переводится в состояние error-disabled. Светодиод на коммутаторе гаснет, человечество затаивает дыхание в ожидании конца света. При таком типе инцидента формируется оповещение — посылается SNMP trap, записывается сообщение в syslog и увеличивается счетчик инцидентов.

 Для включения этой функции используйте команду switchport port-security в режиме конфигурации интерфейса. У команды есть несколько опций.

 В данном примере мы статически привяжем к порту MAC адрес и включим добавление адреса в конфигурацию:

Switch(config)# interface Fastethernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security mac-address 0009.6B90.F4FE
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# end

 В данном примере мы определяем количество допустимых MAC адресов в 10 штук, VLAN 5 и порт FastEthernet0/2. Опция [vlan] в этой команде определяет максимальное значение на VLAN для определенного VLAN или их диапазона.

Switch(config)# interface Fastethernet0/2
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security maximum 10 vlan 5
Switch(config-if)# end

 В дополнение к вышеприведенной конфигурации можно настроить сам механизм функции. По умолчанию MAC адреса не устаревают и при обычной конфигурации остаются в таблице MAC адресов коммутатора до его перезагрузки. При использовании опции sticky адреса необходимо будет удалять вручную.

 Есть два типа механизма устаревания адресов:

  • Absolute: — адрес устаревает через заданное время. Все утановки сбрасываются.
  • Inactivity: — так же известен как idle time. Адрес устаревает в случае отсутствия трафика за указанный период времени.

 В примере ниже установим время устаревания в 5 минут для типа Inactivity. Адрес устанавливается статически.

Switch(config)# interface Fastethernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security aging time 5
Switch(config-if)# switchport port-security aging type inactivity
Switch(config-if)# switchport port-security aging static

Чаcть II: Access Lists on Switches


Коммутатор и Access Lists

 Для фильтрации трафика коммутатор может использовать следующие типы ACL:

  • Router ACL
  • Port ACL
  • VLAN ACL
  • MAC ACL

Router ACL

 Как и подразумевается в названии, Router ACL подобны на IOS ACL и используются для фильтрации сетевого трафика на SVI (интерфейсы SVI это Layer 3 на VLAN, физические Layer 3 интерфейсы и Layer 3 интерфейсы EtherChannel). Поддерживаются как стандартные, так и расширенные ACL. Для получения более детальной информации по Router ACL, обратитесь к соответствующей документации.

Port ACL

 Port ACL подобны Router ACL, но работают на физических интерфейсах и интерфейсах Layer 2 коммутатора. Port ACL поддерживают фильтрацию только входящего трафика. Port ACL могут быть расширенного, стандартного и MAC-extended типа.

 Обработка Port ACL подобна Router ACL: коммутатор проверяет ACL, назначенный данному интерфейсу и разрешает или блокирует пакет.

 Когда ACL наложен на транковый порт, проверяется трафик всех проходящих через транк VLAN-ов — как данные, так и голос.

 Основная прелесть Port ACL состоит в том, что может фильтроваться как IP трафик (используя IP access lists) так и non-IP трафик (используя MAC access list).

 Внимание:Port ACLs не поддерживается на интерфейсах EtherChannel.

VLAN ACL (VACL)

 VLAN ACL (так же известные как VLAN map) осуществляют пакетную фильтрацию всех типов трафика внутри VLAN или входящих/выходящих из него. В отличие от Router ACL, VACL не определяет направление трафика (input или output). Все пакеты находящиеся в VLAN (маршрутизируемые или внутренние)
проверяются VACL. Для пакетной фильтрации в зависимости от направления трафика есть возможность использовать комбинацию VACL и Private VLAN.


[ad name=»Google Adsense»]



 VACL обрабатываются на аппаратном уровне, не оказывая влияния на производительность коммутатора. Производительность так же не зависит от объема VACL.
Поэтому они упоминаются также как wire-speed ACL.

VACL на порту Layer 2

 На рисунке ниже показана работа VACL на briged интерфейсе для Host A в VLAN 5 передающего данные на Host B в VLAN 10.


VACL на порту Layer 2


VACL маршрутизируемом порту

 На рисунке ниже показана работа IOS ACL и VACL на маршрутизируемом интерфейсе. Порядок выполнения определяется следующим образом:

  1. VACL для input VLAN
  2. Input IOS ACL
  3. Output IOS AC
  4. VACL для output VLAN


VACL маршрутизируемом порту


Конфигурирование VACL

 Для конфигурирования VACL (VLAN access map) необходимо выполнить следующие действия:

  1. Определить стандартный или расширенный ACL, который будет использоваться на VACL.
  2. Определить VLAN access map.
  3. Описать критерий попадания
  4. Описать выполняемое действие при попадании
  5. Наложить VLAN access map на соответствующий VLAN.
  6. Посмотреть, а что же у нас получилось?

  В данном примере мы определяем и накладываем VACL, который будет отбрасывать пакеты, попадающие в access list 1 из сети 192.168.1.0/24, при этом все остальные пакеты, попадающие в access list 2 будут переданы. VACL применяется к VLAN-ам с 5 по 10.

Switch(config)#access-list 1 permit 192.168.1.0 0.0.0.255
Switch(config)#access-list 2 permit any
Switch(config)#vlan access-map mymap 10
Switch(config-access-map)#match ip address 1
Switch(config-access-map)#action drop
Switch(config-access-map)#exit
Switch(config)#vlan access-map mymap 20
Switch(config-access-map)#match ip address 2
Switch(config-access-map)#action forward
Switch(config-access-map)#exit
Switch(config)# vlan filter mymap vlan-list 5-10
Switch(config-access-map)#end

Switch# show vlan access-map
Vlan access-map "mymap" 10
Match clauses:
ip address: 1
Action:
drop
Vlan access-map "mymap" 20
Match clauses:
ip address: 2
Action:
Forward

Switch# show vlan filter
VLAN Map mymap is filtering VLANs:
5-10

MAC ACL

 MAC ACL, также известный как Ethernet ACL предназначен для фильтрации non-IP трафика на VLAN или физических интерфейсах Layer 2 используя MAC адреса в именованном расширенном MAC extended ACL.

 Шаги по конфигурации MAC ACL подобны обычным именованным расширенным ACL. MAC ACL могут применяться только для фильтрации входящего трафика.

 Для определения MAC Extended ACL используется команда mac access-list extended.

 После того, как MAC ACL будет создан, его необходимо наложить на интерфейс Layer 2 используя команду mac access-group [acl-name] in

 В примере ниже мы покажем, как создать и применить MAC ACL для блокировки всех пакетов AppleTalk Address Resolution Protocol (AARP), пропуская отсальной трафик


Switch(config)# mac access-list extended my-mac-acl
Switch(config-ext-macl)# deny any any aarp
Switch(config-ext-macl)# permit any any
Switch(config-ext-macl)# exit
Switch(config)# interface Fastethernet0/10
Switch(config-if)# mac access-group my-mac-acl in
Switch(config-if)# end
Switch#

Чаcть III: Dynamic Host Configuration Protocol (DHCP) Snooping

 Функция DHCP Snooping позволяет защитить вашу сеть от появления в ней нелигитимных DHCP серверов,
создавая логический брандмауэр между недоверенными хостами и DHCP сервером.
Коммутатор создает и поддерживает DHCP snooping table (также называемую DHCP binding database), показанную на рисунке ниже:

 Коммутатор использует эту таблицу для идентификации и фильтрации недоверенных сообщений по сети.
Коммутатор, поддерживающий DHCP binding database, отслеживает адреса, назначенные по DHCP на порты и
фильтрует все DHCPсообщения с недоверенных портов.

 На рисунке ниже показана работа DHCP Snooping. В данном случае порт нарушителя будет заблокирован,
при попытке его вмешаться в процесс получения адреса клиентом:

 Функция DHCP Snooping может быть сконфигурированан на коммутаторах и VLAN.
При конфигурировании на коммутаторе, интерфейс действует как Layer 2 bridge, перехватывая сообщения DHCP, идущие в Layer 2 VLAN.
Когда функция задействована на VLAN, то коммутатор действует как Layer 2 bridge в пределах VLAN.

 Для корректной работы DHCP Snooping, все сервера DHCP, подключенные к коммутатору, должны находиться на доверенных портах.
Для этого необходимо выполнить команду ip dhcp snooping trust в режиме конфигурации интерфейса.
На всех прочих портах должна быть выполнена команда no ip dhcp snooping trust.

 Для конфигурирования функции DHCP Snooping на отдельном VLAN, необходимо выполнить команду ip dhcp snooping vlan [vlan-id],
в глобальном режиме конфигурирования (на каждом VLAN). После этого, необходимо включить DHCP Snooping глобально, для чего используйте
команду ip dhcp snooping.

 В примере ниже, DHCP сервер подключен к порту FastEthernet0/1, помеченный как доверенный и на котором установлено ограничение
в 100 пакетов в секунду. Команда rate limit позволяет избежать DHCP flood и перегрузки DHCP сервера.
DHCP Snooping включен на VLAN 5 и в глобальной конфигурации:

Switch(config)# interface Fastethernet0/1
Switch(config-if)# ip dhcp snooping trust
Switch(config-if)# ip dhcp snooping limit rate 100
Switch(config-if)# exit
Switch(config)# ip dhcp snooping vlan 5
Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping information option

 Используйте команду show ip dhcp snooping для просмотра настроек и команду show ip dhcp snooping binding
для просмотра назначенных адресов на недоверенные порты.

 Уважайте труд автора, сохраняйте копирайты.
Реклама на сайте висит не просто так и если статья Вам понравилась, с ее помощью Вы можете отблагодарить автора за проделанную работу. Спасибо!


[ad name=»Google Adsense»]


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*