---
# System prepended metadata

title: 'Практика №5-6. Проникновение за периметр инфраструктуры. OpenVPN L3, L2 Tunneling'

---

# Практика №5-6. Проникновение за периметр инфраструктуры. OpenVPN L3, L2 Tunneling 

## Инфраструктура

- Kali-2022 - 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 - Linux Debian 10 (1CPU, 1GB RAM)
- Debian(OClient) - 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

![](https://i.imgur.com/CrVWApY.png)

## Просмотр IP конфигураций устройств
Kali22 -

![](https://i.imgur.com/FUvYXRP.png)

FW-pfsense -

![](https://i.imgur.com/qKUnnvM.png)

Debian -

![](https://i.imgur.com/d3WZnXs.png)

Debian(OClient) -

![](https://i.imgur.com/ImOqPzN.png)

Win10 -

![](https://i.imgur.com/CbnGxN4.png)

## OpenVPN L3 Tunneling 

### Установка и запуск OpenVPN на Kali22 и Debian(OClient)

**Kali22:**

```
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh
```

![](https://i.imgur.com/xkDID9a.png)

Видим что openvpn работает:

![](https://i.imgur.com/iis20px.png)

Далее зайдем в конфиг openvpn сервера и сделаем так, чтобы он не применял DNS к устройству и не делал Kali22 дефолтным роутером:

`sudo nano /etc/openvpn/server.conf`

![](https://i.imgur.com/2vMOeYi.png)

Теперь изменим файл client.ovpn, сделаем так, чтобы не блочились DNS:

`sudo nano client.ovpn`

![](https://i.imgur.com/oPaWTVx.png)

Так же включим SSH сервис, если он выключен:

`sudo systemctl start ssh.service`

![](https://i.imgur.com/kNSfua9.png)

Еще у нас появился новый tun0 интерфейс:

![](https://i.imgur.com/gb3uosT.png)

Теперь добавим маршрут для клиента в самом openvpn:

```
cd /etc/openvpn/ccd
nano client
```

В файле добавляем маршрут:

iroute 192.168.1.0 255.255.255.0

После перезагружаем openvpn сервис:

`service openvpn restart`

Так же необходимо добавить маршрут до внутренней сети Debian:

`ip route add 192.168.1.0/24 via 10.8.0.2`

![](https://i.imgur.com/qYgskWK.png)

**Debian(OClient):**

Для начала установим openvpn:

`sudo apt install openvpn`

Скачаем файл client.conf с Kali22 с помощью протокола scp и переместим его в /etc/openvpn/

`sudo scp user@172.68.25.134:/home/user/client.ovpn /etc/openvpn/client.conf`

![](https://i.imgur.com/Ecdamg5.png)

И видим, что файл передался:

![](https://i.imgur.com/ZPCnvNC.png)

Далее включим роутинг:

Расскоментируем строчку net.ipv4.ip_forward=1 в файле sysctl.conf

`sudo nano /etc/sysctl.conf`

![](https://i.imgur.com/cbVIhxK.png)

Теперь можем подключиться, используя наш файл конфигурации client.conf:

`sudo openvpn /etc/openvpn/client.conf`

![](https://i.imgur.com/YEt8oHs.png)

Еще сделам так, чтобы с интерфейса ens3 трафик NAT-ился:

`iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE`

Видим, что у нас появился новый tun0 интерфейс:

![](https://i.imgur.com/MCuT3r6.png)

### Проверка пинга до фаервола от Kali22

**Debian(OClient):**

Установим tcpdum для анализа трафика на нашей tun0 интерфейсе:

`sudo apt install tcpdump`

Запустим tcpdump на tun0 интерфейс:

`sudo tcpdump -i tun0`

**Kali22:**

Сначала пропингуем 10.8.0.2, затем 192.168.1.1:

`ping <IP>`

![](https://i.imgur.com/sksLPog.png)

Видим что все пингуется!

На Debian(OClient) можем увидеть вывод tcpdump:

![](https://i.imgur.com/saXZodp.png)

Теперь мы можем подключиться к фаерволу:

![](https://i.imgur.com/BDeW5d2.png)

## OpenVPN L2 Tunneling 

**Kali22**

Для начала скопируем файл конфигурации server.conf и переименуем его в server.conf.l3, для того чтобы не потерять старую конфигурацию:

```
cd /etc/openvpn
cp server.conf server.conf.l3
```

Настроим файл server.conf так, чтобы внутри тоннеля передавались не IP пакеты, а Ethernet фреймы:

sudo nano /etc/openvpn/server.conf

Заккоментируем строчку dev tun, после добавим строчку dev tan:

![](https://i.imgur.com/i24UAes.png)

И перезапускаем openvpn:

`service openvpn restart`

И видим tap0 интерфейс:

![](https://i.imgur.com/UVdjRKp.png)

**Debian**

Как и с OpenVPN L3, скачиваем openvpn, и через scp протокол получаем конфиг client.conf

Далее неободимо отредактировать этот конфиг:

sudo nano /etc/openvpn/client.conf

![](https://i.imgur.com/hguzWNH.png)

После этого перезапустим openvpn:

`sudo service openvpn restart`

Подключаемся по openvpn:

`sudo openvpn /etc/openvpn/client.conf`

В идим tap0 интерфейс:

![](https://i.imgur.com/l17DlGl.png)

Так же необходимо добавить этот tap0 интерфейс к нашему бриджу, для этого отредактируем файл /etc/network/interfaces:

![](https://i.imgur.com/mBbFDuK.png)

Теперь перезапустим сеть:

`service networking restart`

Увидим что нас tap0 интерфейс находится в бридже:

![](https://i.imgur.com/VFN0oEQ.png)

Теперь зайдя на Kali22, включив tcpdump на tap0 интерфейсе, мы увидим уже не IP пакеты, а фреймы:

`tcpdump -i tap0 -e vlan`

![](https://hackmd.io/_uploads/B198yqrNh.png)

Так же мы можем получить dhcp адрес для tap0:

`dhclient tap0`

![](https://i.imgur.com/pLcRnK3.png)

Теперь мы можем пропинговать фаервол(192.168.1.1):

![](https://i.imgur.com/SFKQzL5.png)




