---
# System prepended metadata

title: 'Практика №5. OpenVPN L3, L2 - туннелирование'

---

## Задание к практической работе №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
![image](https://hackmd.io/_uploads/Sydt2Mtz0.png)


## OpenVPN L3

На kali обновим репозиторий с помощью sudo apt  update

Затем развернем на Kali OpenVPN сервер. Скачаем его с https://github.com/angristan/openvpn-install
![image](https://hackmd.io/_uploads/rJJzxbHMA.png)

Перейдем в файл /etc/openvpn/server.conf
закомментируем следующте поля 
![image](https://hackmd.io/_uploads/HJJW7ZHzA.png)

перезапускаем сервер с помощью команды service openvpn restart

Перейдем в файл client.ovpn
закомментируем следующие строчки
![image](https://hackmd.io/_uploads/rkzx8WHfC.png)



Настроим интернет на Linux-VPN-Client
![image](https://hackmd.io/_uploads/rkj8yEYGR.png)


Обновим репозиторий с помощью команды apt update

Скачиваем openVPN с помощью команды apt install openvpn

Перекинем по scp файл client.ovpn с Kali 
![image](https://hackmd.io/_uploads/BJ7ZPNFfR.png)


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


В Kali создадим файл /etc/openvpn/ccd/*название имени профиля openvpn*
Добавим сеть
![image](https://hackmd.io/_uploads/ByRzbBYzA.png)

В Kali добавим статический маршрутизация. Будем перенаправлять запросы к 192.168.1.0/24 на 10.8.0.2.
![image](https://hackmd.io/_uploads/SJ-vrmBzC.png)

Перезапустим 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

Проверим.
![image](https://hackmd.io/_uploads/ByOZrSYGC.png)


## OpenVPN L2

Для создания туннеля на уровне L2 поменяем настройки в файле /etc/openvpn/server.conf
Изменим dev tun на dev tap
![image](https://hackmd.io/_uploads/ryBu3SFGC.png)

поменяем настройки в файле /etc/openvpn/client.conf
Изменим dev tun на dev tap
![image](https://hackmd.io/_uploads/S1LhxUtGC.png)

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

Добавим tap0 в bridge
brctl addif br0 tap0
![image](https://hackmd.io/_uploads/SycVzIFMC.png)

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


Проверим.
![image](https://hackmd.io/_uploads/ByUNXUtMA.png)
## Автозапуск
Для автозапуска создадим скрипт 
напишем в нем sudo brctl addif br0 tap0
![image](https://hackmd.io/_uploads/ByG5xwjzR.png)

сделаем файл исполняем
chmod +x script.sh
![image](https://hackmd.io/_uploads/H1OWZDiz0.png)

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

@reboot - означает, что скрипт будет запускаться при запуске
sleep \*время в секундах\* - означает, сколько скрипт будет ожидать после запуска.
![image](https://hackmd.io/_uploads/SJF4bvjf0.png)
