1.1.1. 22.spiped 原理

简介

假如公司有两个机房,因为紧急需求需要跨机房读取 Redis 数据。应用部署在 A 机房,存储在 B 机房。如果使用普通的 tcp 连接,会将传输的数据暴露在公网,非常不安全,容易被窃听。

没有 SSL 代理

当有了 SSL 代理软件,就想给 Redis 穿上了隐形的外套。spiped 是 Redis 官方推荐的 SSL 代理软件。

有 SSL 代理

原理

流程图

左边的 spiped 进程 A 负责接收来自 Client 发送过来的请求,加密后传给右边的 spiped 进程 B。spiped B 接收到数据后解密传递给 Server。然后 Server 再走一次反向流程回复给 Client。

spiped 进程需要成对出现,相互之间使用相同的共享秘钥来加密解密消息。

安装

mac 用户

> brew install spiped

linux

> apt-get install spiped
> yum install spiped

生成随机秘钥文件

# 随机的 32 个字节
> dd if=/dev/urandom bs=32 count=1 of=spiped.key
1+0 records in
1+0 records out
32 bytes transferred in 0.000079 secs (405492 bytes/sec)
> ls -l
rw-r--r--  1 qianwp  staff  32  7 24 18:13 spiped.key

使用密钥文件启动服务器 spiped 进程,172.16.128.81是我本机的公网 IP 地址;

# -d 表示 decrypt(对输入数据进行解密),-s 为源监听地址,-t 为转发目标地址
> spiped -d -s '[172.16.128.81]:6479' -t '[127.0.0.1]:6379' -k spiped.key
> ps -ef|grep spiped
501 30673     1   0  7:29 下午 ??         0:00.04 spiped -d -s [172.16.128.81]:6479 -t [127.0.0.1]:6379 -k spiped.key

这个 spiped 进程监听公网 IP 的 6479 端口接收公网上的数据,将数据解密后转发到本机回环地址的 6379 端口,也就是 redis-server 监听的端口。

使用密钥文件启动客户端 spiped 进程,172.16.128.81是我本机的公网 IP 地址;

# -e 表示 encrypt,对输入数据进行加密
> spiped -e -s '[127.0.0.1]:6579' -t '[172.16.128.81]:6479' -k spiped.key
> ps -ef|grep spiped
501 30673     1   0  7:29 下午 ??         0:00.04 spiped -d -s [172.16.128.81]:6479 -t [127.0.0.1]:6379 -k spiped.key
501 30696     1   0  7:30 下午 ??         0:00.03 spiped -e -s [127.0.0.1]:6579 -t [172.16.128.81]:6479 -k spiped.key
Copyright © Kagami丶 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-12-10 20:25:25

results matching ""

    No results matching ""