# Практика №3. Протокол OpenVPN-L3
## Выполнила Валеева Рената
## Группа ББСО-02-20
В данной работе необходимо научиться строить VPN соединения на основе протокола OpenVPN, используя технологию IP-туннелей (OpenVPN L3). Дополнительно - настраивать взаимодействие сетей удаленных филиалов
# Описание практический работы:
**Целью практической работы является:**
* Научиться работать с протоколом OpenVPN
* Научиться настраивать работу VPN протокола OpenVPN на уровне L3 на операционной системе Linux
* Научиться настраивать сетевую связанность офисов через OpenVPN L3 протокол VPN.
# Задание к практической работе:
- Настроить OpenVPN сервер уровня L3 в соотвествии с топологией сети. Допускается настройка с помощью скрипта автонастройки сервера OpenVPN https://github.com/angristan/openvpn-install
- Настроить OpenVPN клиент в соотвествии с топологией сети и подключиться к серверу.
- Настроить сетевую связанность офисов таким образом, чтобы из любого сетевого устройства в сети 172.16.4.0/24 можно было достучаться до сетей первого офиса (172.16.3.0/24, 172.16.12.0/24, 172.16.11.0/24), а также наоборот.
# Настройка
**Первоначальные настройки**
1)Настройка имени:


2)Настройка доменов:
В файле /etc/resolv.conf указываем dns 8.8.8.8
3)Настройка интерфейсов:

4)Разблокируем маршрутизацию в файле /etc/sysctl.conf и применяем sysctl -p

Эти действия необходимо проделать и на будущем сервере, и на будущих клиентах, настраиваем статические адреса в соответствии с топологией.
Далее используем apt update && apt upgrade - y для обновления ядра, устаналиваем curl для загрузки скрипта.
Загружаем скрипт и даем доступ на запуск:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
На сервере создались конфиги сервера и клиента:


Создаем пустой конфиг на клиенте и копируем туда содержимое файла с сервера (с помощью ssh), убираем строки касающиеся dns:

Далее пробуем запустить openvpn на клиенте с помощью команды openvpn название_конфигурационного_файла(в моем случае client.conf):

Все успешно запустилось, мы также можем увидеть, что на клиент передались маршруты прописанные для передачи в конфигурационном файле сервера.
Проверим поднялся ли туннель:

Появились полученные маршруты:

Далее для пингов со стороны сервера пропишем iroute:

Также необходимо провести настройки на фаерволах и настроить на обоих устройствах nat postrouting masquerade:



Пробуем пинговать как с сервера, так и с клиента:

