安装Stunnel来实现正向代理邮件

摘要:
文章:Tiele和Cat于2017年8月开始使用yum安装来安装stunnel。版本低无所谓。毕竟,我只是使用加密代理发送和接收电子邮件。仅当您指定要使用DH的stunnel时,才需要此选项。在win平台上安装foxmail 7.2进行测试。电子邮件服务器设置为stunnel服务器。现在我们有一个初步的疑问,即发送服务器,即stunnel所在的服务器,是否也需要安装邮件服务器以作为代理发送?请注意,应在接收服务器上检查SSL端口。然后该端口是stunnel设置为监听的1110端口。它将有助于加密传入邮件并将其发送回Windows上的foxmail。

文:铁乐与猫
2017年8月

一开始我是使用yum install来安装stunnel的
安装Stunnel来实现正向代理邮件第1张
感觉版本低点也无所谓,毕竟只是拿来加密代理一下邮件收发。

可是后来发现之前下载的最新官网版本的tar包里有很多方便的tools工具,而yum安装的并没有,很不方便,
另外考虑到到时候windows客户端的安装,还是同一版本比较好,所以换回卸载旧版本的用编译安装(windows平台的有下相应的安装包)
cd 进解压后的原代码安装包
./configure 运行编译,如果你想指定安装位置也可以自行加上参数--prefix=/usr/local/stunnel 之类
make
make install

安装Stunnel来实现正向代理邮件第2张

进入到源代码包的tools子目录下运行make cert来生成密钥,相当于运行

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

(不过直接敲的话你得指定好stunnel.cnf和openssl)所以还是推荐像官网说的用make cert。
安装Stunnel来实现正向代理邮件第3张

如果不用make cert 的繁琐步骤参考:

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 使用的配置文件 (路径最好指定,所以这个就体现了在tools子目录下敲make cert的方便之处了)
-out stunnel.pem 
把 SSL 证书写到哪里(同样,这里如果用make cert的还会自动替你将pem复制到/usr/local/etc/stunnel下)
-keyout stunnel.pem
把 SSL 证书放到这个文件中

之后将会问你以下问题(请根据自己的情况回答):

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

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

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

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

配置/运行 Stunnel
Stunnel 默认配置文件是 stunnel.conf,编译安装的时候,目录下已有样例模板,直接复制出来就行了:
cp /usr/local/etc/stunnel.conf-sample stunnel.conf
当然模板配置要根据自己的实际情况再进行修改。
我这边主要是用于做邮件加密(变相的做邮件正向代理),所以大致将关于mail的配置修改:
安装Stunnel来实现正向代理邮件第4张
(后补:要在server块做设置,这个作为客户端的不用改!)
后面看到还有server块的,有可能是直接在server块改……

启动服务的时候也出现问题,stunnel这个原有的不能使用,报错不知道命令的参数;
后来生成的stunnel3看样子倒是能,只是报需要证书,有可能与我配置文件注释掉了那些cert有关。
安装Stunnel来实现正向代理邮件第5张

安装Stunnel来实现正向代理邮件第6张

大胆尝试,将之前的修改的配置注释掉,修改server区块的如图下:
安装Stunnel来实现正向代理邮件第7张
(后补:注---上图配置ssmtp的时候是错误的,应该为smtp.mxhichina.com:25才对!)

结果还是不行,后来想了想,可能是因为编译安装的,需要直接指定conf文件的路径!
安装Stunnel来实现正向代理邮件第8张

终于搞明白,还是要用回stunnel这个程序,stunnel3这个是另外模式的。
这样一来,我对编译安装的软件启动运行之类算是更深刻了。
其实前面nginx和redis也是同理,只是那个时候还不深刻,照着文档来做,没有去消化理解到。编译和yum安装的这方面不同。

安装Stunnel来实现正向代理邮件第9张
正确启动方法:/usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
(运行脚本、指定配置文件)

做好服务端的了,就要去另外一台win平台上安装客户端(其实就是同一套,只是配置文件里设置成客户模式)来做测试了。

在win平台上安装foxmail7.2测试,收发邮箱服务器设置的是stunnel的这台服务器。
安装Stunnel来实现正向代理邮件第10张
然而测试的效果是能收不能发。
现在初步怀疑,是不是发件服务器,也就是stunnel也在的服务器上也要安装邮件服务器来作为代发送?
注意,收件服务器要勾选SSL端口才行,然后端口就是stunnel设置监听的1110端口,它会帮忙收邮件加密传送回win上的foxmail。

我检查了一下stunnel的配置文件,发现我将smtp服务器的地址给填错了……正确的如下:
安装Stunnel来实现正向代理邮件第11张
将之前的stunnel服务给kill 进程pid号停掉后,再指定配置文件启动。
再测试就成功可以发件了。

END

免责声明:文章转载自《安装Stunnel来实现正向代理邮件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇android categoryLinux链接脚本学习--lds(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用反射机制调用属性和私有成员与代理模式的介绍

使用反射机制调用属性: 通过反射机制可以获得类的属性,获得到的属性同样的可以进行赋值、得值操作,调用getField方法并传递属性的名称可以获得【学Java,到凯哥学堂kaige123.com】指定的属性,调用getFields方法则可以获得全部属性,但是这种方式不能获得私有属性: 代码示例: Student类示例: 运行结果: 从运行结果可以看出只...

Android 蓝牙开发(1)

普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据。应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径。使用 Bluetooth API Android 应用可以执行下面的操作: 扫描其他蓝牙设备 查询本地蓝牙适配器的配对蓝牙设备 建立 RFCOMM 通道...

【Mybatis进阶】动态代理

如果你想更深刻的理解Mybatis动态代理的原理,那么你应该先知道 什么是代理模式? 在没有动态代理的时候Mybatis是如何实现dao层的? 什么是代理模式 具体可以阅读笔者的博客—— 代理模式 在没有动态代理的时候Mybatis是如何实现dao层的 本篇博客基于mybatis的环境已经搭建完成,如果不知道如何搭建,具体可以阅读笔者的博客——【从零开...

深入理解Android相机体系结构之3---相机服务层

一、简介 Camera Service被设计成一个独立进程,作为一个服务端,处理来自Camera Framework 客户端的跨进程请求,并在内部进行一定的操作,随后作为客户端将请求再一次发送至作为服务端的Camera Provider,整个流程涉及到了两个跨进程操作,前者通过AIDL机制实现,后者通过HIDL机制实现,由于在于Camera Provide...

Foxyproxy 火狐代理插件

火狐上的插件autoproxy己经很不好用了,总是不能更新规则,而foxyproxy可以很好的替代它。 Foxyproxy的设置有一点复杂,现在记录一下: 在代理服务器中设置代理,可以为它添加一个特殊的颜色 在模式订阅中添加规则:https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt,...

Sql Server 常用系统存储过程大全

-- 来源于网络 -- 更详细的介结参考联机帮助文档 xp_cmdshell --*执行DOS各种命令,结果以文本行返回。 xp_fixeddrives --*查询各磁盘/分区可用空间 xp_loginconfig --*报告SQL Server 实例在Windows 上运行时的登录安全配置 xp_logininfo --*返回有关Windows 认证登录...