# Катенин Владимир - Networks Basic. Занятие 5. Безопасность локальной сети
[toc]
## Задача
1) Провести атаку на DHCP. На коммутаторе настроить защиту от Rogue DHCP Server и от DHCP starvation
2) Провести атаку VLAN hopping. На коммутаторе настроить защиту от данного типа атаки (либо предложить рекомендацию)
3) Провести атаку CAM-table overflow. На коммутаторе настроить защиту от CAM-table overflow
4) Провести атаку MAC-spoofing. Настроить защиту от атаки MAC-spoofing, используя Port Security
5) Настроить ACL:
-- KALI имеет доступ куда угодно, кроме debian машинки по протоколу HTTP
-- Win-7 машинка имеет доступ только в интернет и в VLAN-1
-- Debian машинка имеет доступ только в интернет
## Топология сети
Возьмем топологию из предыдущего практического задания

## Настройка инфраструктуры
Запустим Firewall

Настроим сабинтерфейсы на Firewall

Зайдем в веб-версию и изменим названия сабинтерфейсов


Изменим правила Firewall


Настроим Kali-MITM
`nano /etc/network/interfaces`
`apt update`
`apt install bridge_utils`



Настроим Debian


Настроим Kali Linux

Win7


Настроим Switch

## Атака на DHCP
Установим yersinia
`apt install yersinia`
Запустим
`yersinia -G`
Выберем вкладку DHCP, введем MAC адрес

MAC адрес берем из таблицы Switch

Выберем отправку DISCOVER пакетов

Запустим

Видим отправленные пакеты на eth1 Firewall

### DHCP Starvation
Проведем атаку
`python starvit.py -i eth0 -net 192.168.1.0/24 -start 1 -end 254 -dst_mac 50:00:00:05:00:01`

Видим в Wireshark трафик

Таблица DHCP Leases в Firewall заполняется

### Защита от DHCP Starvation
Настроим Switch
`int e0/3`
`switchport mode access`
`switchport port-security`
`switchport port-security maximum 5`
`switchport port-security violation restrict`
`switchport port-security mac-address sticky`

Запустим атаку

Видим, что Wireshark не ловит ненужные пакеты

Switch блокирует пакеты

В DHCP Leases нет ненужных записей

### Защита от Rogue DHCP Server
Прописываем на интерфейс e0/0 в Switch
`ip dhcp snooping trust`
А на остальные
`ip dhcp snooping limit rate 15`

## VLAN Hopping
Добавим сабинтерфейсы на Kali-MITM
`nano /etc/network/interfaces`

Видим трафик из VLAN 10


Видим трафик из VLAN 20

### Защита от VLAN Hopping
Атака возможна только в тех случаях, когда интерфейсы настроены в режиме транка. Интерфейс e0/0 был ранее настроен в режим транка. Чтобы защититься, нужно проверить, что порты не настроены на автоматическую работу в режиме транка, а также отключить протокол DTP на порте с помощью `switchport nonegotiate`.

## CAM-table overflow
Посмотрим таблицу MAC адресов на свитче
`show mac address-table`

Запустим атаку с Kali Linux (порт eth1, т.к. на eth0 стоит защита от переполнения - portsecurity)

Видим, что таблица забилась MAC адресами

### Защита от CAM-table overflow
Настроим свитч
`int e1/0`
`switchport mode access`
`switchport port-security`
`switchport port-security maximum 5`
`switchport port-security violation restrict`

Посмотрим таблицу MAC адресов до атаки

Запустим атаку

Видим блокировку MAC адресов на свитче

Посмотрим таблицу MAC адресов

## MAC-spoofing
Добавим две новые Kali Linux машины в топологию

Посмотрим таблицу MAC адресов на свитче, видим, что на каждом порте свой адрес

Прописываем MAC адрес атакуемого устройства (Linux) на Linux-Attack

В таблице коммутации видим, что MAC адрес атакуемого устройства у порта атакующего

Посмотрим IP жертвы

Для проверки пропингуем жертву с Kali-MITM и перехватим трафик на Linux-Attack с помощью Wireshark

Видим трафик для жертвы на Linux-Attack

В таблице коммутации видим, что запись с фактическим MAC адресом атакующего устройства отсутствует

### Защита от MAC-spoofing
Защитим с помощью port-security
`int e1/1`
`switchport mode access`
`switchport port-security`
`switchport port-security mac-address 0050.0000.0700`

Посмотрим таблицу MAC адресов до атаки

После подмены MAC адреса в таблице коммутации отсутствует поддельный адрес и порт Linux-Attack, защита осуществлена

## Настройка ACL
Топология сети

Настроим интерфейсы на свитче

Настроим интерфейсы на роутере

Настроим выход в интернет и NAT на роутере

Настроим выход в интернет на Kali Linux

Проверим

Настроим выход в интернет на Win7

Проверим

Настроим выход в интернет на Debian


Проверим

Для выполнения первого пункта задания по ACL установим nginx на Debian
`apt update`
`apt install nginx`

Проверим с Win7, что наш сервер работает

Настроим ACL

Повесим ACL на e0/0.20

Пробуем зайти с Win7 - работает

Пробуем зайти с Kali Linux - не получается, все правильно

При этом пинг работает

Сделаем ACL для данного условия
`Win-7 машинка имеет доступ только в интернет и в VLAN-1`

Пробуем пинговать с Win7. Доступ есть к интернету и VLAN 1


Сдалем ACL для данного условия
`Debian машинка имеет доступ только в интернет`

Проверим

Конфигурация ACL на роутере
