Вы здесь

Безопасность. Начало 09. VLAN и Trunking

В данном материале будет использоваться данная схема:
bezopasnost._nachalo_08._vlan_i_trunking_01_ciscomaster.ru.jpg

VLAN

Virtual LAN (VLAN) - это Layer 2 broadcast domain. VLAN контролируется коммутатором.

Пример настройки VLAN:

! Create the new VLAN vlan 10 ! Assign the port as an access port belonging to VLAN 10 interface fa0/1 switchport mode access switchport access vlan 10 ! Verify the VLAN exists, and that Fa0/1 has been assigned to it. show vlan brief show vlan id 10 show interfaces fa0/1 switchport

Trunking

Для соединения дву[ коммутаторов, содержащих VLAN-ы, используются транки.
Если порт настроен как Trunk, каждый frame данного порта включает дополнительную информацию - tag, определяющую VLAN, к которой принадлежит этот фрейм.

Предположим, что PC1 отсылает broadcast frame. SW1 принимает broadcast frame и должен его отправить через транк: для этого SW1 добавляет к фрейму tag, в котором содержится информация что данный фрейм из VLAN 10. SW2 увидит этот таг, уберёт его из фрейма, и отправит данный broadcast frame на все порты в VLAN10.

Пример настройки trunk:

interface fa0/23 switchport trunk encapsulation dot1q switchport mode trunk ! show interface trunk show interface fa0/23 switchport

Native VLAN on a Trunk

Что будет, если в порт транка прибежит untagged frame? Коммутатор такой фрейм примет и поместит его в Native VLAN.
По умолчанию Native VLAN есть VLAN 1.

Inter-VLAN Routing

Inter-VLAN Routing осуществляется устройством 3-го уровня, т.е. роутером.
Подключение к VLAN-ам можно производить на физ уровне, т.е. к роутеру будут подключено столько проводов, сколько у нас есть ВЛАН-ов.

Также можно и на роутере поднять транк, что позволит осуществлять маршрутизацию при подключенном одном проводе:
SW1

interface fa 0/3 switchport trunk encapsulation dot1q switchport mode trunk

R3

interface fa 0/0 no ip address interface fa 0/0.10 encapsulation dot1q 10 ip address 10.0.0.1 255.255.255.0

Spanning-Tree

Spanning Tree Protocol (STP) - протокол, позволяющий избежать Layer2 Loops в случае избыточных подключений между коммутаторами.

Давайте посмотрим что такое залупление, - для этого предположим, что в нашей схеме на обоих коммутаторах отключен STP:
PC1 шлёт широковещательный ARP request в сеть. SW1 получает запрос и знает, что данный frame принадлежит к VLAN10, поскольку прибежал из аксесного порта этого ВЛАНа.
SW1 далее рассылает запрос на все порты, включая и два транка. Поскольку два коммутатора подключены двумя связями, произойдёт loop: броадкаст начнёт бегать по кругу.
Из-за этого SW2 это будет видеть, что фреймы с источником MAC PC 1 будут появляться поочерёдно из двух портов Fa0/23 и Fa0/24: такое явление называется MAC address flapping.

STP или 802.1D позволяет отключить избыточное подключение, тем самым разорвав кольцо.
Работа STP заключается во взаимодействии коммутаторов друг с другом, - для этого они обмениваются сообщениями bridge protocol data units (BPDU).

Алгоритм работы STP:

  • STP выбирает root switch. Все порты root switch помещаются в состояние forwarding state
  • Каждый nonroot switch находит у себя ОДИН порт с наименьшей administrative cost. Такой порт называется Root Port (RP) и помещаются в состояние forwarding state
  • В каждом LAN segment находится ОДИН Designated Port, коммутатор которого имеет lowest cumulative root path. Этот порт помещается в состояние forwarding state
  • Все остальные порты помещаются в состояние blocking state

При выборах для STP используется следующий механизм приоритетов:
1. Lowest root bridge ID
2. Lowest root path cost to root bridge
3. Lowest sender bridge ID
4. Lowest sender port ID

Таблица стоимостей
bezopasnost._nachalo_08._vlan_i_trunking_02_ciscomaster.ru.jpg

Проверка STP

show spanning-tree vlan 10
bezopasnost._nachalo_08._vlan_i_trunking_03_ciscomaster.ru.jpg
В примере приведён нерутовый коммутатор.
Как видно, один из портов рутовый. остальные в состоянии Designated.
На всех указанных портах активирован STP, поэтому для каждого сегмента проводятся выборы.

По умолчанию STP включён, и для каждого VLAN существует отдельная STP instance.

STP и новые порты

Если к порту подключить линк, STP не даст этому линку тут же подняться: прежде чем полноценно заработать, порт должен пройти несколько states:
Disabled—Ports that are administratively shut down by the network administrator,
or by the system because of a fault condition, are in the Disabled state. This state is
special and is not part of the normal STP progression for a port.

Blocking—After a port initializes, it begins in the Blocking state so that no bridging
loops can form. Instead, a port is allowed to receive only BPDUs
so that the switch can hear from other neighboring switches.
Ports that are put into standby mode to remove a bridging loop enter the Blocking state.

Listening (15 sec)— The port is allowed to receive and send BPDUs so that it can actively participate in the
Spanning Tree topology process. Here, the port finally is allowed to become a root
port or designated port because the switch can advertise the port by sending BPDUs
to other switches. If the port loses its root port or designated port status, it returns to
the Blocking state.

Learning (15 sec)—After a period of time called the Forward Delay in the Listening state,
the port is allowed to move into the Learning state. The port still sends and receives
BPDUs as before. In addition, the switch now can learn new MAC addresses to add to
its address table. This gives the port an extra period of silent participation and allows
the switch to assemble at least some address information. The port cannot yet send
any data frames, however.

Forwarding—After another Forward Delay period of time in the Learning state, the
port is allowed to move into the Forwarding state. The port now can send and receive
data frames, collect MAC addresses in its address table, and send and receive BPDUs.
The port is now a fully functioning switch port within the spanning-tree topology.

Безусловно, подобное поведение порта вызывает задержку на 30-50сек, и это вызывает неудобства при подключении клиентов-не-коммутаторов:
- Использование Portfast
- Включение более быстрого Rapid Spanning Tree (802.1w) вместо традиционного STP (802.1D).

interface fa0/2 spanning-tree portfast spanning-tree portfast default spanning-tree mode rapid-pvst

Layer 2 Security

  • Выберите для Native VLAN нигде неиспользуемую VLAN. Её не должны использовать и Access-ные порты.
  • Избегайте использования VLAN 1, т.к. это дефолтная VLAN.
  • Настраивайте "в лоб" аксесные и транковые порты, и избегайте использования протокола Dynamic Trunking Protocol [DTP].
  • Ограничивайте количество MAC-адресов на порту.
  • Контролируйте STP, не давая манипулировать структурой дерева STP.
  • Выключайте CDP на портах наружу.
  • На коммутаторах неиспользуемые порты следует держать в состоянии shutdown, а также ассоциировать с выделенным "слепым" VLAN-ом

Настройка портов "в лоб"

Злоумышленник может воспользоваться DTP, и перевести порт в транк: тогда он получит доступ ко всем ВЛАН-ам и получит возможность провести атаку “VLAN hopping”.

interface fa0/2 switchport mode access switchport access VLAN 10 switchport nonegotiate ! interface fa 0/23 switchport trunk encapsulation dot1q switchport mode trunk switchport trunk native vlan 3 switchport nonegotiate

В данном примере мы указали для портов режим работы "в лоб" + также принудительно отключили DTP.

BPDU Guard

BPDU Guard очень часто используется вместе с Portfast и позволяет дизаблить порт в случае получения на него BPDU.

errdisable recovery cause all errdisable recovery interval 300 ! spanning-tree portfast bpduguard default ! interface fa0/2 description Users switchport mode access spanning-tree portfast spanning-tree bpduguard enable

В данном конфиге при подключении к порту другого коммутатора порт залочится. Если вернуть всё обратно, порт восстановится через 300секунд.

Проверка:
show interface fa0/2 status
show errdisable recovery

Root Guard

Наш коммутатор может быть подключён к другим коммутаторам, неуправляемым нами. Root Guard позволяет исключить перевыборы рута от данного порта.

interface fa 0/24 spanning-tree guard root

Port security

Port security позволяет контролировать, сколько MAC-адресов могут жить на данном порту.
Это защищает от атаки CAM table overflow attack: вредоносное приложение на стороне клиента рассылает тысячи фреймов от разных MAC. У коммутатора переполняется CAM table, в результате чего коммутатор начинает форвардить все фреймы на все порты и злоумышленник получает возможность сниферить трафик.

interface FastEthernet1/0/5 switchport port-security switchport port-security maximum 2 switchport port-security violation shutdown switchport port-security mac-address sticky

Проверка:
show port-security

CDP и LLDP

Cisco Discovery Protocol (CDP) - это проприетарный протокол от Cisco, позволяющий получить основную информацию об соседних устройствах в LAN. Для этого устройства периодически отсылают информацию о себе на определённый мультикастный адрес.

Link Layer Discovery Protocol (LLDP) - это аналог CDP от IEEE, появившийся позже.
Как уже было сказано, нужно отключать CDP или LLDP на портах, которые смотрят в чужую сеть.

interface fa1/0/24 no cdp enable no lldp enable

Проверка:
show cdp
show lldp

DHCP Snooping

DHCP Snooping - это по сути Firewall, работающий с DHCP серверами и пакетами.
DHCP Snooping выполняет следующие функции:

  • Пропускает DHCP messages, полученные от Trusted sources и не пропускает от Untrusted
  • Rate-Limits трафик DHCP.
  • Строит и поддерживает DHCP snooping binding database, которая содержит таблицу соответствия IP address - MAC address
ip dhcp snooping vlan 1 - 200 no ip dhcp snooping information option ip dhcp snooping ! interface fa0/1 description To Router ip dhcp snooping trust ! interface fa0/5 description To Server ip dhcp snooping trust

Т.о. мы доверяем лишь портам fa0/1 и fa0/5, остальным портам доверия нет. Это означает что DHCP сервер сможет раздавать адреса только с портов, которым есть доверие.

Dynamic ARP Inspection

Для начала давайте рассмотрим, что такое ARP spoofing attack
bezopasnost._nachalo_08._vlan_i_trunking_04_ciscomaster.ru.jpg
Когда Host A хочет что-то передать на Host B, он делает broadcast ARP request. ARP request запрашивает MAC адрес, ассоциированный с нужным IP адресом.
Когда коммутатор и Host B получают данный броадкаст, они просматривают свой ARP cache и отвечают на запрос.

Host C может ответить на такой запрос первее, тогда получится подложная IP-MAC binding - в этом случае Host C начнёт получать трафик, адресованный для Host B.

DAI перехватывает, логирует и запрещает ARP packets с неправильными IP-to-MAC address bindings.
Валидность биндингов DAI определяет через таблицу DHCP snooping binding database.
Здесь также есть понятие Trusted и Untrusted Interfaces: в первом случае ARP пакет пропускается всегда, во втором случае пропускается только после проверки на валидность.

ip arp inspection vlan 10 ! show ip arp inspection vlan 10 ! interface fa1/0/24 ip arp inspection trust ! show ip arp inspection interfaces

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

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
Target Image