{ # Ваш приватный ключ. НЕ ДЕЛИТЕСЬ этим ключом ни с кем! PrivateKey: e231c2d650f3739729ac7f95a9832024be334f065a28af905031254ce76fa6826f9e764d7d403edcc922118b6f37fdfab2f9aa9e97c0db459e38bdc4454f6c66 # C помощью ключа запуска Yggdrasil -exportkey приватный ключ можно экспортировать в формате PEM # и после этого указать путь к нему с помощью параметра PrivateKeyPath. Пример: # yggdrasil -exportkey -useconffile /etc/yggdrasil/yggdrasil.conf >/etc/yggdrasil/privatekey.pem # # PrivateKeyPath: /etc/yggdrasil/privatekey.pem # Эту возможность можно использовать для создания шаблона конфигурационного файла, если # вы используете Yggdrasil на нескольких устройствах. # Список строк подключения для исходящих соединений с другими пирами в формате URI, # например, tls://a.b.c.d:e или socks://a.b.c.d:e/f.g.h.i:j. Эти соединения # будут подчиняться таблице маршрутизации операционной системы. Этот раздел следует # использовать, когда в системе несколько интерфейсов, через которые возможно подключение. Peers: [] # Список строк подключения для исходящих соединений с другими пирами в формате URI, # упорядоченных по исходному интерфейсу, например { "eth0": [ tls://a.b.c.d:e ] }. # Обратите внимание, что эти параметры НЕ применимы к пирингу через SOCKS и вместо этого # SOCKS должны указываться в параметре "Peers". InterfacePeers: {} # Адрес прослушивания (ожидания) входящих подключений. Добавить Listener нужно, если вы # хотите, чтобы к вам могли подключиться другие нелокальные узлы, указав ваш адрес в параметре # Peers. # Multicast peer discovery (протокол для обнаружения пиров в локальной сети) будет работать # независимо от установок в этом разделе. # Каждый Listener должен быть указан в формате URI, как показано выше, например: # tls://0.0.0.0:0 or tls://[::]:0 для прослушивания на всех интерфейсах. # Если не хотите принимать входящие соединения, оставьте пустым. # Для публичных пиров Listener обязателен. Listen: [] # Адрес прослушивания для административных подключений. По-умолчанию прослушивание локальных # подключений осуществляется либо на TCP/9001, либо через сокет UNIX, в зависимости от вашей # платформы. Используйте это значение для yggdrasilctl -endpoint=X. Для отключения # сокета администратора используйте значение "none". AdminListen: tcp://localhost:9001 # # либо: AdminListen: /var/run/yggdrasil/yggdrasil.sock #в настройках systemd-юнита разрешена # запись только в /var/run/yggdrasil/ и /run/yggdrasil/ # Настройка интерфейсов, для которых Multicast Peer Discovery должно быть # включено. Каждая запись в списке должна быть объектом json, который может # содержать Regex, Beacon, Listen и Port. Regex - это регулярное # выражение, по которому выбирается имя интерфейса; выбирается первый # соответствующий Regex интерфейс. Beacon определяет должен ли узел # отправлять link-local многоадресные сигналы для оповещения о своем существовании, # пока ожидаются входящие соединения на TCP порту Port. # Listen определяет будет ли узел ожидать/прослушивать многоадресные сигналы (beacons) # и открывать исходящие соединения. # ПОДРОБНЕЕ СМ. СТАТЬЮ "MULTICAST PEER DISCOVERY" НА ЭТОМ РЕСУРСЕ MulticastInterfaces: [ { Regex: .* Beacon: true Listen: true Port: 0 Priority: 0 Password: "" } ] # Список открытых ключей узлов, от которых разрешены входящие подключения. # Если оставлено пустым/неопределенным тогда все соединения # будут разрешены по-умолчанию. Это не повлияет ни на исходящие соединения, ни на # локальные соединения с пирами, обнаруженными через multicast (многоадресная рассылка). AllowedPublicKeys: [] # Имя локального сетевого интерфейса TUN-адаптера, или "auto" для выбора # интерфейса автоматически, или "none" для запуска без TUN. IfName: Yggdrasil # Максимальный размер передаваемого блока (MTU - Maximum Transmission Unit) # для вашего локального TUN-интерфейса. # По умолчанию это самый большой поддерживаемый размер для вашей платформы. Наименьшее # возможное значение - 1280. IfMTU: 65535 # По-умолчанию, nodeinfo содержит некоторые значения, включая название платформы, # архитектуру и версию Yggdrasil. Эти значения могут помочь при изучении сети, диагностике # проблем сетевой маршрутизации. Включение приватности # nodeinfo предотвращает публикацию этих данных и только значения, указанные в # "NodeInfo" (если указаны) будут отправлены запрашивающему узлу. NodeInfoPrivacy: false # Дополнительная произвольная информация об узле. Знечение должно быть строкой, # представляющей собой map { "key": "value", ... } или null. # Это совершенно необязательно, но если значения заданы, они будут видны всем узлам сети # при выполнении соответствующего запроса. NodeInfo: {} }
{ # Список строк подключения для исходящих соединений с другими пирами в формате URI, # например, tls://a.b.c.d:e или socks://a.b.c.d:e/f.g.h.i:j. Эти соединения # будут подчиняться таблице маршрутизации операционной системы. Этот раздел следует # использовать, когда в системе несколько интерфейсов, через которые возможно подключение. Peers: [] # Список строк подключения для исходящих соединений с другими пирами в формате URI, # упорядоченных по исходному интерфейсу, например { "eth0": [ tls://a.b.c.d:e ] }. # Обратите внимание, что эти параметры НЕ применимы к пирингу через SOCKS и вместо этого # SOCKS должны указываться в параметре "Peers". InterfacePeers: {} # Адрес прослушивания (ожидания) входящих подключений. Добавить Listener нужно, если вы # хотите, чтобы к вам могли подключиться другие нелокальные узлы, указав ваш адрес в параметре # Peers. # Multicast peer discovery (протокол для обнаружения пиров в локальной сети) будет работать # независимо от установок в этом разделе. # Каждый Listener должен быть указан в формате URI, как показано выше, например: # tls://0.0.0.0:0 or tls://[::]:0 для прослушивания на всех интерфейсах. # Если не хотите принимать входящие соединения, оставьте пустым. # Для публичных пиров Listener обязателен. Listen: [] # Адрес прослушивания для административных подключений. По-умолчанию прослушивание локальных # подключений осуществляется либо на TCP/9001, либо через сокет UNIX, в зависимости от вашей # платформы. Используйте это значение для yggdrasilctl -endpoint=X. Для отключения # сокета администратора используйте значение "none". AdminListen: unix:///var/run/yggdrasil.sock # Настройка интерфейсов, для которых Multicast Peer Discovery должно быть # включено. Каждая запись в списке должна быть объектом json, который может # содержать Regex, Beacon, Listen и Port. Regex - это регулярное # выражение, по которому выбирается имя интерфейса; выбирается первый # соответствующий Regex интерфейс. Beacon определяет должен ли узел # отправлять link-local многоадресные сигналы для оповещения о своем существовании, # пока ожидаются входящие соединения на TCP порту Port. # Listen определяет будет ли узел ожидать/прослушивать многоадресные сигналы (beacons) # и открывать исходящие соединения. # ПОДРОБНЕЕ СМ. СТАТЬЮ "MULTICAST PEER DISCOVERY" НА ЭТОМ РЕСУРСЕ MulticastInterfaces: [ { Regex: .* Beacon: true Listen: true Port: 0 } ] # Список открытых ключей узлов, от которых разрешены входящие подключения. # Если оставлено пустым/неопределенным тогда все соединения # будут разрешены по-умолчанию. Это не повлияет ни на исходящие соединения, ни на # локальные соединения с пирами, обнаруженными через multicast (многоадресная рассылка). AllowedPublicKeys: [] # Ваш публичный (открытый) ключ. Те, с кем вы соединяетесь могут попросить у вас этот ключ # для указания в разделе AllowedPublicKeys их конфигурации. PublicKey: a999ccc664e0d645e76ed1fa2cf169806e4674725f3d6213d2c92869976eb01e # Ваш приватный ключ. НЕ ДЕЛИТЕСЬ этим ключом ни с кем! PrivateKey: 711895e5625cc787c06e7e03c49ed71470cf87dfb626985f1cb669a24a479c3ea999ccc664e0d645e76ed1fa2cf169806e4674725f3d6213d2c92869976eb01e # Имя локального сетевого интерфейса TUN-адаптера, или "auto" для выбора # интерфейса автоматически, или "none" для запуска без TUN. IfName: auto # Максимальный размер передаваемого блока (MTU - Maximum Transmission Unit) # для вашего локального TUN-интерфейса. # По умолчанию это самый большой поддерживаемый размер для вашей платформы. Наименьшее # возможное значение - 1280. IfMTU: 65535 # По-умолчанию, nodeinfo содержит некоторые значения, включая название платформы, # архитектуру и версию Yggdrasil. Эти значения могут помочь при изучении сети, диагностике # проблем сетевой маршрутизации. Включение приватности # nodeinfo предотвращает публикацию этих данных и только значения, указанные в # "NodeInfo" (если указаны) будут отправлены запрашивающему узлу. NodeInfoPrivacy: false # Дополнительная произвольная информация об узле. Знечение должно быть строкой, # представляющей собой map { "key": "value", ... } или null. # Это совершенно необязательно, но если значения заданы, они будут видны всем узлам сети # при выполнении соответствующего запроса. NodeInfo: {} }
{ # Список строк подключения для исходящих соединений с другими пирами в формате URI, # например, tcp://a.b.c.d:e или socks://a.b.c.d:e/f.g.h.i:j. Эти соединения # будут подчиняться таблице маршрутизации операционной системы, поэтому вы должны # использовать этот раздел, когда вы можете подключаться через различные интерфейсы. Peers: [] # Список строк подключения для исходящих соединений с другими пирами в формате URI, # упорядоченных по исходному интерфейсу, например { "eth0": [ tcp://a.b.c.d:e ] }. # Обратите внимание, что эти параметры НЕ применимы к пирингу через SOCKS и вместо этого # SOCKS должны перейти в раздел "Peers". InterfacePeers: {} # Адрес прослушивания (ожидания) входящих подключений. Добавить слушателей необходимо # для того, чтобы принимать входящие соединения от нелокальных узлов. # Multicast peer discovery (протокол для обнаружения пиров в локальной сети) будет работать # независимо от установок в этом разделе. # Каждый слушатель должен быть указан в формате URI, как показано выше, например: # tcp://0.0.0.0:0 or tcp://[::]:0 для прослушивания на всех интерфейсах. Listen: [] # Адрес прослушивания для административных подключений. По-умолчанию прослушивание локальных # подключений осуществляется либо на TCP/9001, либо через сокет UNIX, в зависимости от вашей # платформы. Используйте это значение для yggdrasilctl -endpoint=X. Для отключения # сокета администратора используйте значение "none". AdminListen: unix:///var/run/yggdrasil.sock # Регулярные выражения, в соответствии с которыми будет включено # multicast peer discovery (см. выше). Если не указано ничего, multicast peer discovery будет # отключен. Значение по-умолчанию: .*, что соответствует всем интерфейсам. MulticastInterfaces: [ .* ] # Список открытых ключей шифрования пиров, от которых разрешены входящие # подключения. Если оставлено пустым/неопределенным тогда все соединения # будут разрешены по-умолчанию. Это не повлияет ни на исходящие соединения, ни на # локальные соединения с пирами, обнаруженными через multicast (многоадресная рассылка). AllowedEncryptionPublicKeys: [] # Ваш публичный (открытый) ключ шифрования. Те, с кем вы соединяетесь могут попросить у вас этот ключ # для указания в разделе AllowedEncryptionPublicKeys их конфигурации. EncryptionPublicKey: a999ccc664e0d645e76ed1fa2cf169806e4674725f3d6213d2c92869976eb01e # Ваш приватный ключ шифрования. НЕ ДЕЛИТЕСЬ этим ключом ни с кем! EncryptionPrivateKey: 711895e5625cc787c06e7e03c49ed71470cf87dfb626985f1cb669a24a479c3e # Ваш открытый ключ для подписывания. В общем случае, вам не нужно ни с кем делиться # этим ключом. SigningPublicKey: 050a7f72d7ad3917e0e1aa615d605653c9f82d2183b8b43ca97efb7d5cc49c93 # Ваш приватный ключ для подписывания. НЕ ДЕЛИТЕСЬ этим ключом ни с кем! SigningPrivateKey: c2be71a619c9eb498d9fde9792ba7399223773bb063d0d6eefb213f623f387e2050a7f72d7ad3917e0e1aa615d605653c9f82d2183b8b43ca97efb7d5cc49c93 # Номер порта, который будет использован локальными TCP слушателями для # сконфигурированных MulticastInterfaces (многоадресных интерфейсов). # Эта опция не влияет на слушателей, указанных в параметре Listen. # Если вы не планируете использовать файервол для локального трафика, # будет лучше, если вы оставите это значение по-умолчанию равным 0. В настоящее время # этот параметр не может быть изменен путем перезагрузки конфигурации во время выполнения. LinkLocalTCPPort: 0 # Имя локального сетевого интерфейса TUN-адаптера, или "auto" для выбора # интерфейса автоматически, или "none" для запуска без TUN. IfName: auto # Максимальный размер передаваемого блока (MTU - Maximum Transmission Unit) # для вашего локального TUN-интерфейса. # По умолчанию это самый большой поддерживаемый размер для вашей платформы. Наименьшее # возможное значение - 1280. IfMTU: 65535 # Межсетевой экран сеанса управляет тем, кто может отправлять/получать исходящий/входящий # сетевой трафик. Это полезно, если вы хотите защитить узел без использования # настоящего файервола. Эта настройка не влияет на трафик, идущий через этот узел # в другое место. Правила имеют следующие приоритеты: # черный список, белый список, всегда разрешенные исходящие, прямые, удаленные. SessionFirewall: { # Включение или отключение файервола сессии. Если отключено, сетевой трафик # от любого узла будет разрешен. Если включено, применяются правила, приведенные ниже. Enable: false # Разрешить сетевой трафик от узлов, подключенных напрямую. AllowFromDirect: true # Разрешить трафик с удаленных узлов сети, к которым вы # не подключены напрямую. AllowFromRemote: true # Разрешить исходящий трафик, независимо от AllowFromDirect или # AllowFromRemote. Это разрешает удаленному узлу отправлять вам обратно # незапрашиваемый трафик на протяжении всей сессии. AlwaysAllowOutbound: true # Список открытых ключей узлов, с которых трафик всегда будет разрешен, # независимо от AllowFromDirect или AllowFromRemote. WhitelistEncryptionPublicKeys: [] # Список открытых ключей узлов, с которых трафик всегда будет отклонен, # независимо от белого списка, AllowFromDirect or AllowFromRemote. BlacklistEncryptionPublicKeys: [] } # Разрешить туннелирование не-Yggdrasil трафика через Yggdrasil. Это позволяет # эффективно использовать Yggdrasil для маршрутизации в другие сети или соединения с другими сетями, # аналогично VPN-туннелю. Туннелирование работает между любыми двумя узлами и # не требует их прямого соединения. TunnelRouting: { # Включить или отключить туннельную маршрутизацию. Enable: false # IPv6-подсети, приналежащие удаленным узлам, сопоставленные по публичным # ключам узлов, например: { "aaaa:bbbb:cccc::/e": "boxpubkey", ... } IPv6RemoteSubnets: {} # IPv6-подсети, принадлежащие этой стороне туннеля этого узла. Трафик только # из этих диапазонов (или IPv6-адреса/подсети узла Yggdrasil) # будет туннелирован. IPv6LocalSubnets: [] # IPv4-подсети, приналежащие удаленным узлам, сопоставленные по публичным # ключам узлов, например: { "a.b.c.d/e": "boxpubkey", ... } IPv4RemoteSubnets: {} # IPv4-подсети, принадлежащие этой стороне туннеля этого узла. Трафик только # из этих диапазонов будет туннелирован. IPv4LocalSubnets: [] } # Дополнительные опции настройки коммутатора. Обычно вам не нужно будет # редактировать эти опции. SwitchOptions: { # Максимальный суммарный размер всех очередей коммутаторов (в байтах). MaxTotalQueueSize: 4194304 } # По-умолчанию, nodeinfo содержит некоторые значения, включая название платформы, # архитектуру и версию Yggdrasil. Эти значения могут помочь при изучении сети, диагностике # проблем сетевой маршрутизации. Включение приватности # nodeinfo предотвращает публикацию этих данных и только значения, указанные в # "NodeInfo" (если указаны) будут отправлены запрашивающему узлу. NodeInfoPrivacy: false # Дополнительная произвольная информация об узле. Знечение должно быть строкой, # представляющей собой map { "key": "value", ... } или null. # Это совершенно необязательно, но если значения заданы, они будут видны всем узлам сети # при выполнении соответствующего запроса. NodeInfo: {} }