18
2023
04
15:19:38

使用Tinc组建安全可靠的虚拟局域网

说明:Tinc 与 N2N、PeerVPN 以及 ZeroTier 等属于一类,是一款轻量型的 GNU 协议下的开源软件,通过隧道以及加密技术在互联网点与点之间建立隧道。其实 Tinc 可以代替 Ze­roTier,虽然 Ze­roTier 免费版也足够用,但用着 Ze­roTier 的公共 Moon/WEB 面板,总感觉差了点意思。而 Tinc 就是全部资源都归自己管,并且可以像普通的网络设备那样,不需要去适配其他已经存在的软件。所以他就可以很安全的在点与点之间传输数据,相对安全。


tinc.jpg



官方网站:https://www.tinc-vpn.org/
源码地址:https://tinc-vpn.org/git/tinc

他还有其他几大的特点:

  • 加密 / 认证 / 压缩

  • 自动全网状路由

  • 易于扩展网络节点

  • 能够进行网络的桥接

  • 跨平台支持

  • IPv6 支持

安装

Tinc 在各个发行版的仓库中都可以找到,例如 De­bian / Ubuntu / Cen­tOS /ma­cOS 等系统就可以通过下面的命令安装:

#Debian/Ubuntu
apt-get install tinc

#CentOS
yum install tinc

#macOS
brew install tinc --devel

其他平台下载:

An­droid:Tinc App ;IOS (需越狱):Cydia packages;Win­dows 官方下载地址

配置

目录结构

/etc/tinc
└── dock
    ├── hosts
    │   ├── Server
    │   └── Client
    ├── rsa_key.priv
    ├── tinc.conf
    ├── tinc-down
    └── tinc-up
  • /etc/tinc/dock 目录下的文件都属于dock这个网络

  • /etc/tinc/dock/hosts 目录是存放其他用户或者说是其他网络的public key以及他们的 ip 地址

  • rsa_key.priv 本网络的私钥

  • tinc.conf 本网络的配置文件

  • tinc-down 本网络关闭时执行的脚本

  • tinc-up 本网络启动时执行的脚本

服务端配置

首先开启 Linux 转发,在 /etc/sysctl.conf 设置 net.ipv4.ip_forward = 1,并通过 sysctl -p 来应用配置。

修改 tinc.conf 配置文件

Name = Server
Interface = tinc
Mode = switch
Compression=9
Cipher  = aes-256-cbc
Digest = sha256
PrivateKeyFile=/etc/tinc/dock/rsa_key.priv
  • Name 主机名称

  • Interface 隧道所使用的网卡名称

  • Mode 有三种模式,分别是 router / switch / hub ,相对应我们平时使用到的路由、交换机、集线器 (默认模式 router)

  • Compression UDP 数据包压缩级别。可选有 0 (关闭),1 (fast zlib) 至 9 (best zlib),10 (fast lzo) 和 11 (best lzo)

  • Cipher 加密类型。可选 aes-128-cbc aes-256-cbc 等

  • Digest rsa 加密协议强度。可选 sha128 sha1 等

  • PrivateKeyFile 服务器私钥的位置

修改 tinc-up 和 tinc-down,用 Windows 作为服务器无需这两个文件

tinc-up
#!/bin/shifconfig $INTERFACE <内网ip> netmask 255.255.255.0
tinc-down
#!/bin/shifconfig $INTERFACE down

添加执行权限

chmod +x tinc-*

在 hosts 文件夹内添加节点配置文件

Subnet=10.1.3.1/32
Address=149.129.88.238
Port=57734
  • Subnet 宣告的路由地址

  • Address 服务器的外网 IP

  • Port 指定 tinc 连接端口(默认端口655)

生成私钥和公钥

tincd -n dock -K4096

公钥自动添加到 hosts 文件夹内的节点配置文件

客户端配置

客户端的 tinc.conf 与服务器的参数基本上相同,只需要修改 Name

在 hosts 文件夹内添加新的节点配置文件

Subnet=10.1.3.2/32

tinc-up 和 tinc-down 跟服务器配置基本一样,只需要修改 tinc-up 的内网 ip,Windows 客户端无需这两个文件

生成私钥和公钥

tincd -n dock -K4096

将服务端的节点配置文件放到客户端的 hosts 文件夹内,并将客户端的节点配置文件放到服务端的 hosts 文件夹内

运行

后台启动

Win­dows 端需要先安装虚拟网卡,在 tinc 的安装目录下有虚拟网卡的驱动安装包,安装完成后需要将虚拟网卡名称改为与 tinc.conf 文件中的 Interface 名称相同,并且手动设置虚拟网卡的 IP 地址和子网掩码,然后进入到 tinc 的安装目录下再以管理员的身份运行,运行后会自动创建系统服务,需要停止的时候在 Win­dows 系统服务管理中停止服务

#Linux/MacOS
tincd -n dock
#Windows(需要管理员权限)
tincd.exe -n dock

停止运行,该命令在 Win­dows 端会停止运行并删除系统服务

#Linux/MacOS
tincd -n dock -k
#Windows(需要管理员权限)
tincd.exe -n dock -k

调试模式

#Linux/MacOS
tincd -n dock -D -d 3
#Windows
tincd.exe -n dock -D -d 3

最后

抓包可以看出,我本地与服务器之间的连接已经数据传输是加密的,而如果你对数据的传输有兴趣的话,只需要将抓包的网卡设置成上面设置的网卡(tinc)即可,在 tinc 传输的数据已经是经过解密的了,因此抓包可以很好的复原传输的过程。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/3921.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: