---
# System prepended metadata

title: Практическая работа №5 "OpenVPN L3 - туннелирование"

---

# Практическая работа №5 "OpenVPN L3 - туннелирование"


Выполнил студент группы БСБО-04-20: Люцько С.А.

Проверил преподаватель: Садыков Ильдар Венерович

**Москва 2023г.**



---
**Построим следующую топологию:**

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


---


## Подготовительные действия:

*  **Настроим устройство Debian-RPi4 как "мостовое"**
1. Настроим подключение к интернету:
```
nano /etc/network/interfaces
```
Устанавливаем следующие настройки:
![](https://i.imgur.com/MnUKvAD.png)

Сохраняем файл и через консоль перезапускаем networking:
```
service networking restart
```

2. Установим bridge-utils (в диалоговом окне выбираем пункт по умолчанию):
```
apt update -y && apt upgrade -y && apt install bridge-utils -y
```

3. Настроим "мост":
```
nano /etc/network/interfaces
```
Устанавливаем следующие настройки:
![](https://i.imgur.com/Dcas5QD.png)

Сохраняем файл и через консоль перезапускаем networking:
```
service networking restart
```

* **Настроим Vlan'ы на pfSense:**
1. Смотрим внутренний IP адрес pfSense:
![](https://i.imgur.com/IqU6Ilf.png)
LAN: 192.168.1.1

2. Подключаемся по нему с устройства из локальной сети для настройки:
![](https://i.imgur.com/WJ3itHC.png)

3. Создадим Vlan'ы:
Interfaces -> Assignments -> VLANs -> Add
![](https://i.imgur.com/NCFRDKu.png)
![](https://i.imgur.com/5te3vjI.png)

4. Привяжем к ним интерфейсы:
Interfaces -> Assignments -> Interface Assignments -> Add
![](https://i.imgur.com/ubJbhUO.png)

5. Настроим новые интерфейсы:
Interfaces -> Assignments -> Interface Assignments -> {Название интерфейса}
![](https://i.imgur.com/meuXBUz.png)
![](https://i.imgur.com/kXVwUyr.png)
![](https://i.imgur.com/6eDheKc.png)
![](https://i.imgur.com/2UChuS7.png)

6. Создадим для них правила:
Firewall -> Rules -> {Название интерфейса} -> Add
![](https://i.imgur.com/7fIEy6M.png)
![](https://i.imgur.com/BsR2COu.png)

7. Включим DHCP сервер для новых интерфейсов:
Services -> DHCP Server -> {Название интерфейса}
![](https://i.imgur.com/VgP2pV4.png)
![](https://i.imgur.com/yMmeuun.png)
![](https://i.imgur.com/RelFoqe.png)
![](https://i.imgur.com/xi0Vu2q.png)

* **Настроим Vlan'ы на коммутаторе:**
```
ena
conf t
vlan 10
vlan 20
exit
int e0/2
switchport mode access
switchport access vlan 10
int e0/3
switchport mode access
switchport access vlan 20
int e0/0
switchport trunk encapsulation dot1q
switchport mode trunk
exit
exit
wr
```

* Проверим полученные IP адреса и доступ в интернет на устройствах Win7 и Win10:
**Win7:** 172.16.10.3
![](https://i.imgur.com/AG64N5Y.png)
**Win10:** 172.16.20.5
![](https://i.imgur.com/lOzccXB.png)


---


## Выполнение задания:
* **Включим SHH на устройстве Kali-2022 и узнаем его IP адрес:**
```
sudo -i
sevice ssh start
systemctl enable ssh
ip a
```
![](https://i.imgur.com/XohKdTX.png)

**IP адрес (Kali-2022):** 192.168.10.129

* **Подключимся с основного компьютера по SSH к Kali-2022:**
```
ssh user@192.168.10.129
```

* **Установим на Kali-2022 скрипт для развертывания OpenVPN сервера:**
```
sudo apt update -y
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
```
Результат:
![](https://i.imgur.com/JWyFbKz.png)


* **Запусим установленный скрипт:**
```
sudo ./openvpn-install.sh
```
Выбираем следующие параметры:
![](https://i.imgur.com/veIbFXN.png)
![](https://i.imgur.com/d9mICoS.png)
![](https://i.imgur.com/0lHV5Nq.png)
![](https://i.imgur.com/RntUhmL.png)
![](https://i.imgur.com/AVHpqRA.png)
![](https://i.imgur.com/Q7bqLXe.png)
![](https://i.imgur.com/RDukJ2d.png)
![](https://i.imgur.com/0P39ide.png)
![](https://i.imgur.com/5XCVMEr.png)
![](https://i.imgur.com/skQQlDx.png)

Результат:
![](https://i.imgur.com/uDsUj1V.png)

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

Видим, что теперь на порту 1194 работает процесс OpenVPN.

* **Настроим конфигурацию OpenVPN сервера:**
```
sudo -i
nano /etc/openvpn/server.conf
```
Устанавливаем следующие настройки:
![](https://i.imgur.com/LVd8Qc6.png)

Перезапустим OpenVPN:
```
service openvpn restart
```

* **Настроим клиент:**
```
nano /home/user/client.ovpn
```
Устанавливаем следующие настройки:
![](https://i.imgur.com/8fixXiB.png)

* **Переходим к Linux-VPN-Client:**
Настроим доступ в интернет:
```
nano /etc/network/interfaces
```
Устанавливаем следующие настройки:
![](https://i.imgur.com/BA8pYJZ.png)

Сохраняем файл и через консоль перезапускаем networking:
```
service networking restart
```
* **Установим OpenVPN:**
```
apt update -y && apt install openvpn -y
```
* **Скопируем с Kali-2022 на Linux-VPN-Client файл client.ovpn в формате .conf:**
```
scp user@192.168.10.129:/home/user/client.ovpn ./client.conf
```
Результат:
![](https://i.imgur.com/ZHWTvRx.png)

Перекинем файл client.conf в директорию /etc/openvpn:
```
mv client.conf /etc/openvpn/
```

* **Установим соединение:**
```
openvpn /etc/openvpn/client.conf
```
Результат:
![](https://i.imgur.com/HH4jMRV.png)

**IP адрес туннеля:** 10.8.0.2

Попробуем пропинговать его с Kali-2022:
```
ping 10.8.0.2
```
![](https://i.imgur.com/jVfd8Nv.png)

Попробуем подключиться к нему по SSH:
```
ssh root@10.8.0.2
```
![](https://i.imgur.com/Iql1e86.png)

Будучи подключёнными к Linux-VPN-Client, попробуем пропинговать pfSense:
```
ping 192.168.1.1
```
Результат:
![](https://i.imgur.com/KvRGvp7.png)

А теперь вернёмся к Kali-2022. Пропишем маршрут до локальной сети:
```
sudo -i
ip route add 192.168.1.0/24 via 10.8.0.2
```

Попробуем пропинговать pfSense:
```
ping 192.168.1.1
```
Результат:
![](https://i.imgur.com/r4p7Aps.png)

Не получилось.

Посмотрим, идёт ли трафик через туннель на Linux-VPN-Client.
Для этого сначала установим tcpdump:
```
apt update -y && apt install tcpdump -y
```

Начнём пинговать pfSense с Kali-2022:
```
ping 10.8.0.2
```
![](https://i.imgur.com/3YjAdOa.png)

Теперь же посмотрим трафик на Linux-VPN-Client:
```
tcpdump -i tun0
```
![](https://i.imgur.com/dAwx16q.png)

Трафик не идёт. Дело в том, что для L3 туннелирования необходимо указать для OpenVPN, что за клиентом client есть сеть 192.168.1.0

Для этого идём в настройки OpenVPN на Kali-2022:
```
cd /etc/openvpn/ccd/
```
![](https://i.imgur.com/WZBb0un.png)

Тут необходимо создать файл client, с указанием локальной сети.
```
nano client
```
Устанавливаем следующие настройки:
![](https://i.imgur.com/FG9QenJ.png)


Перезапустим OpenVPN:
```
service openvpn restart
```

На Linux-VPN-Client переподключаем OpenVPN (остановив предыдущую сессию):
```
openvpn /etc/openvpn/client.conf
```

Попробуем заново послушать трафик c Linux-VPN-Client:
```
tcpdump -i tun0
```

Начнём пинговать pfSense с Kali-2022:
```
ping 192.168.1.1
```
![](https://i.imgur.com/IcyJxPg.png)

Прослушка на Linux-VPN-Client выдаёт следующее:
![](https://i.imgur.com/zzy1EHa.png)

Осталось дело за малым. Сперва разрешим маршрутизацию на Linux-VPN-Client:
```
nano /etc/sysctl.conf
```
Изменим следующие настройки:
![](https://i.imgur.com/HOODhdk.png)

И в заключение настроим систему, которая будет NAT'ить трафик на Linux-VPN-Client на ens3:
```
iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
```

Пробуем с Kali-2022 пропиновать pfSense:
```
ping 192.168.1.1
```
![](https://i.imgur.com/FDf0Gou.png)

Успех! Мы получили доступ к pfSense извне, используя OpenVPN L3 туннелирование.

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