スマートスタイル TECH BLOG

MariaDB Server : TLS による通信暗号化

本記事はMariaDB Corporationより寄稿された記事となります

はじめに

ほぼ毎日のように大規模な情報漏洩の報道を目にする機会も多い昨今ですが,Googleの検索エンジンにおいて https:// で始まる,SSLで暗号化されたwebページを優先してインデックスしていることもあり,今日ほとんどのwebページはSSLでブラウザとwebサーバ間の通信が暗号化されています。
Webアプリケーションサーバとデータベースサーバ間,もしくは MaxScale などのデータベースproxyとの通信はプライベートネットワーク内で行われる場合が多く,通信は暗号化されていない場合も多いですが,情報漏洩は社内から発生することも多く,理想的にはすべてのレベルにおいてデータを暗号化することが望ましいと考えられます。
今回の記事では MariaDB Server 10.0.15 からサポートされているTLSによる通信暗号化に関して解説致します。

テスト実行環境

今回は以下の実行環境でテストを行います。

  • CentOS 7.6.1810
  • MariaDB 10.3.11 GA
  • OpenSSL 1.0.2k

基本的に以下の作業は root ユーザで実施致します。

TLS証明書/秘密鍵の作成

OpenSSL を用いたTLS秘密鍵,証明書の作成手順は以下のMariaDB Knowledge Baseに解説されています。

Certificate Creation with OpenSSL

今回はあくまでテストのため,以下のbashスクリプトでダミーのCA情報,組織,サーバ/クライアント情報で自己署名証明書を作成します。なお,production環境では適切な情報を入力してください。

以下のコマンドで,サーバ証明書とクライアント証明書をチェックします。

上記のメッセージのように,双方OKとなっていれば問題ありません。

MariaDB Serverの設定

TLSを有効にしていない状態で,mysql(MariaDB monitor)で以下のSQLを実行しますと,以下のような出力が得られます。

/etc/my.cnf.d/tls.cnf に以下の設定を行い,mariadb service を再起動(sytsemctl restart mariadb)します。

ここで,

ssl-ca: CA(Certificate Authority, 認証局)証明書
ssl-key: SSL証明書の秘密鍵
ssl-cert: SSL証明書

となります。

エラーログ(/var/lib/mysql/hostname.err)を確認しますと,以下のエラーが発生しています。

秘密鍵のowner/permissionを確認しますと,owner が root, mode が 600 ですので,mysqld を実行している mysql ユーザではread権限がありません。

*.pem ファイルの owner を mysql にするか,modeを適宜変更します。

mariadb service を再起動します。

エラーログに先ほどのようなエラーがないことが確認できましたら,mysql(MariaDB monitor)で再度 SSL/TLS 関連の MariaDB 変数を確認しますと,以下のようになります。

DBeaverを用いリモートホストから接続テスト

次にリモートホストからGUIクライアントのDBeaverとパケットキャプチャツールのWiresharkを用いて通信が暗号化されているか確認してみました。

以下の動画にテストの様子をキャプチャしてあります。

https://mariadb-jp.wistia.com/medias/qjcpgdw54c

SSL接続では通信が暗号化されていることが確認できます。

TLS接続必須アカウント設定

ユーザ作成,もしくは変更時に require SSL オプションを付与することにより,特定のユーザにTLS接続を要求することが可能です。

例:

まとめ

MariaDB Server 10.0.15 以降実装されているTLSによる通信暗号化に関して解説いたしました。MariaDB Server 上に保存されているデータの暗号化(Data-at-Rest Encryption)に関しましては,こちらの過去記事に解説されておりますのであわせてご覧いただけますと幸いです。


執筆者情報

後藤 智(GOTO Satoru)
2017年6月よりMariaDB Corporation AbにてAPAC(Asia Pacific)地域におけるプリセールス業務を主に担当。現在は主に日本を担当。
この執筆者の他の記事をよむ
Return Top