<h1>Практика №5-6. OpenVPN L3-L2 - туннелирование</h1> Задание: Организация OpenVPN L3 тоннеля вовнутрь инфраструктуры Выполнение задания: В первую очередь обновим репозитории на нашем OpenVpn сервере командой `sudo apt update` ![](https://i.imgur.com/ySxRhGW.png) Скачиваем angristan с гитхаба `git clone https://github.com/angristan/openvpn-install.git` `chmod +x openvpn-install.sh` ![](https://i.imgur.com/RQ7i1j4.png) Теперь запускаем скрипт `openvpn-install.sh` ![](https://i.imgur.com/zgRQnhb.png) Оставляем все настройки по умолчанию и создаём клиента с именем user без пароля ![](https://i.imgur.com/8et8LR6.png) Проверяем наш сервер с помощью команды `ss -tunlp`: ![](https://i.imgur.com/1fPzc4S.png) Теперь заходим в конфигурацию `sudo nano /etc/openvpn/server.conf` Комментируем следующие строчки: ![](https://i.imgur.com/1TbKu9L.png) Перезапускаем сервис openvpn ![](https://i.imgur.com/A8C7zOo.png) Переходим в конфиг клиента командой `sudo nano client.ovpn` и комментируем следующие строчки: ![](https://i.imgur.com/dWT8Hyg.png) Настройка клиента: Переходим в настройки интерфейсов нашего Debian-клиента: ![](https://i.imgur.com/cfNDxoY.png) Меняем название хоста в конфиге `sudo nano /etc/hosts` и `sudo nano /etc/hostname`: ![](https://i.imgur.com/TWSliKi.png) ![](https://i.imgur.com/Acfz6vn.png) Перезапускаем машинку На клиенте обновляем репозитории с помощью команды `sudo apt ipdate -y`, после чего устанавливаем openvpn командой `sudo apt install openvpn -y` ![](https://i.imgur.com/Gk0BRoB.png) Используя протокол scp заберём файл с openvpn сервера на клиент командой `scp user@192.168.75.142:/home/user/client.ovpn /etc/openvpn/client.conf`: ![](https://i.imgur.com/3n5CHpN.png) Проверяем наличие файла в указанной ранее директории `sudo nano /etc/openvpn/client.conf`: ![](https://i.imgur.com/q27efQB.png) Запускаем openvpn с полученным файлом командой `sudo openvpn /etc/openvpn/client.conf` ![](https://i.imgur.com/2lhJnLw.png) Теперь мы имеем доступ к клиенту с сервера и можем например его пропинговать: ![](https://i.imgur.com/EzGAxA0.png) Также проверим поступление трафика через tcpdump: ![](https://i.imgur.com/l7rysNT.png) Теперь сообщим серверу путь в корпоративную сеть: ![](https://i.imgur.com/UFhimuf.png) Перезапустим openvpn командой `sudo service openvpn restart` Теперь переподключаемся к серверу на клиенте: ![](https://i.imgur.com/1krsys7.png) Добавляем статический маршрут до сети командой `sudo ip route add 192.168.1.0/24 via 10.8.0.2` ![](https://i.imgur.com/bf3c0Je.png) Теперь с помощью tcpdump отслеживаем трафик с клиента: ![](https://i.imgur.com/dl8019K.png) Как видим, пинг не проходит, однако на стороне клиента отображается Для того, чтобы это исправить заходим в конфиг на клиенте `sudo nano /etc/sysctl.conf` и подключаем следующую строку: ![](https://i.imgur.com/zOKE8Dp.png) После этого всё также на клиенте вводим команду `sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE` и перезапускаем сервис openvpn ![](https://i.imgur.com/gBq2tTk.png) Теперь мы имеем доступ к фаерволлу внутренней инфраструктуры: ![](https://hackmd.io/_uploads/SktZhaGEh.png) ![](https://hackmd.io/_uploads/rk3_3pfN3.png) **OpenVPN L2** Отредактируем server.conf: ![](https://hackmd.io/_uploads/rkxmVTzNn.png) Перезагружаем openvpn и делаем то же самое на Debian ![](https://hackmd.io/_uploads/HJt0FpfE3.png) В интерфейсах добавим tap0 (`sudo nano /etc/network/interfaces`): ![](https://hackmd.io/_uploads/BJZX96fVn.png) Настроим bridge и включим интерфейс tap0: ![](https://hackmd.io/_uploads/B1ONjpfE2.png) Получим ip адрес по dhcp на интерфейс tap0 на Kali с помощью команды `sudo dhclient tap0`: ![](https://hackmd.io/_uploads/r1_jopMNn.png) ![](https://hackmd.io/_uploads/r1lyy2pzVn.png) ![](https://hackmd.io/_uploads/H1gO2aMVh.png) Настройка Vlan'ов: ![](https://hackmd.io/_uploads/Sy5_G6Q4h.png) ![](https://hackmd.io/_uploads/r1FgmaQ42.png)