前回は、OceanBase のセキュリティ監査の「ID 認証」と「ユーザー管理とアクセス制御」の部分について説明しました。OceanBase のセキュリティ メカニズムでは、送信暗号化のサポートについて紹介しました。今日は主に、送信暗号化とその設定方法を実習します。本当に暗号化されているかどうかを確認します。
著者: ジン・チャンロン
Aikeson テスト エンジニアは、DMP 製品のテストを担当します。
著者: チェン・ホイミン
Aikeson テスト エンジニア。主に DMP および DBLE 自動テスト プロジェクトに携わっています。
この記事の出典: オリジナルの投稿
*Aikeson オープンソース コミュニティによって作成されています。オリジナルのコンテンツを許可なく使用することはできません。転載する場合は編集者に連絡し、出典を明示してください。
OceanBase のセキュリティ メカニズムでは、送信暗号化のサポートが導入されています。今日は主に、送信暗号化の設定方法と実際に暗号化されるかどうかを確認する方法を練習します。
環境整備
Enterprise Edition OceanBase 4.1 クラスター (3 ノード) + OBProxy
CA、サーバー、およびクライアント証明書を構成する
これは、OceanBase Community Edition でも可能です。
OBServerの送信暗号化
2.1 暗号化をオンにする
OceanBase の送信暗号化は、複数の構成項目を通じて有効になります。
root ユーザーを通じてシステム テナントにログインします。
秘密キー/証明書/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 接続は長い接続であるため、RPC SSL 暗号化通信を有効にする前に OBServer を再起動する必要があります。
# 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 接続を受け入れ、use_ssl
値が True か False かを確認します。
パケットをキャプチャします。
ODP トランスポート暗号化
OBProxy を使用した後、クライアントは OceanBase との暗号化された接続を確立します。実際に OBProxy との暗号化された接続が確立され、次に OBProxy が OBServer との暗号化された接続を確立します。この理解によれば、サーバー側の OceanBase クラスターで SSL クライアント認証を有効にすることも必要な前提条件です。
3.1 暗号化をオンにする
- OBProxy
root@proxysys
アカウントを使用してログインします。 - 証明書、公開鍵、秘密鍵を設定します。
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';
注: ここで構成された公開キーと秘密キーは、サーバー側ではなく、以前に生成されたクライアント側の証明書です。OBProxy はクライアントとサーバー間の重要なリンクであり、クライアントの「サーバー」であり、OceanBase サーバーの「クライアント」であるためです。
設定が成功したか確認してください。
SSL 接続を有効にするようにクライアントと OBProxy を構成します。
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
値は、クライアント証明書の件名内のフィールドと一致するように設定する必要がありますcn(common name)
。
3.2 暗号化の検証
クライアントとOBProxy間の接続
OBProxy と OBServer 間の接続
要約する
また、実際の構成と検証のプロセスにはいくつかの落とし穴があるため、ドキュメントを参照しながらさらに理解して理解する必要があります。
さらに技術的な記事については、https: //opensource.actionsky.com/をご覧ください。
SQLEについて
Axon オープン ソース コミュニティの SQLE は、マルチシナリオ監査、標準化されたオンライン プロセス、MySQL 監査のネイティブ サポート、およびスケーラブルなデータベース タイプをサポートするデータベース ユーザーおよび管理者向けの SQL 監査ツールです。
SQL取得
タイプ | 住所 |
---|---|
リポジトリ | https://github.com/actiontech/sqle |
書類 | https://actiontech.github.io/sqle-docs/ |
リリースニュース | https://github.com/actiontech/sqle/releases |
データ監査プラグイン開発ドキュメント | https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse |