--- title: "🕸️ Mesh VPN через Tinc" date: 2024-12-19T04:37:57+03:00 draft: false tags: [tutorial, linux, vpn, network] --- ## Подготовка рабочей директории Создание директорий новой сети. ```sh export NETWORK_NAME="office" # Имя новой сети mkdir -p /etc/tinc/$NETWORK_NAME/hosts cd /etc/tinc/$NETWORK_NAME/ ``` Создание исполняемых файлов для управления интерфейсом. ```sh touch tinc.conf tinc-down tinc-up chmod +x tinc-down tinc-up ``` ## Настройка tinc Следующий шаг настройка файла конфигурации демона `tincd`. Файл `tinc.conf` на `master` _(«Основной» сервер с белым IP)_ ```text Name = master Device = /dev/net/tun Port = 655 ``` Файл `tinc.conf` на `client` _(Клиент)_ ```text Name = client Device = /dev/net/tun Port = 655 ConnectTo = master ``` ## Создание ключей ```sh # Команду необходимо выполнить на обеих (всех) машинах tincd -n $NETWORK_NAME -K ``` ## Настройка хостов `/etc/$NETWORK_NAME/hosts/master`. Адрес `1.1.1.1` заменить на белый IP сервера. ```text Address = 1.1.1.1 Subnet = 10.0.7.1/32 # Здесь находится публичный ключ ``` `/etc/$NETWORK_NAME/hosts/client` ```text Subnet = 10.0.7.2/32 # Здесь находится публичный ключ ``` Эти файлы должны находится на всех машинах. ## Скрипты для управления интерфейсом Адрес `10.0.7.1` на клиентах заменить на соответствующий. `/etc/$NETWORK_NAME/tinc-down` ```sh #!/bin/sh ip addr del 10.0.7.1/24 dev $INTERFACE ip link set $INTERFACE down ``` `/etc/$NETWORK_NAME/tinc-up` ```sh #!/bin/sh ip link set $INTERFACE up ip addr add 10.0.7.1/24 dev $INTERFACE ``` ## Запуск ```sh tincd -n $NETWORK_NAME -D -d3 ``` * Флаг `-d3` отвечает за вывод отладочных сообщений. * Флаг `-D` _(`no-detach`)_ отвечает за запуск демона без форка. Если всё впорядке и сеть работает, можно активировать **systemd** сервис. ```sh systemctl start tinc@$NETWORK_NAME.service systemctl enable tinc@$NETWORK_NAME.service ``` ## Прочее ### На клиенте сервер запущен, сервер на мастере перезапущен Всё в порядке. Сервер `tincd` на клиенте будет пытаться переподключаться к мастер серверу, пока не наладится соединение. ### На клиенте пропал интернет, а потом появился Всё в порядке, ничего не произойдёт. При появлении сети VPN продолжит работу. ### Добавление нового клиента на мастер сервер без перезапуска tinc Всё будет работать, демон перезапускать нет необходимости.