В этой статье мы рассмотрим с вами как использовать ZeroTier для построения VPN сети. Советуем вам ознакомиться с нашей статьей Введение в ZeroTier в ней подробно рассказано про установку и настройку ZeroTier.
В качестве узла VPN у нас будет выступать сервер под управлением операционной системы Ubuntu. Подобных узлов у вас может быть большое количество и при необходимости вы сможете выполнять переключение между VPN узлами меня маршрутизацию в сети ZeroTier.
Для того чтобы сервер мог выступать в качестве VPN узлам нам необходимо включить на сервере NAT и перенаправление пакетов. Чтобы проверить активировано ли у вас перенаправление портов необходимо выполнить следующую команду:
Если в выводе команды вы получите net.ipv4.ip_forward = 0 это означает что перенаправление пакетов между сетевыми интерфейсами у вас выключен и для его активации необходимо отредактировать файл /etc/sysctl.conf в котором нужно добавить или раскомментировать строку
После сохранения изменения в файле выполняем следующую команду
Чтобы наш сервер позволял выполнят переадресацию между интерфейсами нам необходимо добавить несколько правил в файрвол.
Сперва узнаем имя ZeroTier интерфейса для этого выполняем команду
В выводе мы увидим все сетевые интерфейсы которые доступные в системе
Нас интересует сетевой интерфейс который начинается на zt — это и есть интерфейс ZeroTier, в примере выше это zt2lrt5nfx.
Теперь добавим правила в iptables. Первое правило добавляет преобразование сетевых адресов и масТеперь добавим правила в iptables. Первое правило включает NAT на нашем сервере
Вторым правилом разрешаем перенаправление трафика и отслеживание активных интерфейсов
И последнее правило разрешает перенаправление трафика с интерфейса ZeroTier на главный сетевой интерфейс
Все внесенные правила iptables после перезагрузки будут удалены и для того чтобы их сохранить нам необходимо будет установить дополнительный пакет iptables-persistent
Для того чтобы проверить все активные правила iptables можно выполнить команду
На этом настройка на стороне сервера завершена. Нам остается настроить правила маршрутизации в панели ZeroTier. Переходим по адресу https://my.zerotier.com/network и в блоке Managed Routes добавляем новый маршрут
В Add Routes вписываем 0.0.0.0/0, а в (Via) внутренний IP адрес сервера который вы настраивали для работы в качестве VPN в данном примере это 10.144.164.26.
По-умолчанию правила маршрутизации не применяются при подключении к сети и чтобы они начали действовать их необходимо активировать на стороне клиента.
В файл /etc/sysctl.conf необходимо внести следующую строку
Сохраним файл и запустим команду которая применит внесенные изменения.
И теперь для того чтобы подключить наш сервер к сети ZireTier с применением маршрутов выполняем команду заменив в ней NetworkID на ваш ID сети.
Чтобы активировать Default Route в клиентах которые установлены в Windows, macOS, Android и iOS необходимо в настройках подключения включить опцию Allow Default Route.
После активации данной опции необходимо выполнить переподключение к сети ZeroTier. И теперь, если вы проверите ваш внешний IP адрес на сайте http://icanhazip.com то вы увидите IP адрес сервера ZeroTier который был настроен как VPN сервер.