程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql 加密stunnel

mysql 加密stunnel

編輯:關於MYSQL數據庫

因工作需要 需做個stunnel加密測試:

Stunnel 通信加密的測試:

在server端和clIEnt端 都運行stunnel程序,對MySQL進行加密模擬

部署:

Server

1.       安裝和配置 MySQL:

1.1. 安裝

yum install mysql-server MySQL

2.2       配置MySQL

MySQL –uroot

授權172.31.12.139主機遠程登錄MySQL使用root帳號

mysql> grant all privileges on *.* to [email protected] identifIEd by "passWordforMySQL";

Query OK, 0 rows affected (0.01 sec)

ht syntax to use near 'database' at line 1

MySQL> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| MySQL              |

+--------------------+

2 rows in set (0.00 sec)

2. stunnel配置

2.1使用yum或者rpm包安裝stunnel

2.2 配置:

生成證書:

cd /etc/stunnel

下面生成一個自簽名的證書

openssl req -x509 -nodes -days 36500   -newkey rsa:1024    -keyout stunnel.pem -out stunnel.pem

上述生成一有效期為10年 名字為stunnel.pem的證書。

注釋 :req 是 PKCS#10 證書請求和證書生成工具 ,req 命令主要是建立和處理證書請求(以 PKCS#10 格式的)。它可以建立 self-signed 證書,這樣一個證書就是一個根證書

注釋 :-x509 表示生成一個自簽名的證書,而不是一個證書請求。

注釋 :-days 和 -x509 選項一起用,表示證書的有效期,默認是 30 天

編輯配置文件 stunnel.conf

vi /etc/stunnel/stunnel.conf

cert = /etc/stunnel/stunnel.pem #證書
setuid = nobody
setgid = nobody
pid = /tmp/stunnel.pid
debug = 7
output = /var/log/stunnel.log 日志輸出
[MySQLs] #名字任意 只要好記即可。
accept   = 3309 # accept服務器端監聽外部鏈接的端口
connect = 3306 # connect服務器端真實服務使用的端口,比如 MySQL是3306. apache默認是80

3. 啟動stunnel

3.1在命令行輸入 stunnel:

表明stunnel已經對MySQL進行ssl加密

3.2 檢查使用netstat -npl

3.3 防火牆規則:

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -s 172.31.12.139 -p tcp -m tcp --dport 3309 -j ACCEPT

查看stunnel日志

客戶端:

1.       安裝MySQL工具:

yum install MySQL

2. stunnel配置

2.1使用yum或者rpm包安裝stunnel

2.2 配置:

客戶端需要使用服務器端的生成的stunnel.pem直接復制過來即可。

編輯客戶端配置文件 stunnel.conf

vi /etc/stunnel/stunnel.conf

cert =/etc/stunnel/stunnel.pem
pid = /tmp/stunnel.pid
setuid = nobody
setgid = nobody
debug=7
output=/var/log/stunnel.log
clIEnt = yes #客戶端需要打開
[MySQLs]
accept   = 3309 本地端口
connect = 172.31.12.198:3309 鏈接服務器的ip地址以及端口

2.3 啟動stunnel

在命令行輸入 stunel

查看客戶端stunnel日志

查看進程監聽

登錄測試

[root@server1 stunnel]# MySQL -h 127.0.0.1 -uroot -p -P 3309

Enter passWord:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 27

Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

MySQL>

客戶端 stunnel日志:

2010.09.02 14:04:27 LOG7[1852:3086244752]:    0 server connects (SSL_accept())

2010.09.02 14:04:27 LOG7[1852:3086244752]:    0 server connects that finished

2010.09.02 14:04:27 LOG7[1852:3086244752]:    0 server renegotiations requested

2010.09.02 14:04:27 LOG7[1852:3086244752]:    7 session cache hits

2010.09.02 14:04:27 LOG7[1852:3086244752]:    0 session cache misses

2010.09.02 14:04:27 LOG7[1852:3086244752]:    0 session cache timeouts

2010.09.02 14:04:27 LOG6[1852:3086244752]: SSL connected: previous session reused

在服務器端 stunnel日志:

2010.09.02 13:58:18 LOG7[22948:1107257664]:    8 server connects that finished

2010.09.02 13:58:18 LOG7[22948:1107257664]:    0 server renegotiations requested

2010.09.02 13:58:18 LOG7[22948:1107257664]:    7 session cache hits

2010.09.02 13:58:18 LOG7[22948:1107257664]:    0 session cache misses

2010.09.02 13:58:18 LOG7[22948:1107257664]:    0 session cache timeouts

2010.09.02 13:58:18 LOG6[22948:1107257664]: SSL accepted: previous session reused

2010.09.02 13:58:18 LOG7[22948:1107257664]: FD 8 in non-blocking mode

2010.09.02 13:58:18 LOG7[22948:1107257664]: MySQLs1 connecting 127.0.0.1:3306

2010.09.02 13:58:18 LOG7[22948:1107257664]: connect_wait: waiting 10 seconds

2010.09.02 13:58:18 LOG7[22948:1107257664]: connect_wait: connected

2010.09.02 13:58:18 LOG7[22948:1107257664]: Remote FD=8 initialized

查看log表明MySQL客戶端與服務器端的通信已經過ssl加密。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved