Jump to content

Private Network на базе Zerotier


Recommended Posts

Решил попробовать - zerotier.

ZeroTier One - Open source приложение для создания Ethernet-сетей c end-to-end шифрованием всего трафика, возможно использование коммерческой и бесплатной версии. Основной плюс - работает через сервер-посредник (т.е. не нужен "белый" IP). Возможно соединение bridge (т.е. бродкаст/мультикаст, "Обозреватель сети", автоопределение UPnP-устройств и т.п. будут работать).

1. нужно зарегистрироваться https://www.zerotier.com/admin.html и создать свою сеть (хоть все на англ. но не очень сложно) и создать свою сеть. После регистрации зайти на страницу "Network" и создать свою сеть (я сменил Short Name, Auto-Assign from Range диапазон, Flow Rules - устроят по умолчанию. После этого в левом верхнем углу нужен Network ID.

1. На роутере

/ # opkg list | grep zerotier
zerotier - 1.2.4-1 - ZeroTier creates a global provider-independent virtual private cloud network.
/ # opkg install zerotier
...
/ # zerotier -p60600 -d &
/ # ERROR: unable to add ip address 192.168.хх.17/24

по DHCP получить адрес не получилось, попробуем поднять руками

/ # ifconfig
...
zt0       Link encap:Ethernet  HWaddr хх:хх:хх:хх:A1:30  
          inet6 addr: fe80::хххх:хххх:хххх:хх30/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2800  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:408 (408.0 B)
/ # ifconfig zt0 192.168.хх.17 netmask 255.255.255.0
/ # ifconfig zt0
zt0       Link encap:Ethernet  HWaddr хх:хх:хх:хх:A1:30    
          inet addr:192.168.хх.17  Bcast:192.168.хх.255  Mask:255.255.255.0
          inet6 addr: fe80::хххх:хххх:хххх:хх30/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2800  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:408 (408.0 B)
/ # 
/ # zerotier-cli listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks ххххNetwork_IDххх Ex_Kii хх:хх:хх:хх:a1:30 OK PRIVATE zt0 192.168.хх.17/24
/ # zerotier-cli info
200 info хххххххх9e 1.2.4 ONLINE
/ # 
  / # ip ro
default dev ppp0  scope link 
...
192.168.хх.0/24 dev zt0 proto kernel scope link src 192.168.хх.17

2. на https://my.zerotier.com/network в самом низу получаем наше устройство активным где можно усидеть наши параметрами : Auth, Address, Name/Description, Managed IPs, Last Seen, Version, Physical IP.

3. произвести настройки маршрутов

Примечание возможно изменение  Flow Rules из тех что по умолчанию на странице вашего https://my.zerotier.com/network/

Скрытый текст

# Whitelist only IPv4 (/ARP) and IPv6 traffic and allow only ZeroTier-assigned IP addresses
drop                      # drop cannot be overridden by capabilities
  not ethertype ipv4      # frame is not ipv4
  and not ethertype arp   # AND is not ARP
  and not ethertype ipv6  # AND is not ipv6
  or not chr ipauth       # OR IP addresses are not authenticated (1.2.0+ only!)
;

# Allow SSH, HTTP, and HTTPS by allowing all TCP packets (including SYN/!ACK) to these ports
accept
  ipprotocol tcp
  and dport 22 or dport 80 or dport 443
;

# Create a tag for which department someone is in
tag department
  id 1000                 # arbitrary, but must be unique
  enum 100 sales          # has no meaning to filter, but used in UI to offer a selection
  enum 200 engineering
  enum 300 support
  enum 400 manufacturing
;

# Allow Windows CIFS and netbios between computers in the same department using a tag
accept
  ipprotocol tcp
  and tdiff department 0  # difference between department tags is 0, meaning they match
  and dport 139 or dport 445
;

# Drop TCP SYN,!ACK packets (new connections) not explicitly whitelisted above
break                     # break can be overridden by a capability
  chr tcp_syn             # TCP SYN (TCP flags will never match non-TCP packets)
  and not chr tcp_ack     # AND not TCP ACK
;

# Create a capability called "superuser" that lets its holders override all but the initial "drop"
cap superuser
  id 1000 # arbitrary, but must be unique
  accept; # allow with no match conditions means allow anything and everything
;

# Accept other packets
accept;

Приложение под Windows  https://www.zerotier.com/download.shtml под Android так же есть .

  • Thanks 3
Link to comment
Share on other sites

Поднимем на втором устройстве ZeroTier One, в результате

Скрытый текст

/ # opkg install zerotier
Installing zerotier (1.2.4-1) to root...
Downloading http://entware-3x.zyxmon.org/binaries/mipsel/zerotier_1.2.4-1_mipsel-3x.ipk.
Installing libminiupnpc (2.0.20170509-1) to root...
Downloading http://entware-3x.zyxmon.org/binaries/mipsel/libminiupnpc_2.0.20170509-1_mipsel-3x.ipk.
Installing libnatpmp (20140401-1) to root...
Downloading http://entware-3x.zyxmon.org/binaries/mipsel/libnatpmp_20140401-1_mipsel-3x.ipk.
Configuring libminiupnpc.
Configuring libnatpmp.
Configuring zerotier.
/ # zerotier-one -p_номер_порта &

/ # ERROR: unable to add ip address 192.168.хх.15/24

/ # ifconfig zt0 192.168.хх.15 netmask 255.255.255.0

zt0       Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:B8  
          inet addr:192.168.хх.15  Bcast:192.168.хх.255  Mask:255.255.255.0
          inet6 addr: fe80::хххх:хххх:хххх:ххххх/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2800  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:42 (42.0 B)  TX bytes:1182 (1.1 KiB)

Интересен MTU - 2800 c обоих сторон

zt0       Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:30  
          inet addr:192.168.хх.17  Bcast:192.168.хх.255  Mask:255.255.255.0
          inet6 addr: fe80::хххх:хххх:хххх:хххх/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2800  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:336 (336.0 B)  TX bytes:450 (450.0 B)

 

Без имени-3.jpg

  • Thanks 2
Link to comment
Share on other sites

Дополнительная информация по командам  -> zerotier-cli /network и zerotier-cli /status и zerotier-cli /controller

Скрытый текст

zerotier-cli /network

[
 {
  "allowDefault": false,
  "allowGlobal": false,
  "allowManaged": true,
  "assignedAddresses": [
   "192.168.хх.4/24"
  ],
  "bridge": false,
  "broadcastEnabled": true,
  "dhcp": false,
  "id": "17ххххххххххххe5",
  "mac": "e6:хх:хх:хх:хх:e6",
  "mtu": 2800,
  "name": "E------I",
  "netconfRevision": 6,
  "nwid": "17ххххххххххххх5",
  "portDeviceName": "zt0",
  "portError": 0,
  "routes": [
   {
    "flags": 0,
    "metric": 0,
    "target": "192.168.хх.0/24",
    "via": null
   }
  ],
  "status": "OK",
  "type": "PRIVATE"
 }
 

"status": "OK",

 

zerotier-cli /status

{
 "address": "c3ххххххх6",
 "clock": 1497202551244,
 "cluster": null,
 "config": {
  "physical": null,
  "settings": {
   "portMappingEnabled": false,
   "primaryPort": ххххх,
   "softwareUpdate": "disable",
   "softwareUpdateChannel": "release"
  }
 },
 "online": true,
 "planetWorldId": 14хххххх8,
 "planetWorldTimestamp": 14хххххххххх4,
 "publicIdentity": "c3хххххх16:0:3c9хххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххc376",
 "tcpFallbackActive": false,
 "version": "1.2.4",
 "versionBuild": 0,
 "versionMajor": 1,
 "versionMinor": 2,
 "versionRev": 4

zerotier-cli /controller


{
        "controller": true,
        "apiVersion": 3,
        "clock": 1497246863541
}
 

работают GET и POST запросы, где auth из файла /opt/var/lib/zerotier-one/authtoken.secret

curl -v --request GET http://localhost:порт_запуска/controller/network?auth=ubхххххххххххххххххххххh
Note: Unnecessary use of -X or --request, GET is already inferred.
> GET /controller/network?auth=ub8kk8sdbyxvttzcadbnbaih HTTP/1.1
> Host: localhost:60600
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: application/json
< Content-Length: 2
<
[]/

 

 

 

Edited by vasek00
Link to comment
Share on other sites

  • 2 months later...

vasek00, Спасибо за подсказку по подключению. Теперь осталось еще настроить зоны. Например мне нужно, чтобы сеть зеротайр была внутри локалки. 

И да, этот пакет только в Entware3

Edited by varvad
Link to comment
Share on other sites

  • 1 year later...

Добрый день!

Столкнулся с необходимостью иметь доступ к локальной сети из интернета и понял, что от провайдера получаю серый IP. Распологаю следующим оборудованием: Версия Keenetic AIR, версия OS2.14.C.0.0-4 + NAS D-Link (подключен через LAN)

 

Сценарий и функционал который мне необходим до боли простой:

  1. Иметь доступ из внешнего интернета к web интефейсу Роутера и NAS, а так же к его установленным аддонам таким как торрент клиент, sycting и ряд подобных (вроде бы как решается пробросом портов)
  2. Иметь доступ из внешнего интернета к содержимому NAS (файлы, папки)

На сегодня почти разобрался с настройками KeenDNS, но понимаю, что скорость иногда может хромать.... (50-150 кб/сек, как-то маловато). В общем столкнулся в интернете с данным сервисом и хотелось бы его прикрутить к себе в роутер, таким образом, чтобы иметь доступ к локальной сети ихз интернета без необходимости установки доп программ в windows/Linux.

 

Так вот вопрос в чем: По вашим настройкам прошу дополнительно разъяснить следующую инфу:

  • Куда необходимо вводить данные команды?
  • Какие из предоставленного текста данные необходимо скорректировать (внести правки)
  • Плюс если можно подсказать пошагово, для "чайников" куда за чем вводить, дабы получить работающую систему, по сценарию, описанному выше.

 

 

От меня безмерная благодарность и баллы в карму, ибо что-то я уже почти с неделю хочу настроить все как надо, но что-то все никак.... (((

Edited by Michail Gaponenko
Корректировка текста для большей наглядности
Link to comment
Share on other sites

  • 2 weeks later...
  • 8 months later...

После обновления ZeroTier до версии 1.4.6 ошибка:

/ # ERROR: unable to add ip address 192.168.хх.50/24

больше не появляется и ZT при установке нормально получает ip адрес от центральной консоли ZT:

~ # ifconfig ztukuum2ay
ztukuum2ay Link encap:Ethernet  HWaddr 2A:08:63:01:15:A9
          inet addr:192.168.xx.50  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::2808:63ff:fe01:15a9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:2800  Metric:1
          RX packets:863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:849 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:91862 (89.7 KiB)  TX bytes:451953 (441.3 KiB)

~ #

,где ztukuum2ay - интерфейс ZeroTier.

Разместив команду вызова ZT (/opt/bin/zerotier-one -d ) в скрипте в /opt/etc/init.d/ или в /opt/etc/ndn/wan.d/ обеспечим запуск ZT при перезагрузке роутера, а доступ к нему из вне, разместив  в  /opt/etc/ndn/netfilter.d/ скрипт, содержащий строки:

iptables -I INPUT -i ztukuum2ay -j ACCEPT
iptables -t nat -A PREROUTING -d 192.168.xx.50 -p tcp --dport 80 -j DNAT --to-destination 192.168.xx.1:80

После чего в рамках виртуальной сети  ZeroTier по адресу 192.168.xx.50 будет открыт доступ к роутеру по http, ftp, ssh 

Вопрос состоит в следующем. В журнале событий роутера регулярно появляются записи вида:

[E] Oct 13 14:46:58 ndm: Network::Interface::Ip: unable to find ztukuum2ay as "Network::Interface::Ip".
[E] Oct 13 14:47:49 ndm: Core::Syslog: last message repeated 6 times.

То есть операционная система роутера об интерфейсе ZeroTier  "ztukuum2ay" ничего не знает? Можно ли как-то скрыть эти сообщения в журнале кроме как командой: system log suppress ndm?

 

Edited by VicSh
Link to comment
Share on other sites

  • 1 year later...

Здраствуйте! Такой вопрос. Установил Zerotier, появился его интерфейс, но прошивка роутера его не видит. Как "заставить" ее увидеть его? Хотелось бы добавить его в бридж

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...