标签归档:stunnel

Stunnel构建加密隧道

最新版本可到:http://www.stunnel.org/downloads.html下载,Stunnel工作过程就是在客户端和服务端之间建立一条加密通道,所有Stunnel有两个工作模式,默认工作模式是服务端,如果需要作为客户端,那么就是需要使用client=yes来指定。客户端加密数据需要一个证书(可以自签发),服务端需要私钥,以解密数据,这个工作过程就是HTTPS的工作流程。

一般使用yum或者apt-get安装即可。

##############################################
###
apt-get update
apt-get install openssl

###
apt-get install stunnel

#开机启动,ENABLED改为1
vi /etc/default/stunnel4
ENABLED=1

#
cd /etc/stunnel
vi stunnel.conf

[squid]
accept = 4041 
connect = 127.0.0.1:4040
cert = /etc/stunnel/stunnel.pem

#产生证书 私钥 - 实际就是产生一对RSA秘钥,公钥在证书中
openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 3650
cat key.pem cert.pem >> /etc/stunnel/stunnel.pem

#启动
/etc/init.d/stunnel4 restart


##############################################
## 客户端
client = yes
[squid]
accept = 127.0.0.1:4444
connect = [服务端IP]:4041
cert = D:/stunnel.pem

添加监控脚本:

cat stunnel.sh 
#!/bin/bash

live=`ps -efH | grep '/usr/bin/stunnel' | grep -v 'grep' | wc -l`
if [ $live -eq 0 ]; then
    /usr/bin/stunnel 2>&1 >> /dev/null
fi

Windows下下载一个GUI工具:
stunnel

默认Stunnel以服务器为工作模式,所以在作为客户端时务必添加client = yes。

对于客户端,可以开启多个端口,分别指向多个代理:

client = yes
cert= E:/var/stunnel.pem

[fq1]
accept = 4441
connect = 47.90.x.43:4041

[fq2]
accept = 4442
connect = 47.90.x.152:4041

[fq3]
accept = 4443
connect = 47.90.x.140:4041

[fq4]
accept = 4444
connect = 47.90.x.215:4041