登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SeaRiver Blog

实力才是你一生最好的依靠!

 
 
 

日志

 
 

stunnel介绍  

2010-04-15 11:26:45|  分类: SSH |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
常见的网络传输情况,在这种情况下,数据在网络中的传输没有经过任何保护,当网络在遭受黑客攻击或黑客入侵时,重要数据很容易被窃取。为了使我们局域网传 输的重要数据都是安全的,我们可以利用Stunnel工具对数据进行加密。

stunnel介绍 - SeaRiver - SeaRiver  Blog
图二,普通网络

Stunnel (http://www.stunnel.org/) 是一款可以加密网络数据的TCP连接,并可工作在Unix和Windows平台上,它采用Client/Server模式,将Client端的网络数据采 用SSL(Secure Sockets Layer)加密后,安全的传输到指定的Server端再进行解密还原,然后再发送到访问的服务器。在加密传输过程中,可充分确保数据的安全性,我们只要 把Server端程序安装在局域网外面的一台服务器上,即可保证传输的数据在局域网内是安全的,如图三所示。

stunnel介绍 - SeaRiver - SeaRiver  Blog
图三,Stunnel加密后的网络

操作过程:

Stunnel是一款免费的工具,可以在这里下载。下面我们介绍一下具体的使用。
  1. 下载Stunnel Client端程序,并解压到本机的C:\Program Files目录下。
  2. 下载Stunnel Server端程序,并解压后放在外网的服务器上。
  3. 分别配置stunnel.conf文件。
  4. 更改本机应用程序的网络连接配置。
  5. 分别运行stunnel.-4.04.exe执行文件。
说明:
我们使用Stunnel,需要在外网有一台有管理权限的服务器,来运行Stunnel的Server程序。配置好Stunnel.conf 后,可将执行文件在启动菜单中建立快捷方式,这样让每次开机时,能自动运行。Stunnel技术是将传输的信息加密后,通过Server端的服务器进行解 密才到达的目的主机,所以在选择Server端服务器的时候,对服务器的带宽速度有一定的要求。

Stunnel的配置:

Client和Server端都包含stunnel.conf配置文 件,格式如下表所示:

Client端stunnel.conf文件内容Server端stunnel.conf文件内容
# Use it for client mode
        client = yes
#Client-level configuration
        [ 应用服务名称 ]
        accept   =本地IP : 目标端口
        connect =Server端IP : 指定的端口
# Use it for server mode
        client = no
#Server-level configuration
        [ 应用服务名称 ]
        accept   = 指定的端口
        connect =目标服务器IP : 目标端口


常见应用实例:

Stunnel.conf文件配置比较简单,下面我们介绍一些常见应用配置,其中Client端是放在本机,IP是127.0.0.1,Server端是 放在外网的服务器上,IP是202.151.90.28。

1.加密邮件传输:

加密邮件,需要将发送和接收的过程都要进行保 护,那么我们就要对POP3和SMTP传送方式进行加密。如果我们有一个xxx@colasoft.com.cn信箱,服务器的IP是 202.108.44.153,配置文件stunnel.conf如下:

Client端SMTP和POP3文件内容Server端SMTP和POP3文件内容
        [smtp.colasoft.com.cn]
        accept   = 127.0.0.1:25
        connect = 202.151.90.28:125

        [pop3.colasoft.com.cn]
        accept   = 127.0.0.1:110
        connect = 202.151.90.28:1110
        [smtp.colasoft.com.cn]
        accept   = 125
        connect = 202.108.44.170:25

        [pop3.colasoft.com.cn]
        accept   = 1110
        connect = 202.108.44.153:110

如果有多个邮件传输需要加密,则增加相应的POP3和SMTP设置即可。设置好了配置文件,我们还需要将邮件客户端(常见的为Foxmail或 Outlook)与其对应,设置如下:
发送的邮件地址改为:127.0.0.1        端口改为:125
接收的邮件地址改 为:127.0.0.1        端口改为:1110

2.加密FTP传输:

FTP是比较早的文件传输协议,内容都是 以明文方式传输,我们利用Stunnel后,也可以让FTP的传输非常安全,现在我们只需要在前面的stunnel.conf内容里面增加以下配置信息:

Client端FTP的配置Server端FTP的配置
        [ftp.net130.com]
        accept   = 127.0.0.1:21
        connect = 202.151.90.28:121
         [ftp.net130.com]
         accept   = 121
         connect = 218.7.9.73:21

FTP软件(如CuteFTP)也要做相应更改:
登录的远程地址改为:127.0.0.1        端口改为121

3.加密HTTP网站访问传输:

我们不能对所有的网站访问都进行加密,因为太多,但对于很重要的网站,我们也可以用 Stunnel来保护访问的内容不受到监听。例如我们要访问www.colasoft.com.cn,网站IP地址是 202.108.36.172,HTTP的配置如下:

Client端HTTP的配置Server端HTTP的配置
        [www.colasoft.com.cn]
        accept   = 127.0.0.1:80
        connect = 202.151.90.28:8080
        [www.colasoft.com.cn]
        accept   = 8080
        connect = 202.108.36.172:80



创建服务器证书

stunnel 客户方式不需要证书。stunnel 服务方式需要一个证书文件。
stunnel 在 SSL Http Proxy 服务器是以服务方式运行的,所以必须要有一个证书。通过 openssl.exe 创建服务器证书。下面我将 stunnel 关于创建证书的翻译如下:
“…运行下面的命令
openssl req -new -x509 -days 365 -nodes -config openssl.cnf -out stunnel.pem -keyout stunnel.pem
这将会创建一个自己给自己签名的证书。参数的含义:
-days 365
使这个证书的有效期是1年,之后它将不能再用。
-new
创建一个新的证书
-x509
创建一个 X509 证书(自己签名的)
-nodes
这个证书没有密码
-config openssl.cnf
OpenSSL 使用的配置文件 (可能需要修改的有[CA_default]和[req_distinguished_name]这两个 section,译者)
-out stunnel.pem
把 SSL 证书写到哪里
-keyout stunnel.pem
把 SSL 证书放到这个文件中

这个命令将会问你以下问题:
问题的回答示范
Country name PL, UK, US, CA
State or Province name Illinois, Ontario
Locality Chicago, Toronto
Organization Name Bill's Meats, Acme Anvils
Organizational Unit Name Ecommerce Division
Common Name (FQDN) www.example.com

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

openssl gendh 512>> stunnel.pem
这将生成 Diffie-Hellman 部分, 追加到 pem 文件中。这个只有在你指定 stunnel 使用 DH 才需要, 但默认是不用的。(实际好象是必须的,可能是后来改了,译者)

openssl x509 -subject -dates -fingerprint -in stunnel.pem
这个命令是将你的证书信息在屏幕显示出来。


  评论这张
 
阅读(4890)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018