# Атака на сеть через VPN соединение L3
1. Создание VPN сервера
***VPN сервер будет развернут на базе ОС Linux***
*Обновление пакетов, установка curl, git*
```bash=
sudo apt update && sudo apt upgrade
sudo apt install curl git
```
***Настройка OpenVPN сервера***
*Cкачивание и запуск скрипта для настройки OpenVPN*
```bash=
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
```
*Установка внутреннего IP адреса сервера*

*Установка внешнего IP адреса*

(Внешний IP адрес совпадает с внутренним в связи с развертыванием сервера внутри EVE NG, при развертывании на отдельном устройстве необходимо указать внешний IP адрес)
*Установка IPv6*

(В случае использования IPv6 указать "`Y`")
*Установка порта*

(В случае использования другого порта выбрать соответствующие пункты: 2 - пользовательский порт. 3 - произвольный порт в диапазоне от 49152 до 65535)
*Установка протокола передачи*

*Установка DNS*

*Использование компрессии*

(устанавливается по необходимости)
*Настройки кодирования*

(устанавливается по необходимости)
*Создание пользователя*

(При необходимости задается пароль пользователя выбором пункта меню - `2`)
*Редактирование рользовательского конфигурационного файла `User_1.ovpn`*
Необходимо закоментировать следующие строки для корректной работы
```bash=
explicit-exit-notify
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
```
*Редактирование конфигурационного файла сервера OpenVPN*
`/etc/openvpn/server.conf`
Необходимо закоментировать следующие строки для корректной работы
```bash=
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "redirect-gateway def1 bypass-dhcp"
```
(Данные параметры необходимы в случае добавления клинту дополнительных опций)
```bash=
client-to-client
```
(Добавление данной опции позволяет клиентам "видеть" друг друга в сети)
3. Подключение к VPN серверу
*Установка подключения к OpenVPN*
```bash=
openvpn --config filename.ovpn
```
*filename* - название конфигурационного файла для подключения
4. Атака на сеть через OpenVPN
*Узнаем IP адрес внутренней сети*
Получаем IP адрес нужного клиента OpenVPN, на сервере OpenVPN выполняем команду
```bash=
tail /vap/log/openvpn/status.log
```

Подключаемся к нему по ssh и выводим список подключений
```bash=
ssh root@10.8.0.3
ip a
```
Для маршрутизации трафика через клиента OpуnVPN необходимо на сервере OpenVPN создать в папке `/etc/openvpn/ccd` файл с именем файла клиента, но без расширения и прописать там строку
```bash=
iroute 192.168.1.0 255.255.255.0
```
Выполнить переподключение к OpenVPN серверу
*Прописываем маршрут через клиента OpenVPN во внутреннюю сеть*
На атакующем компьютере добавляем маршрут для доступа к внутренней сети
```bash=
ip route add 192.168.1.0/24 via 10.8.0.3 dev tun0
```
*Проверка работоспособности*
```bash=
ping 192.168.1.113
```
