Продолжая мусолить тему виртуального шлюза, сегодня я попытаюсь поженить
pfSense с Zerotier и посмотрю что из этого выйдет.
Сразу отвечу на вопрос
"Зачем это нужно, ведь в pfSense есть VPN сервер?": Если кратко - то для
использования машины с pfSense в качестве VPN сервера нужен белый IP, который
стоит денег, а для обеспечения бесперебойности работы, белый IP нужен и на
резервном канале. Не каждое небольшое предприятие готово это все оплачивать (а
если готово, то пусть лучше платит мне), да и провайдеры не всегда готовы его
предоставить. Не стоит забывать и о возне с ключами (генерация,
компрометация).
Zerotier на данный момент позволяет бесплатно
использовать 50 клиентов (раньше было 100), заведя несколько аккаунтов это
количество можно увеличить кратно, но всем этим надо как-то удобно рулить. Это
мы и попытаемся реализовать.
Разрешаем установку FreeBSD пакетов, отредактировав первую строчку файла
/usr/local/etc/pkg/repos/pfSense.conf
(меняем no на yes)
FreeBSD: { enabled: yes }
Устанавливаем Zerotier:
pkg install -y net/zerotier net/ngrep textproc/jq
Правим файл /etc/defaults/rc.conf
, добавив строку:
zerotier_enable=YES
Запускаем службу:
service zerotier start
Для реализации автозапуска создаем файлы /etc/rc.local
и
/etc/rc.local.running
.
В файл /etc/rc.local добавляем строчку:
service zerotier start
Перегружаем систему.
Присоединяемся к сети Zerotier
# zerotier-cli join 0cccb752f734e76c
200 join OK
где 0cccb752f734e76c - наш <network ID>
Во вкладке "Интерфейсы"/"Назначения" в списке "Доступные сетевые порты" наблюдаем появившийся новый интерфейс:
Теперь мы можем нажать кнопку добавить и далее, по идее, управлять им как обычным сетевым интерфейсом стандартными средствами pfSense. Перегружаем систему и оп:
Интерфейс, из конфигурации отсутствует |
Выбираем интерфейс, служащий WAN и продолжаем загрузку
Жмем 1 |
Как видим, сам интерфейс мы установили, но в интерфейс управления интеграции
не произошло.
Для дальнейших действий нам потребуется виртуальная машина
с FreeBSD, соответствующей нашему pfSense версии.
Устанавливаем на
FreeBSD pkg, git и gmake, подключившись по SSH
pkg install git gmake
Соглашаемся на установку pkg и остальных пакетов
С помощью git клонируем
коллекцию портов (примерно 2 Gb)
# git clone https://github.com/pfsense/FreeBSD-ports.git
Правим (создаем) файл /etc/make.conf, чтоб разрешить сборку для сторонних систем. добавив строчку
ALLOW_UNSUPPORTED_SYSTEM=YES
Клонируем в каталог FreeBSD-ports/net/, коллекции портов, скачанной ранее, порт pfSense-pkg-zerotier
cd FreeBSD-ports/net/
git clone https://github.com/ChanceM/pfSense-pkg-zerotier
Собираем пакет
cd pfSense-pkg-zerotier
make
make package
Переносим собранный пакет, находящийся в каталоге
FreeBSD-ports/net/pfSense-pkg-zerotier/work/pkg/
на машину с
pfSense по ssh и производим его установку
pkg add pfSense-pkg-zerotier-0.00.1.txz
После перезагрузки во вкладке Web интерфейса VPN, появился пункт Zerotier
Enable/Save |
Во вкладке Networks появилась наша сеть, добавление новых сетей можно теперь делать прямо из интерфейса.
Есть возможность поднять свой контроллер, но я пока не буду ее рассматривать.
- Послесловие
-
Таким образом (используя zerotier-cli join <network ID>) мы можем
добавить любое разумное количество Zerotier сетей, преодолевая ограничение в
50 бесплатных клиентов и настраивая сеть любой сложности.
Пакет, собранный мною в процессе написания заметки (pfSense 2.5.2, zerotier 1.6.5) можно скачать здесь
Подпись комментария:
ОтветитьУдалитьhi, did you make zerotier work on pfsense. I cant make it work, I think that I am not configurating the proper way the firewall rules. If you mak it work, which was your configuration??
In zerotier it appear that is connected but I cant connect to other equipments ....