Stories

Detail Return Return

OceanBase 安全審計之傳輸加密 - Stories Detail

上一期我們講了關於 OceanBase 安全審計的《身份鑑別》和《用户管理與訪問控制》 兩個部分,OceanBase 的安全機制介紹其支持傳輸加密,今天我們主要來實踐一下如何配置傳輸加密以及驗證是否真的加密。

作者:金長龍

愛可生測試工程師,負責 DMP 產品的測試工作。

作者:陳慧明

愛可生測試工程師,主要參與 DMP 和 DBLE 自動化測試項目。

本文來源:原創投稿

* 愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯繫小編並註明來源。

OceanBase 的安全機制介紹其支持傳輸加密,今天我們主要來實踐一下如何配置傳輸加密以及驗證是否真的加密。

環境準備

  1. 企業版 OceanBase 4.1 集羣(3 節點) + OBProxy
  2. 配置 CA、服務端、客户端證書
OceanBase 社區版也可以實現。

OBServer 傳輸加密

2.1 開啓加密

OceanBase 傳輸加密的開啓通過多個配置項配合使用。

通過 root 用户登錄 sys 租户

指定私鑰/證書/CA 證書的獲取方式

alter system set ssl_external_kms_info = '
{
"ssl_mode":"file"
}';

配置 MySQL 端口 SSL 通信

alter system set ssl_client_authentication = 'TRUE';
# 配置為 TRUE 後,MySQL 通信 SSL 即時開啓。

配置 RPC 通信的 SSL 白名單

由於 OBServer 之間 TCP 連接都是長連接,因此需要重啓 OBServer 後 RPC SSL 加密通信才能開啓。

# RPC 通信 SSL 需要配置白名單。
# 整個集羣都開啓。
alter system set _ob_ssl_invited_nodes='ALL'; 

# 指定 IP 的 OBServer 開啓 SSL。
alter system set _ob_ssl_invited_nodes='135.xxx.xx.xx, 128.xxx.xx.xx'; 

2.2 驗證加密

MySQL 端口(2881)

通過 \s 查看。

抓包。

RPC 端口(2882)

日誌檢索 rpc connection accept,查看 use_ssl 的值是 True 還是 False。

抓包。

ODP 傳輸加密

使用了 OBProxy 之後,客户端跟 OceanBase 建立加密連接,實際是跟 OBProxy 建立加密連接,然後 OBProxy 跟 OBServer 再建立加密連接。 按照這個理解,前面服務端 OceanBase 集羣開啓 SSL 客户端認證也是個必要的前提了。

3.1 開啓加密

  1. 使用 OBProxy 的 root@proxysys 賬號登錄。
  2. 設置證書、公鑰、私鑰。
UPDATE proxyconfig.security_config SET CONFIG_VAL= '{"sourceType" : "FILE", "CA" : "certs/ca.pem", "publicKey" : "certs/client-cert.pem", "privateKey" : "certs/client-key.pem"}' WHERE APP_NAME = 'obproxy' and VERSION = '1';
注意:這裏配置的公鑰和私鑰,是前面生成的 Client 端證書,而不是 Server 端的。因為 OBProxy 作為客户端和服務端鏈路中間重要的一環,是客户端的“服務端”,同時也是 OceanBase 服務端的“客户端”。

檢查是否設置成功。

配置客户端和 OBProxy 開啓 SSL 連接。

alter proxyconfig set enable_client_ssl=true;

配置 OBProxy 和 OBServer 開啓 SSL 連接。

alter proxyconfig set enable_server_ssl=true;

用業務租户的管理員賬户登錄,設置 SSL 白名單。

alter system set ob_ssl_invited_common_names="obclient";
# 這個參數是租户級別的,需要在要連接的租户裏設置,立即生效,不需要重啓實例或者集羣。
注意:ob_ssl_invited_common_names 的值要設置成和 Client 端證書 subject 中的 cn(common name) 字段一致。

3.2 驗證加密

客户端和 OBProxy 的連接

OBProxy 和 OBServer 的連接

總結

實際配置和驗證的過程也踩了幾個坑,還是要結合文檔多加理解和消化。

user avatar greatsql Avatar feichangkudechongfengyi Avatar shuirongshui Avatar kunaodehuluobo Avatar
Favorites 4 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.