# Практика №6. OpenVPN L2 - туннелирование
Инфраструктура взята из прошлой лабораторной работы, только убран в этот раз Linux-OpenVpn, так как он уже не нужен.

Так же остались все те же настройки интерфейсов ens3, ens4 и моста br0 на Debian. Так же на Kali Linux уже скачан Openvpn и создан файл, плэтому можно не создавать новый.
Для начала нужно перейти в настройки сервера командой:
`sudo nano /etc/openvpn/server.conf`

Закомментируем dev tun и выставим dev tap, так как это нужно для OpenVpnL2.
**tun** - интерфейс работает на уровне сетевого уровня (L3). используется для маршрутизации IP-пакетов между виртуальными сетевыми устройствами и физическими сетевыми устройствами, такими как сетевые адаптеры.
**tap** - интерфейс работает на уровне канального уровня (L2) в стеке протоколов TCP/IP. Используется для эмуляции сетевых устройств, таких как Ethernet-адаптеры, и позволяет приложениям работать с сетевыми пакетами, как если бы они были отправлены и получены через реальный Ethernet-адаптер.
Остальное остается без изменений.

Перезапускаем Openvpn, чтобы настройки применились.

Так же необходимо настроить файл клиента. В нем так же прописываем интерфейс tap, а остальное не трогаем. Сохраняем.

Скопируем и перемименуем старый конфигурационный файл сервера, чтобы не путаться.

Затем нужно поменять название нашего Debian устройства. Для этого откроем файл командой `nano /etc/hosts` и переименуем в Debian-RPI4.

Так же изменим имя локальной машины с помощью `nano /etc/hostname`.

Затем нужно обновить репозиторий и установить openvpn. Делаем это командой:
`apt update -y && apt install openvpn -y`

Далее передаем файл клиента с Kali Linux на Debian машинку командой:
`scp user@192.168.186.130:/home/user/client.ovpn /etc/openvpn/client.conf`
**scp (secure copy)** - позвоялет безопасно файлы и каталоги.
**192.168.186.130** - Ip-адрес Kali Linux.
**user** - Имя пользователя Kali Linux.
**/home/user/client.ovpn** - файл, который будем забирать.
**/etc/openvpn/** - куда он будет передан.

Откроем файл и убедимся, что успешно его получили.

Затем запускаем openvpn командой:
```
openvpn /etc/openvpn/client.conf
```

Открываем новое окно и проверяем, что интерфейс tap0 появился.

Затем открываем файл интерфейсов командой `nano /etc/network/interfaces` и добавляем туда интерфейс tap0.

Затем перезапускаем сеть.

После этого можно убедиться, что появился наш интерфейс tap0 с ip 10.8.0.2.

Далее установим tcpdump, который в дальнейшем понадобится.

На Kali Linux так же появился интерфейс tap0 с ip 10.8.0.1, а еще уберем файл клиента и перезапустим Openvpn.

Так же перезапустим нашу Debian-машинку.

Нужно настроить интерфейс, чтобы он постоянно был активным, чтобы с перезапуском системы он не перезапускался. Его нужно внести в настройки /etc/network/interfaces/ в bridge_ports.

После этого вернемся на Kali Linux и запустим tcpdump командой `sudo tcpdump -i tap0` для прослушки туннеля. Можно увидеть, что была передана информация о коммутаторе.

Та же увидеть протокол **DTP** (Dynamic Trinking Protocol) -проприетарный сетевой протокол канального уровня, разработанный компанией Cisco для реализации транкинговой системы для связи в сети VLAN между двумя сетевыми коммутаторами и для реализации инкапсуляции.

Как видно, интерфейс tap0 получил свой ip-адрес по dhcp.

Можно пропинговать ip-адрес фаерволла и убедиться, что он его спокойно пингует.

Так же можно успешно зайти на сайт pfsense.
