<h1>Практика №5-6. OpenVPN L3-L2 - туннелирование</h1>
Задание: Организация OpenVPN L3 тоннеля вовнутрь инфраструктуры
Выполнение задания:
В первую очередь обновим репозитории на нашем OpenVpn сервере командой
`sudo apt update`

Скачиваем angristan с гитхаба
`git clone https://github.com/angristan/openvpn-install.git`
`chmod +x openvpn-install.sh`

Теперь запускаем скрипт `openvpn-install.sh`

Оставляем все настройки по умолчанию и создаём клиента с именем user без пароля

Проверяем наш сервер с помощью команды `ss -tunlp`:

Теперь заходим в конфигурацию
`sudo nano /etc/openvpn/server.conf`
Комментируем следующие строчки:

Перезапускаем сервис openvpn

Переходим в конфиг клиента командой `sudo nano client.ovpn` и комментируем следующие строчки:

Настройка клиента:
Переходим в настройки интерфейсов нашего Debian-клиента:

Меняем название хоста в конфиге `sudo nano /etc/hosts` и `sudo nano /etc/hostname`:


Перезапускаем машинку
На клиенте обновляем репозитории с помощью команды `sudo apt ipdate -y`, после чего устанавливаем openvpn командой `sudo apt install openvpn -y`

Используя протокол scp заберём файл с openvpn сервера на клиент командой `scp user@192.168.75.142:/home/user/client.ovpn /etc/openvpn/client.conf`:

Проверяем наличие файла в указанной ранее директории `sudo nano /etc/openvpn/client.conf`:

Запускаем openvpn с полученным файлом командой `sudo openvpn /etc/openvpn/client.conf`

Теперь мы имеем доступ к клиенту с сервера и можем например его пропинговать:

Также проверим поступление трафика через tcpdump:

Теперь сообщим серверу путь в корпоративную сеть:

Перезапустим openvpn командой `sudo service openvpn restart`
Теперь переподключаемся к серверу на клиенте:

Добавляем статический маршрут до сети командой `sudo ip route add 192.168.1.0/24 via 10.8.0.2`

Теперь с помощью tcpdump отслеживаем трафик с клиента:

Как видим, пинг не проходит, однако на стороне клиента отображается
Для того, чтобы это исправить заходим в конфиг на клиенте `sudo nano /etc/sysctl.conf` и подключаем следующую строку:

После этого всё также на клиенте вводим команду `sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE` и перезапускаем сервис openvpn

Теперь мы имеем доступ к фаерволлу внутренней инфраструктуры:


**OpenVPN L2**
Отредактируем server.conf:

Перезагружаем openvpn и делаем то же самое на Debian

В интерфейсах добавим tap0 (`sudo nano /etc/network/interfaces`):

Настроим bridge и включим интерфейс tap0:

Получим ip адрес по dhcp на интерфейс tap0 на Kali с помощью команды `sudo dhclient tap0`:



Настройка Vlan'ов:

