ようへいの日々精進XP

よかろうもん

2017 年 08 月 21 日(月)

ジョギング

日課

  • (腕立て x 30 + 腹筋 x 30) x 3

奥さん

  • 少し復活したようで、午前中は仕事に行ったが、午後から帰ってきた
  • 職場の皆様には大変なご迷惑をお掛けしてしまい申し訳ない限りだが、少しずつ体を慣らしていった方が良いのかもしれない

夕飯

  • 奥さんが少しでも口にし易いものをと色々と考えてアボガドと生ハムの冷製パスタ
  • 適当に作ったけどだいぶん美味かった
  • 奥さんも沢山食べてくれて良かった

2017 年 08 月 20 日(日)

ジョギング

  • 香椎浜 x 2 周
  • 3 周走るつもりだったので、足が痛かった…
  • そして、暑かった…

日課

  • (腕立て x 30 + 腹筋 x 30) x 3

奥さん

  • 夕方には香椎浜まで散歩に行けるくらいにはなったので良かった
  • もう少しご飯を食べて欲しい

夕飯

奥さんのリクエストで卵焼きを作る。あとは冷凍してあった宮城さんの鮭を焼いた。

奥さんが卵焼きを美味しそうに食べてくれたのが良かった。

夏(休み)の課題を提出した(誰に?)

github.com

2017 年 08 月 19 日(土)

ジョギング

  • 香椎浜 x 3 周
  • ゆっくりと走るつもりだったので、いつまでも走れる気がした
  • でも暑かった…

日課

  • (腕立て x 30 + 腹筋 x 30) x 3

奥さん

  • なかなか快方に向かわない
  • 特製リンゴジュースは美味しく飲んでくれるので嬉しい
  • 涼しくなると少しは良くなるのかな…

夕飯

焼き鳥食べたかったけど、奥さんを置いていくわけにはいかないので自宅で擬似焼き鳥屋さんを開店した。

ダイレックスで砂肝をスライスしていたヤツが売っていたので、塩コショウをして夏野菜と共に炒めたものと板わさを見よう見まねで作ったりした。あと、北海活ダコの刺し身のイイやつが入っていたのでそちらも肴に。

奥さんにはスーパーシンプルなおかゆとリンゴジュースを作ってあげた。

Python で Lambda ファンクションを

  • コメントを含めて 300 行くらいを 2 本書いた
  • プログラムのセンスが無いのが辛い
  • 今更どうなるものわけでも無さそうだけど…頑張ろう…

2017 年 08 月 18 日(金)

ジョギング

  • 香椎浜 x 2 周
  • 夏風邪っぽくて終始きつかった

日課

  • 仕事中に眠気覚ましでやってもイイかなと思っている
  • (腕立て x 30 + 腹筋 x 30) x3

奥さん

  • 長引いててかわいそう
  • あまりにきつそうなので病院に連れて行って点滴をしてもらう
  • きついかもしれないけど、もう少しご飯を食べて貰えると嬉しいんだけど…とにかく復調して欲しい

今日は

自分の価値観とか倫理観を壊してしまうようなブログ記事やテレビ番組に出会えて泣けた。

RDS の MySQL と Aurora で SSL 接続するメモ(2)

改めて

inokara.hateblo.jp

こちらの続きです。

RDS の MySQL や Aurora はデフォルトで SSL 接続が有効になっている。

mysql> SHOW VARIABLES LIKE '%ssl%';
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| have_openssl  | YES                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| have_ssl      | YES                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ssl_ca        | /rdsdbdata/rds-metadata/ca-cert.pem                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ssl_capath    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ssl_cert      | /rdsdbdata/rds-metadata/server-cert.pem                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ssl_cipher    | EXP1024-RC4-SHA:EXP1024-DES-CBC-SHA:AES256-SHA:AES128-SHA:DES-CBC3-SHA:DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:RC4-SHA:RC4-MD5:EXP-RC4-MD5:NULL-SHA:NULL-MD5:DES-CBC3-MD5:DES-CBC-MD5:EXP-RC2-CBC-MD5:RC2-CBC-MD5:EXP-RC4-MD5:RC4-MD5:KRB5-DES-CBC3-MD5:KRB5-DES-CBC3-SHA:ADH-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:ADH-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:ADH-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:EXP-KRB5-RC4-MD5:EXP-KRB5-RC2-CBC-MD5:EXP-KRB5-DES-CBC-MD5:KRB5-RC4-MD5:KRB5-DES-CBC-MD5:ADH-RC4-MD5:EXP-ADH-RC4-MD5:DHE-DSS-RC4-SHA:EXP1024-DHE-DSS-RC4-SHA:EXP1024-DHE-DSS-DES-CBC-SHA:EXP-KRB5-RC4-SHA:EXP-KRB5-RC2-CBC-SHA:EXP-KRB5-DES-CBC-SHA:KRB5-RC4-SHA:KRB5-DES-CBC-SHA:ADH-DES-CBC-SHA:EXP-ADH-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA |
| ssl_crl       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ssl_crlpath   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ssl_key       | /rdsdbdata/rds-metadata/server-key.pem                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9 rows in set (0.10 sec)

ということは、SSL 接続の可否はクライアントに依存することになる。

例えば MacOS XMySQL クライアントから接続する場合

環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G1421

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.10, for osx10.11 (x86_64) using  EditLine wrapper

Aurora への接続例

以下のように特にオプションを指定しなくても SSL を利用して接続している。

$ mysql -u${DB_USER} -hdemo-aurora.cluster-xxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 407
Server version: 5.6.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value              |
+---------------+--------------------+
| Ssl_cipher    | DHE-RSA-AES128-SHA |
+---------------+--------------------+
1 row in set (0.29 sec)

以下のように Wireshark でパケットキャプチャしてみてもクエリの内容は暗号化されていて解読は出来ない。

f:id:inokara:20170817234612p:plain

SSL を利用しな場合どうするのか

以下のように --ssl=0 オプションを利用する。

$ mysql -u${DB_USER} -hdemo-aurora.cluster-xxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p --ssl=0
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 413
Server version: 5.6.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Ssl_cipher    |       |
+---------------+-------+
1 row in set (0.06 sec)

Ssl_cipher の値に何も設定されていないのが肝。

以下のようにパケットキャプチャしてみてもクエリ丸見え。

f:id:inokara:20170817235417p:plain

これはアカン。

色んな言語のライブラリで接続する場合

Node.js で MySQL を操作する

環境

MySQL パッケージ。

github.com

mysql

導入は簡単。

$ npm install mysql

以下のような環境で実験する。

$ node --version
v8.1.0
$ npm ls -a mysql
/path/to/project
└── mysql@2.14.1

デフォルト

以下のように SHOW STATUS LIKE 'Ssl_cipher'; するだけのコード。

var mysql      = require('mysql');
var fs         = require('fs');
var connection = mysql.createConnection({
  host     : 'demo-aurora.cluster-xxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com',
  user     : 'xxxxxx',
  password : 'xxxxxxxxx',
  database : 'xxxxxxxx',
});

connection.connect();
connection.query('SHOW STATUS LIKE "Ssl_cipher";', function (error, results, fields) {
  if (error) throw error;
  console.log(results);
});

connection.end();

実行すると以下のようになる。

$ node demo.js
[ RowDataPacket { Variable_name: 'Ssl_cipher', Value: '' } ]

パケットキャプチャしてみると…

f:id:inokara:20170818001631p:plain

パッチリクエリも確認出来るという。

SSL 接続

デフォルトが SSL 接続を行わないことが判ったので、以下のように修正して SSL 接続してみる。

--- test2.js.bk 2017-08-18 00:09:10.000000000 +0900
+++ test2.js    2017-08-18 00:07:17.000000000 +0900
@@ -5,6 +5,9 @@
   user     : 'xxxxxx',
   password : 'xxxxxxxxx',
   database : 'xxxxxxxx',
+  ssl  : {
+    ca : fs.readFileSync('rds-combined-ca-bundle.pem')
+  }
 });

証明書をダウンロードしてきて、ssl オプションに証明書ファイルへのファイルパスを指定してあげるだけ。

実行すると以下のように出力される。

$ node demo.js
[ RowDataPacket { Variable_name: 'Ssl_cipher', Value: 'DHE-RSA-AES256-SHA' } ]

パケットキャプチャしてみると以下のようにクエリが暗号化されている。

f:id:inokara:20170818001418p:plain

以上

まとめ

  • RDS の MySQL と Aurora に対して MySQL クライアントで接続する場合、基本的には SSL 接続している(バージョンによってはこの限りでは無いかも)
  • 各種言語のライブラリについては、確認が必要になるが、Node.js はデフォルトでは非 SSL 接続になっている
  • SSL 接続なライブラリを利用して SSL 接続する場合には証明書ファイルを指定する必要がある

お疲れさまでした

https://dev.mysql.com/doc/refman/5.6/ja/ssl-connections.html

ドキュメントをしっかり読むべし。

2017 年 08 月 17 日(木)

父の 69 回目の誕生日

  • スポーツサングラスを贈った
  • テニスや登山等アクティブな父なので活用して欲しい

ジョギング

日課

  • (腕立て x 30 + 腹筋 x 30) x 3

奥さん

以前に母が奥さんに飲ませたリンゴジュースが飲みたいとのことで、スーパーでリンゴを買ってきて下ろして絞って飲ませてみたら少し元気になった模様。

お昼ご飯、夕ご飯共に冷凍うどんを煮て食べさせる。

2017 年 08 月 16 日(水)

ジョギング

日課

  • (腕立て x 30 + 腹筋 x 30) x 3

奥さん

  • 快方に向かわないので改めて病院に連れていく
  • 風邪をこじらせた模様
  • 早く元気になって欲しい

RDS の MySQL と Aurora で SSL 接続するメモ

RDS の MySQL と Aurora では

デフォルトでクライアントからの SSL 接続が可能。

mysql> SHOW VARIABLES LIKE '%ssl%';
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| have_openssl  | YES                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| have_ssl      | YES                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ssl_ca        | /rdsdbdata/rds-metadata/ca-cert.pem                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ssl_capath    |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ssl_cert      | /rdsdbdata/rds-metadata/server-cert.pem                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ssl_cipher    | EXP1024-RC4-SHA:EXP1024-DES-CBC-SHA:AES256-SHA:AES128-SHA:DES-CBC3-SHA:DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:RC4-SHA:RC4-MD5:EXP-RC4-MD5:NULL-SHA:NULL-MD5:DES-CBC3-MD5:DES-CBC-MD5:EXP-RC2-CBC-MD5:RC2-CBC-MD5:EXP-RC4-MD5:RC4-MD5:KRB5-DES-CBC3-MD5:KRB5-DES-CBC3-SHA:ADH-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:ADH-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:ADH-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:EXP-KRB5-RC4-MD5:EXP-KRB5-RC2-CBC-MD5:EXP-KRB5-DES-CBC-MD5:KRB5-RC4-MD5:KRB5-DES-CBC-MD5:ADH-RC4-MD5:EXP-ADH-RC4-MD5:DHE-DSS-RC4-SHA:EXP1024-DHE-DSS-RC4-SHA:EXP1024-DHE-DSS-DES-CBC-SHA:EXP-KRB5-RC4-SHA:EXP-KRB5-RC2-CBC-SHA:EXP-KRB5-DES-CBC-SHA:KRB5-RC4-SHA:KRB5-DES-CBC-SHA:ADH-DES-CBC-SHA:EXP-ADH-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA |
| ssl_crl       |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ssl_crlpath   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ssl_key       | /rdsdbdata/rds-metadata/server-key.pem                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9 rows in set (0.10 sec)

他のデータベースエンジンはどうなんだろう。

MySQL クライアントで接続する場合

環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G1421

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.10, for osx10.11 (x86_64) using  EditLine wrapper

証明書ファイル

以下の証明書ファイルを利用して接続する。

SSL 接続を強要するデータベースユーザーを作成する

GRANT ALL ON `%`.* TO ${WITH_SSL_USER}@`%` IDENTIFIED BY 'xxxxxxxxxxxx' REQUIRE SSL;

REQUIRE SSL が肝。

接続

--ssl-ca= オプションにパブリックキーのパスを指定して接続する。

mysql -u${WITH_SSL_USER} -h ${DB_ENDPOINT} -p --ssl-ca=/path/to/rds-combined-ca-bundle.pem

参考

docs.aws.amazon.com

inokara.hateblo.jp

以上

メモでした。

引き続き、以下の記事に続きます。

inokara.hateblo.jp

2017 年 08 月 15 日(火)

終戦記念日

最近、某国と某国が物騒な物言いでお互いを牽制しあっているのが滑稽であり、そして、とても残念。

平和が一番。

日課

  • (腕立て x 30 + 腹筋 x 30) x 3

奥さん

養生してもらった。もう少し養生が必要そう。

2017 年 08 月 14 日(月)

ジョギング

日課

  • 無し

終日

  • 曇りのお陰なのか窓を開けていると涼しい
  • でも、汗ばむ

奥さん倒れる

博多駅で倒れたとのことで、救急隊員の方から電話を頂いたので慌てて博多まで向かえに行く。

病院に着いたら点滴を打たれて横になっていたが、ちゃんと話が出来る状態だったので安心した。

帰省したり、墓参りしたり疲れが溜まっていたんだろう。明日はゆっくり休んでもらいたい。