stunnel 教程

coolsd 2023-1-13 141

环境:

服务端(虚拟机):ubuntu18.04 + mysql5.7

客户端:Windows10

stunnel:stunnel5

1. 服务端

[1]. 安装 openssl 1.0.2

tar -xzvf openssl-1.0.2u.tar.gz
cd openssl-1.0.2u
./config -fPIC --prefix=/usr/local/openssl/ enable-shared
make 
make install 
cp -r /usr/local/openssl/include/openssl /usr/include

[2]. 安装 stunnel5

click me, 去下载
tar -xzvf stunnel-5.62.tar.gz
cd stunnel-5.62
./configure
make
make install

[3]. 在服务端生成2个证书

一个服务端的stunnel_s.pem,一个客户端的stunnel_c.pem;

openssl req -new -x509 -days 36500 -nodes -out stunnel_c.pem -keyout stunnel_c.pem
openssl req -new -x509 -days 36500 -nodes -out stunnel_s.pem -keyout stunnel_s.pem

[4]. 配置stunnel

mkdir /etc/stunnel
touch /etc/stunnel/stunnel.conf
vim stunnel.conf

在stunnel.conf中输入以下语句:

client = no
debug = 7
output = /var/log/stunnel.log
pid = /var/run/stunnel.pid
cert = /etc/stunnel/stunnel_s.pem
key = /etc/stunnel/stunnel_s.pem
[mysql_test]
accept = 3307
connect = 127.0.0.1:3306

最后再将之前生成的stunnel_s.pem和stunnel_c.pem拷贝到/etc/stunnel下,并chmod 400 *.pem。


2. 客户端

[1]. 安装stunnel客户端

click me, 去下载

stunnel-5.65-win64-installer.exe

[2]. 在stunnel安装目录下找到config目录,此目录下有stunnel.conf配置文件,自带的,可以将其删除,然后自行创建stunnel.conf, 并输入以下内容:

client = yes
debug = 7
output = stunnel.log
[mysql_test]
accept = 3305
connect = 192.168.64.131:3307
cert = stunnel.pem

[3].开启stunnel客户端和stunnel服务器

[4]. 打开stunnel.exe, 然后打开cmd, 执行 mysql -h 127.0.0.1 -P 3305 -u root -p,并输入密码。

发现此时已经连接到远程服务器的数据库,并且已经为其建立了加密隧道。

3. 下面对stunnel客户端和服务端的配置文件的关键点进行解析一下

客户端:

[mysql_test]
accept = 3305						# 监听本地3305端口的数据
connect = 192.168.64.131:3307		# 监听本机3305端口的加密数据并将其传输到服务端192.168.64.131的3307端口上

服务端:

[mysql_test]
accept = 3307						# 监听本地3307端口的数据
connect = 127.0.0.1:3306			# 监听本地3307端口的数据并将其传输到本地127.0.0.1的3306端口上

可以大概这么理解:当我们在客户端的cmd中输入:mysql -h 127.0.0.1 -P 3305 -u root -p时,

实际上我们在本地3305的端口上开启了监听,那么3305端口的数据将会被加密传输到192.168.64.131主机的3307端口上,

而到达192.168.64.131的3307端口上后,又将其转发到192.168.64.131主机的3306端口上,也即是127.0.0.1:3306。

这样,就为客户端和服务端之间的mysql通信建立了一条stunnel加密隧道。

4. 可能参考到的博客:

[1]. https://www.cnblogs.com/cutmr/p/15677704.html

[2]. https://blog.csdn.net/qq_43667702/article/details/87020490

————————————————

版权声明:本文为CSDN博主「风赢十三水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/TianYanRen111/article/details/128046136


最新回复 (0)
返回
发新帖
本站文章均收录自网上,仅做参考用。 欢迎大家添砖加瓦,发表一些自己使用过程中遇到的问题以及解决方法。