# Практическая работа №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)