Stunnel使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stunnel使用相关的知识,希望对你有一定的参考价值。

 

 建立加密隧道

使用 Stunnel 建立加密隧道

附件中的 Server 和 Clinet 都是已经配置好了的,只需修改 Server 的 stunnel.conf 的 connect 为实际的ip和端口即可投入使用,但是建议stunnel由自己重新生成一个以保安全。

假设你已经使用代理软件架设好了代理服务器,端口为 6700 (附带的 Stunnel.conf 设置的就是这个端口,你可以根据自己的需要修改)。
如果要启用客户端密码验证可以在代理软件中设置。

要通过 Stunnel 建立加密隧道则需要做以下的工作

1、创建服务器证书( 原文可见 http://www.stunnel.org/faq/certs.html#ToC5 )

Stunnel 服务方式需要一个证书文件。通过 openssl.exe 来创建服务器证书。

具体命令为


[ 复制 ] [ 运行 ] [ 另存为 ]

openssl req -new -x509 -days 365 -nodes -config openssl.cnf -out stunnel.pem -keyout stunnel.pem


这将会创建一个自己给自己签名的证书。参数的含义:

-days 365
使这个证书的有效期是 365 天,之后它将不能再用。

-new
创建一个新的证书

-x509
创建一个 X509 证书(自己签名的)

-nodes
这个证书没有密码

-config openssl.cnf
OpenSSL 使用的配置文件

-out stunnel.pem
把 SSL 证书写到哪里


[ 复制 ] [ 运行 ] [ 另存为 ]

-keyout stunnel.pem


把 SSL 证书放到这个文件中

这个命令将会问你以下问题(请根据自己的情况回答):


[ 复制 ] [ 运行 ] [ 另存为 ]

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:SiChuan
Locality Name (eg, city) []:Chengdu
Organization Name (eg, company) [Internet Widgits Pty Ltd]:PRCJQ
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.example.com
Email Address []:[email protected]


注意:Common Name (FQDN) 应该是运行 stunnel 机器的主机名。如果你能通过不同的主机名访问这台机器,有些 SSL 客户会警告这个主机的证书有问题,所以最好是使它和用户访问的主机名匹配。


[ 复制 ] [ 运行 ] [ 另存为 ]

openssl gendh 512 >> stunnel.pem


这将生成 Diffie-Hellman 部分, 追加到 pem 文件中。这个只有在你指定 stunnel 使用 DH 才需要。


[ 复制 ] [ 运行 ] [ 另存为 ]

openssl x509 -subject -dates -fingerprint -in stunnel.pem


这个命令是将你的证书信息在屏幕显示出来。

2、配置/运行 Stunnel

Stunnel 默认配置文件是 stunnel.conf
下面是服务方式配置文件内容示范:


[ 复制 ] [ 运行 ] [ 另存为 ]

# 使用服务器模式
client = no

key = stunnel.pem
cert = stunnel.pem

# 隐藏 Stunnel 的托盘图标(值为 no 时隐藏)
taskbar = yes

# 将代理服务器提供的端口加密映射成本机端口
[HTTP2SSL]
# 客户端连接的端口
accept = 8080
# 代理服务所在的IP及提供的端口
connect = 127.0.0.1:6700

含义:使用 stunnel.pem 证书,将 127.0.0.1:6700 的端口加密映射成本机 8080 端口,HTTP2SSL 是标识名,可以改成其他的标识。

直接运行stunnel-4.11.exe,就可以服务器方式启动 Stunnel 了。

3、将Stunnel 安装成 MS NT 服务方式(可选)
在 Stunnel 所有设置完成后,测试完毕后即可将 Stunnel 安装为服务。
运行 stunnel-4.11.exe -install 将会安装成服务。
运行 net start stunnel 启动 stunnel 服务。
运行 net stop stunnel 停止 stunnel 服务。
运行 stunnel-4.11.exe -uninstall 卸载 stunnel 服务。

注意:即使是 MS NT 服务方式启动,当启动 stunnel 4.11 服务的时候,在托盘还是有 Stunnel 的图标。不想托盘有 Stunnel 的图标,可以在 Stunnel.conf 里设置 taskbar = no

4、Stunnel 服务器配置好后即可以使用 Stunnel 客户端连接到 Stunnel 测试了。
Stunnel 服务器和客户端的区别仅在 stunnel.conf 的配置不同而已。
下面是客户方式配置文件内容示范:

# 使用客户模式

[ 复制 ] [ 运行 ] [ 另存为 ]

client = yes
[SSL2HTTP]
accept = 127.0.0.1:8888
connect = 127.0.0.1:8080


含义:使用客户方式方式,将 127.0.0.1:8080 的端口解密映射成本机 8888 端口,SSL2HTTP 是标识名,可以改成其他的标识。

accept设置为127.0.0.1:8888,只允许127.0.0.1--本机使用这个 8888 端口代理,禁止了其他人使用你的机器作代理。

直接运行stunnel-4.11.exe,就可以以客户方式启动 Stunnel 了。

5、设置浏览器的代理地址
浏览器的代理地址设置为 127.0.0.1 端口设置为 accept 中设置的值。即可通过 Stunnel 实现加密代理访问。

以上是关于Stunnel使用的主要内容,如果未能解决你的问题,请参考以下文章

数据加密:Stunnel

linux运维架构之路-dnsmasq+Stunnel+sniproxy加密代理

用ccproxy + stunnel做个加密代理

香港主机Squid+Stunnel代理搭建

虚拟环境实现SSH隧道

Stunnel服务端