Linux tun0 tun1 tun2

Настройка OpenVPN Ubuntu 18.04 TUN

Содержание

Предварительная настройка

Устанавливаем сервер и дополнительные утилиты:

Отключаем интерактивный ввод данных для генерируемых ключей (удаляем ключ —interact):

Укажем параметры генерации ключей:

Создаем скрипт автоматической генерации ключей и конфигов

Права на запуск скрипта:

Создаем каталог логов:

Генерация ключей

В результате выполнения скрипта, в каталоге «название сети» будут расположены следующие файлы и директории:

Запуск сервера в Linux

Если запускаем сервер на другой машине, чем та, на которой создавали конфиги и ключи, то копируем в /etc/openvpn каталог «название сети».

OpenVPN устроен так: сколько конфигурационных файлов в директории для конфигов — столько он и запускает клиентов/серверов.

Стало быть для запуска сервера нужно:

Запуск сервера в Windows

Для Win сервера меняется путь расположения каталога с ключами:

Конфигурационный файл будет лежать тут:

Установка в Windows

Скачиваем последнюю версию клиента, в соответствии с разрядностью Windows отсюда.

OpenVPN GUI можно не устанавливать

Устанавливаем драйвер виртуального сетевого интерфейса

Указываем службе запускаться автоматически

В каталог C:\Program Files\OpenVPN\config\ копируем конфигурационный файл (sibway-external-client.ovpn).

Перезапускаем службу OpenVPN

Проверяем, установлено ли соединение. IP адрес для нового сетевого адаптера должен быть из сети 10.xxx.yyy.0/24

Теперь можно проверить связь до какого либо внутреннего адреса (из сети 10.xxx.yyy.0/24). Например до VPN сервера: 10.xxx.yyy.1:

При возникновении проблем, сообщения OpenVPN можно посмотреть в его Log файлах в каталоге C:\Program Files\OpenVPN\logs\(и сразу выслать этот файл системному администратору. После рестарта службы OpenVPN файл перезаписывается!)

Установка в Linux

В каталог /etc/openvpn копируем конфигурационный файл work-client.conf

Применяем новые параметры и перезапускаем сервис:

Смотрим в логах, как проходит подключение:

Удачное подключение заканчивается строкой:

Разное

Добавление tap адаптера в Windows

При установке openvpn в систему автоматически добавляется tap адаптер. Он и будет использоваться при запуске первого сервера/клиента.

Для каждого дополнительного сервера/клиента необходимо вручную добавить дополнительные адаптеры путем запуска скрипта:

Проблемы при добавлении маршрутов в Windows

Попробуйте увеличить значение

На практике не более 1% машин требуют значения более 5-ти (в большинстве случаев хватает 2)

Добавление маршрута по умолчанию через vpn соединение

Добавить в конфиг клиента: В Linux:

Отзыв сертификата

В случае, если вам нужно запретить подключение к серверу для какого либо клиента, необходимо отозвать сертификат этого клиент. Для этого необходимо выполнить следующее:

Источник

Два интерфейса tun0 и tun1

Прошу помощи в настройке openvpn. Здравствуйте. Подскажите как разрешить одной сети tun1 ходить в сеть tun0. Тоесть у меня на tun0 сервер а на tun1 клиент который подключён к другому серверу. Как через tun0 открывать сайты которые доступны в tun1 .например рутрекер. Все необходимый конфигурации и логи могу предоставить.

Если сервер на вашем tun1 знает про сеть на tun0, то будет работать из коробки. Но скорее всего нет и, поэтому, потребуется трансляция адреса (nat) всех ваших клиентов на tun1.

Спасибо за отклик. Вот правило которое находится в нат :iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT —to мой.айпи Вот правила фильтрации: iptables -I INPUT -i tun0 -j ACCEPT iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT iptables -I INPUT -p tcp —dport 443 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -I FORWARD -i br0 -o tun1 -j ACCEPT iptables -I FORWARD -i tun1 -o br0 -j ACCEPT iptables -I INPUT -p tcp —dport 1511 -j ACCEPT

tun0 openvpn server поднятый в Debian tun1 openvpn client поднятый на том же Debian и подключённый к серверу в Болгарии.Чтоб не весь трафик шёл через сервер в Болгарии добавил вот это в конфиг route-nopull route 195.82.146.114 route 195.82.146.214 route 185.112.157.181 route 134.19.177.67 route 81.17.30.51 route 89.32.127.227 route 104.28.4.193 route 104.28.5.193 route 178.63.151.224 route 178.62.9.171 route 81.17.19.227 log openvpn.log (Разумеется остальные настройки присутствуют в клиенте,он рабочий ) Проблема такая; подключаюсь к моему серверу,все сайты открываются кроме тех что указаны в клиенте который висит на tun1. Зато в локальной сети доступны все сайты плюс те что указаны в клиенте на tun1. Объяснил проблему как смог ;))) хочу чтоб при контенте к tun0 тоесть серверу были доступны все сайты.

Читайте также:  Все причины не загрузки windows

Debian развернут на роутере zyxel GIGA 3

# ip route default dev ppp0 scope link 10.1.30.0/24 dev br1 proto kernel scope link src 10.1.30.1 10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1 10.211.1.6 dev tun1 proto kernel scope link src 10.211.1.5 81.17.19.227 via 10.211.1.6 dev tun1 81.17.30.51 via 10.211.1.6 dev tun1 89.32.127.227 via 10.211.1.6 dev tun1 104.28.4.193 via 10.211.1.6 dev tun1 104.28.5.193 via 10.211.1.6 dev tun1 134.19.177.67 via 10.211.1.6 dev tun1 178.62.9.171 via 10.211.1.6 dev tun1 178.63.151.224 via 10.211.1.6 dev tun1 185.58.188.37 dev ppp0 proto kernel scope link src 185.58.188.129 185.112.157.181 via 10.211.1.6 dev tun1 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.19 195.82.146.114 via 10.211.1.6 dev tun1 195.82.146.214 via 10.211.1.6 dev tun1

tun не то же самое что и tap.

В вашем случае, похоже, нужен именно tap.

can not be used with Android or iOS devices Мне именно на айфоне труден доступ к закрытым сайтам ;)) Tap не подходит наверное !

Вот правило которое находится в нат

Пожалуйста, пользуйтесь lorcode. Ваши адреса без картинки сети с подписями, к сожалению, ничего не говорят.

Эксперименты надо проводить без правил фильтрации, чтобы не искать где проблема в разных местах.

Проблема такая; подключаюсь к моему серверу,все сайты открываются кроме тех что указаны в клиенте который висит на tun1. Зато в локальной сети доступны все сайты плюс те что указаны в клиенте на tun1.

Искать проблему лучше не по сайтам, а по traceroute, но можно и через утилиту tcptraceroute.

Источник

Настройка OpenVPN клиента

В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.

Установка

Windows

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

yum install epel-release

yum install openvpn

Linux Ubuntu

apt-get install openvpn

Android

Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect — нажимаем установить и принимаем условия.

Настройка

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

В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.

* имя файла может быть любым, расширение должно быть .ovpn.

Для создания конфигурационного файла в Linux выполняем команду:

* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.

Пример конфигурационного файла

client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0

Параметры конфигурационного файла

Параметр Значения Описание
client Строка говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер).
dev tap или tun Выбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP.
dev-node любая строка Параметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN.
proto udp или tcp Указывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть.
remote VPN-сервер и порт Задает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк.
remote-random Если указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке.
resolv-retry количество секунд или infinite Используется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно.
nobind Клиент использует динамический порт для подключения.
user учетная запись Задает определенного пользователя для работы клиента (только для UNIX-систем).
group группа Задает определенную группу для работы клиента (только для UNIX-систем).
persist-key Не перечитывает ключи при перезагрузке сервиса OpenVPN.
persist-tun Не перечитывает параметры туннеля при перезагрузке сервиса OpenVPN.
http-proxy сервер прокси и порт Использовать прокси-сервер для подключения.
http-proxy-retry Переподключаться к прокси-серверу, если связь была разорвана.
http-proxy-timeout количество секунд Время, через которое выполнять попытки переподключения к прокси-серверу.
mute-replay-warnings Параметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов.
ca пут к сертификату Корневой сертификат удостоверяющего центра. Генерируем на сервере.
cert пут к сертификату Открытый ключ клиента. Генерируем на сервере.
key пут к сертификату Закрытый ключ клиента. Генерируем на сервере.
dh пут к сертификату Ключ с алгоритмом Diffie-Hellman (Диффи-Хеллмана).
remote-cert-tls сервер Исключает возможность mitm атаки, включая верификацию сертификата сервера.
tls-client Указание на то, что это клиент TLS.
tls-auth ta.key 1 Дополнительный уровень аутентификации посредством ключа TLS.
float Удаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано.
keepalive секунд1 секунд2 Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение.
cipher алгоритм Указывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC.
comp-lzo Использовать сжатие.
verb число от 0 до 9 Уровень детализации лога. 0 отключает отладочную информацию.
mute число Указывает сколько лог-сообщений может отображаться для каждой категории события.
auth-user-pass ничего или путь к файлу Говорит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла.
ipchange команда или путь к скрипту Выполняет команду при смене IP.
connect-retry секунд Переподключиться к серверу через указанное количество секунд, если соединение было разорвано.
connect-retry-max число Сколько раз повторять соединение, если оно было разорвано.
shaper байт Задает максимальную скорость передачи данных для исходящего трафика.
tun-mtu число Задает MTU.
status путь к файлу Путь к фалу хранения статуса.
log путь к файлу Путь к лог-файлу.
askpass путь к файлу Путь к файлу с паролем для приватного ключа (private key password).

Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn —help (в Linux и Windows).

Сертификаты

Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.

Источник

Установка OpenVPN на Ubuntu 18.04 LTS. Часть 2 из 12

Файл конфигурации сервера

По умолчанию в директории /etc/openvpn/ конфигурационных файлов нет, но есть две директории для них — server и client . Файл конфигурации нужно создать самостоятельно и поместить в директорию server (для сервера) или client (для клиента). Образец файла конфигурации OpenVPN можно взять из документации:

Приведем файл конфигурации к следующему виду:

Директива server является макрокомандой и имеет синтаксис:

Она будет преобразована по следующему алгортиму:

Директива route-gateway используется совместно с директивой route и задает шлюз по умолчанию для VPN-сети. Если параметр gateway директивы route не задан — он будет получен из директивы route-gateway .

Директива topology приобретает смысл совместно с dev tun и предусматривает три варианта: net30 , p2p , subnet .

Универсальным решением для VPN-сервера является net30 — это значение по умолчанию. Сервер будет работать со всеми версиями Windows, Linux, Mikrotik. Недостатком топологии является избыточное расходование адресного пространства — четыре ip-адреса на каждого VPN-клиента. Топология net30 фактически «устарела» и сохраняется исключительно для поддержки старых Windows клиентов.

Значение subnet рекомендуется для VPN-сервера, клиентами которого являются Linux и Windows 8.2 и выше. Устройство tun настроено на использование ip-адреса и маски сети как «традиционная» широковещательная сеть. Сетевой и широковещательный ip-адреса не должны использоваться — хотя tun не имеет понятия о широковещании, клиенты Windows не смогут правильно использовать эти адреса. Все остальные ip-адреса в сети доступны для использования.

Значение p2p не может использоваться в системах Windows и не подходит, если сервер или любой клиент может быть Windows. В этой топологии все узлы настроены как настоящие двухточечные ссылки — каждый ip-адрес может использоваться, включая первый и последний. Другими словами, в сети 10.8.0.0/24 в топологии p2p можно использовать все 256 ip-адресов. Но Windows считает первый и последний ip-адреса сетевым и широковещательным адресами.

Директивы persist-key и persist-tun обеспечивают правильную работу после понижения прав, т.е. при использовании nobody и nogroup .

Директива keepalive является макрокомандой и будет преобразована в директивы ping и ping-restart

Кроме того, эта макрокоманда отправит две директивы на клиент (так что в файле конфигурации клиента они не нужны)

Все готово, можно запускать VPN-сервер (подробности здесь):

Здесь config — это имя файла конфигурации в директории server , но без расширения .conf . Чтобы VPN-сервер запускался при загрузке системы:

Смотрим статус запущенной службы:

Смотрим наличие сетевого интерфейса tun0 :

Файл конфигурации клиента

Первым делом нужно установить пакет OpenVPN:

Создаем директорию keys и копируем ключи:

Копируем образец файла конфигурации клиента:

Приведем файл конфигурации к следующему виду:

Все готово, можно запускать VPN-клиент (подробности здесь):

Здесь config — это имя файла конфигурации в директории client , но без расширения .conf . Чтобы VPN-клиент запускался при загрузке системы:

Смотрим статус запущенной службы:

Смотрим наличие сетевого интерфейса tun0 :

Пингуем сервер по адресу 10.8.0.1 :

Дополнительные настройки сервера

1 Если нужно использовать VPN-туннель для маршрутизации всего трафика клиентов, добавляем в файл конфигурации еще три строки.

Теперь клиенты будут использовать туннель VPN в качестве шлюза по умолчанию и DNS-сервера 208.67.222.222 и 208.67.220.220 . В этом случае надо внести изменения и в файл конфигурации клиента. Какие изменения — зависит от того, используется systemd-resolved или нет.

При подключении к серверу сетевые настройки клиента будут изменяться, а при отключении от сервера — настройки будут возвращаться в нормальное состояние, как было до подключения. Скрипт update-resolv-conf доступен сразу после установки пакета openvpn , чтобы получить скрипт update-systemd-resolved — надо установить пакет openvpn-systemd-resolved .

2 По умолчанию сервер OpenVPN использует порт 1194 и протокол UDP — но это всегда можно изменить.

При переключении протокола на TCP, нужно изменить значение директивы explicit-exit-notify с 1 на 0, так как эта директива используется только для UDP. Иначе, при использовании TCP, эта директива вызовет ошибки при запуске службы.

Кроме того, при изменении протокола и порта сервера в файле конфигурации сервера, надо внести изменения в файл конфигурации клиента — указать тот же порт и протокол.

3 По умолчанию клиенты сети VPN могут «общаться» только с сервером OpenVPN. Для того, чтобы клиенты могли взаимодействовать друг с другом через сеть VPN необходимо в конфигурационном файле раскомментировать соответствующую директиву:

4 Сервер динамически выдает клиентам свободные ip-адреса из заданного диапазона. Наличие директивы ifconfig-pool-persist указывает, что перед тем как выдать клиенту свободный адрес из пула, сервер должен свериться с файлом ipp.txt , в котором прописывается привязка Common Name сертификата к ip-адресу.

5 Директива client-config-dir предписывает читать файлы конфигураций клиентов в указанной директории. Имена файлов конфигурации в этой директории совпадают с Common Name сертификатов клиентов. Директивы из каждого файла конфигурации применяются только для конкретного клиента.

6 Директива ccd-exclusive — VPN-клиент, имеющий сертификат с Common Name «sergey-ivanov», может подключиться к VPN-серверу, только если существует файл с именем sergey-ivanov в директории client-config-dir . Этот файл может быть даже пустым — но он должен существовать.

7 Директива duplicate-cn разрешает одновременное подключение нескольких клиентов с одинаковым Common Name. В отсутствие этой директивы сервер отключит экземпляр клиента при подключении нового клиента с таким же Common Name.

Чтобы избежать ошибки Could not determine IPv4/IPv6 protocol. Using AF_INET при запуске VPN-сервера, нужно явно указать версию протокола:

Источник

Читайте также:  Данная копия windows не активирована чтобы начать активацию щелкните здесь для чего активировать
Оцените статью