# ПРАКТИЧЕСКИЕ РАБОТЫ №5-6. OpenVPN L3-L2 – туннелирование <details><summary>Общая Схема: </summary> ![](https://hackmd.io/_uploads/BJzWBH2E2.jpg) --- </details> ## L3 Для того, чтобы выполнить подключение потребовалось на машине атакующего [поднять openvpn сервер](https://github.com/angristan/openvpn-install), после этого в конфиге отключить DNS, автоматически созданные и дефолт гитвей, тоже самое было проделано с файлом конфигурации клиента; на сервере был указан маршрут до сетки, атакуемых: `ip route 192.168.1.0/24 via 10.8.0.2`, в файле /etc/openvpn/ccd/client была указана сетка с маской. После чего был рестарт службы впн-сервера: `service openvpn@server restart`. После чего конфиг-файл был скачан на клиент, так же на клиенте был установлен openvpn; чтобы vpn-сервер мог ходить внутрь сетки vpn-клиента на клиенте потребовалось включить нет-форвардинг: `echo 1 > /proc/sys/net/ipv4/ip_forward` и указать правило для iptables, в моем случае для br0 интерфейса: `iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE`. После чего с сервера можно получить доступ к устройствам в сетке 192.168.1.0/24. <details> Что видит vpn-клиент при пинге роутера от vpn-сервера (лево – клиент, право – сервер) ![](https://hackmd.io/_uploads/ByFZiN3N3.jpg) --- </details> ## L2 Для того, чтобы разобраться с L2 увронем понадобилось изучить вопрос [TUN и TAP](https://ru.wikipedia.org/wiki/TUN/TAP), из себя они представляют виртуальные сетевые карты. TAP эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. TUN работает на сетевом уровне модели OSI, оперируя IP пакетами. TAP используется для создания сетевого моста, тогда как TUN для маршрутизации. Соответсвенно для L2 понадобилось использовать TAP интерфейс. Для подключение на уровне L2 потребовалось изменить конфигурацию сервера и клиента: заменить строчку `dev tun` на `dev tap`, так же на клиенте создать бридж-интерфейс, который свяжет ens03, ens04 и tap0, после чего при подключении сервер сможет запросить ip по dhcp и видеть трафик на 2 уровне модели OSI. О работе на 2 уровне нас уведомит tcpdump. <details> tcpdump на сервере ![](https://hackmd.io/_uploads/ByaOQS2En.jpg) --- ping с сервера ![](https://hackmd.io/_uploads/H1Oomr3N2.jpg) --- </details>