# **Практика №5. OpenVPN L3 - туннелирование** ## **Подготовка стенда. Tunneling L3** Инфраструктуру взял из практической работы №3, но добавил к инфраструктуре ещё одну Debian-машинку, выступающую в виде **OVPN L3-client**. В этой практической работе используется технология OpenVPN. **OpenVPN** - это одна из самых распространенных реализаций технологии VPN, которую, используют для организации доступа к внутренним корпоративным сетям. По сравнению с другими протоколами (например, SSTP, Wireguard, SoftEther) он более удобный, эффективный, надёжный и стабильный. Распространяется с открытым исходным кодом. **VPN (Virtual Private Network)** - технология для построения виртуальной сети поверх физической. По сути, это виртуальная сеть, образованная путём установления туннелей (туннельных соединений) между выбранными узлами. ![](https://i.imgur.com/dcu8pQR.png) <center>Рисунок 1. Инфраструктура</center> Перезапустил (reboot) Debian-машинку, прописал **ip a** и посмотрел есть ли **br0** интерфейс с 4 практики, он есть, всё хорошо, даже пингует ya.ru (рис. 1.1). На OpenVPN L3-srv (Kali) я загрузил скрипт **angristan/openvpn-install** (рис. 1.3). Это скрипт для быстрой установки openvpn для Debian, Ubuntu, Fedora, CentOS, Arch Linux, Oracle Linux, Rocky Linux and AlmaLinux **Команда для загрузки скрипта**: curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh chmod +x openvpn-install.sh - дает права на выполнение скрипта **Команда для запуска скрипта**: ./openvpn-install.sh На рисунке 1.6 показана настройка **br0** интерфейса. Я ens3 и ens4 объединил в один интерфейс, чтобы они между собой пропускали трафик так как делает это коммутатор. ![](https://i.imgur.com/pefzP7D.png) <center>Рисунок 1.1. ping ya.ru </center> ![](https://i.imgur.com/SA9Amcu.png) <center>Рисунок 1.2 ip адрес kali</center> ![](https://i.imgur.com/3KnArt4.png) <center>Рисунок 1.3. Подгружён скрипт</center> ![](https://i.imgur.com/oHUCPyw.png) <center>Рисунок 1.4. Настройка server.conf</center> ![](https://i.imgur.com/lbGchBY.png) <center>Рисунок 1.5. Настройка nano clietn.ovpn</center> ![](https://i.imgur.com/OR9g0w2.png) <center>Рисунок 1.6. Настройка Debian-RPi4</center> ![](https://i.imgur.com/fxxN4q5.png) <center>Рисунок 1.7. Получил br0 интерфейс</center> ![](https://i.imgur.com/JiIhDwF.png) <center>Рисунок 1.8. Включение ssh и создание пароля для подключения</center> ![](https://i.imgur.com/MkVcU3Q.png) <center>Рисунок 1.9. Добавление br0 интерфейса на tap0</center> ![](https://i.imgur.com/EFb0qrZ.png) <center>Рисунок 1.10. Получил ip на tap0</center> --- На Debian-RPi4 загрузил openvpn с помощью команды **apt install openvpn**. С помощью команды **openvpn /etc/openvpn/client.conf** установил соединение с машинкой, на которой стоит openvpn server (рис 3), получил **ip 10.8.0.2** на **tun0** интерфейсе и на машинке с сервером пропинговал 10.8.0.2 (рисунок 3.1), а так же подключился к Debian-машинке 10.8.0.2, фактически я с Kali linux (OpenVPN L3-srv) могу подключиться к Linux-VPN-client (OpenVPN-L3 Client), а значит есть доступ до всей инфраструктуры. ![](https://i.imgur.com/ug0yU35.png) <center>Рисунок 2. scp clietn.ovpn</center> ![](https://i.imgur.com/SzvrCMQ.png) <center>Рисунок 3. Установлено соединение</center> ![](https://i.imgur.com/qDVtMeT.png) <center>Рисунок 3.1. ping 10.8.0.2</center> Следующим шагом практической работы пингую FW. На рисунке 4 видны ip FW (WAN, LAN), а на рисунке 4.1. я пингую внутренний ip FW - LAN. ![](https://i.imgur.com/UHloWLb.png) <center>Рисунок 4. FW: WAN, LAN</center> ![](https://i.imgur.com/bjBfcK9.png) <center>Рисунок 4.1. ping LAN</center> --- ## **Linux-VPN-client** Всё то же самое настраиваю на машинке Linux-VPN-client, надо было сразу с ней работать, а не с RPi4. На рисунке 5 видны ip на этой машинке. На рисунке 5.1. показано, что я с vpn client подключился к ovpn server и передал файл client.ovpn. С помощью команды **openvpn /etc/openvpn/client.conf** установил соединение с машинкой, на которой стоит openvpn server (рис. 5.2.). Пропинговал tun0 интерфейс с помощью команды **ping 10.8.0.2** и на рисунке 5.3. видно, что я посмотрел с помощью tcpdump какие пакеты "прилетают" на этот интерфейс. Команда **tcpdump -i tun0**. На рисунке 5.4. видно, что я прописал параметр, который говорил, что за клиентом есть сетка. На рисунке 5.6. показаны **ip a** и **ip routing** на kali linux. Я сделал туннель, чтобы можно было через kali linux через openvpn L3 подключиться к любой из машинок в инфраструктуре. ![](https://hackmd.io/_uploads/Hk3WmowN2.png) <center>Рисунок 5. ip a</center> ![](https://hackmd.io/_uploads/ryCCVjPV3.png) <center>Рисунок 5.1. Подключился к OpenVPN L3-srv</center> ![](https://hackmd.io/_uploads/H1YFrowNn.png) <center>Рисунок 5.2. Соединение установлено</center> ![](https://hackmd.io/_uploads/HkduUowE3.png) <center>Рисунок 5.3. Идёт ping tun0 интерфейса</center> ![](https://hackmd.io/_uploads/SkWnkTvE3.png) <center>Рисунок 5.4. nano client</center> ![](https://hackmd.io/_uploads/HydWQpP4h.png) <center>Рисунок 5.5. Разрешил routing</center> ![](https://hackmd.io/_uploads/SJb9mTvV3.png) <center>Рисунок 5.6. ip a, ip routing</center> ![](https://hackmd.io/_uploads/SkGIE0DEn.png) <center>Рисунок 5.7. Пинги</center>