一、介绍
Spiped 安全管道守护程序
Spiped(发音为“ess-pipe-dee”)是一个实用程序,用于在套接字地址之间创建对称加密和身份验证的管道,以便可以连接到一个地址(例如,localhost上的UNIX套接字)并透明地与另一个地址建立连接(例如,不同系统上的UNIX套接字)。这类似于“ssh -L”功能,但不使用 SSH,并且需要预共享的对称密钥。
Spiped使用强大且易于理解的加密组件:初始密钥协商使用HMAC-SHA256和经过身份验证的Diffie-Hellman密钥交换在标准的2048位“组14”上执行;密钥协商完成后,数据包在 CTR 模式下使用 AES-256 加密传输,并使用 HMAC-SHA256 进行身份验证。代码的简单性 - 总共约6000行C代码,其中2000行以下是特定于spiped的(其余的是源自kivaloo和Tarsnap的库代码) - 使得spiped不太可能有任何安全漏洞。
在作者的2.5 GHz Intel Core 2笔记本电脑上,spiped以大约300 Mbps的速度运行。
二、安装
1、源码安装
https://www.tarsnap.com/spiped/spiped-1.6.2.tgz
2、docker安装
docker pull spiped
此图像自动从文件 () 中获取密钥,并在前台 () 中 spipip 运行。除此之外,它采用与喷嘴本身相同的选项。您可以通过运行不带参数的映像来列出可用标志:/spiped/key-k-F
$ docker run -it --rm spiped
usage: spiped {-e | -d} -s <source socket> -t <target socket> -k <key file>
[-DFj] [-f | -g] [-n <max # connections>] [-o <connection timeout>]
[-p <pidfile>] [-r <rtime> | -R]
例如,运行 spiped 以在端口 8025 上获取加密连接并将其转发到 localhost 上的端口 25,如下所示:
$ docker run -d -v /path/to/keyfile:/spiped/key:ro -p 8025:8025 --init spiped -d -s '[0.0.0.0]:8025' -t '[127.0.0.1]:25'
通常,会将此映像与另一个链接的容器组合在一起。以下示例将采用端口 9200 上的加密连接,并将它们转发到名称为的容器中的端口 9200:elasticsearch
$ docker run -d -v /path/to/keyfile:/spiped/key:ro -p 9200:9200 --link elasticsearch:elasticsearch --init spiped -d -s '[0.0.0.0]:9200' -t 'elasticsearch:9200'
如果您不需要任何权限来绑定到特权端口,则可以传递以使 spiped 以非特权用户身份运行:--user spiped
$ docker run -d -v /path/to/keyfile:/spiped/key:ro --user spiped -p 9200:9200 --link elasticsearch:elasticsearch --init spiped -d -s '[0.0.0.0]:9200' -t 'elasticsearch:9200'
生成密钥
您可以通过运行以下命令来保存名为该文件夹的新密钥文件:spiped-keyfile/path/to/keyfile/
$ docker run -it --rm -v /path/to/keyfile:/spiped/key spiped spiped-generate-key.sh
然后安全地传输到另一台主机(例如,通过使用 scp)。spiped-keyfile
三、使用
服务端命令
dd if=/dev/urandom bs=32 count=1 of=keyfile
spiped -d -s '[0.0.0.0]:8025' -t '[127.0.0.1]:25' -k keyfile
客户端命令
spiped -e -s '[127.0.0.1]:25' -t $SERVERNAME:8025 -k keyfile
评论区