## Задание к практической работе №5
* организация OpenVPN L3 туннеля вовнутрь инфраструктуры
* организация OpenVPN L2 туннеля вовнутрь инфраструктуры
## Инфраструктура организации:
- Kali-2021 - Linux Kali 2021 (2CPU, 2GB RAM)
- FW-pfsense - PfSense Firewall 2.5.2, default config (Qemu version 4.1.0, 2CPU, 2GB RAM)
- Switch - Cisco IOL-L2 (2 port-groups)
- Debian-RPi4 - Linux Debian 10 (1CPU, 1GB RAM)
- Win-10 - Windows 10 (full) (2CPU, 2GB RAM)
- Win-7 - Windows 7 (full) (QEMU 2.12, 4CPU, 4GB RAM)
- Network:
- Pfsense Default config (WAN-DHCP, LAN - static IP)
- Internet - Cloud-1
- VLAN-10 - 172.16.10.0/24, GW 172.16.10.254
- VLAN-10 - 172.16.20.0/24, GW 172.16.20.254

## OpenVPN L3
На kali обновим репозиторий с помощью sudo apt update
Затем развернем на Kali OpenVPN сервер. Скачаем его с https://github.com/angristan/openvpn-install

Перейдем в файл /etc/openvpn/server.conf
закомментируем следующте поля

перезапускаем сервер с помощью команды service openvpn restart
Перейдем в файл client.ovpn
закомментируем следующие строчки

Настроим интернет на Linux-VPN-Client

Обновим репозиторий с помощью команды apt update
Скачиваем openVPN с помощью команды apt install openvpn
Перекинем по scp файл client.ovpn с Kali

Подключимся к серверу c помощью команды openvpn /etc/openvpn/client.conf
В Kali создадим файл /etc/openvpn/ccd/*название имени профиля openvpn*
Добавим сеть

В Kali добавим статический маршрутизация. Будем перенаправлять запросы к 192.168.1.0/24 на 10.8.0.2.

Перезапустим openvpn сервер service openvpn restart
В Linux-VPN-Client перейдем в /etc/sysctl.conf
выставим net.ipv4.ip_forward=1
Настроим nat
iptables -t nat -A POSTROUTING -o ens3 -j MASQURADE
Проверим.

## OpenVPN L2
Для создания туннеля на уровне L2 поменяем настройки в файле /etc/openvpn/server.conf
Изменим dev tun на dev tap

поменяем настройки в файле /etc/openvpn/client.conf
Изменим dev tun на dev tap

Подключимся к серверу c помощью команды openvpn /etc/openvpn/client.conf
Добавим tap0 в bridge
brctl addif br0 tap0

Теперь на Kali можем получить ip адрес по dhcp
dhclient tap0
Проверим.

## Автозапуск
Для автозапуска создадим скрипт
напишем в нем sudo brctl addif br0 tap0

сделаем файл исполняем
chmod +x script.sh

зайдем в crontab с помощью команды crontab -e
напишем строчку @reboot sleep \*время в секундах после запуска\* && /root/script.sh
@reboot - означает, что скрипт будет запускаться при запуске
sleep \*время в секундах\* - означает, сколько скрипт будет ожидать после запуска.
