サーバのSSL/TLSをセキュリティ観点でチェックしてくれるツール、testssl.shを使うメモ。
2017年の9月に安定版として 2.9.5-1 がリリースされたのでこれをインストールしてみる。
(正確にはこの時点での安定版は 2.8 だが、開発中の 2.9 branch の中でも安定版として言える状態として 2.9.5-1 がリリースされてる。)
環境:CentOS7, 64bit版
インストールのポイントとしては、 https://testssl.sh/ から testssl.sh をDLするのではなく、GitリポジトリをそのままcloneするかリリースパッケージをDL, 展開する方法に変わってる点。
OpenSSLバイナリも特殊なのをビルドして使ってたりするので、今後はこちらの方式が簡単かもしれない。
https://github.com/drwetter/testssl.sh の Readme.md にあるとおりにする。
$ git clone --depth 1 https://github.com/drwetter/testssl.sh.git $ cd testssl.sh/ $ ./testssl.sh -v (...) ########################################################### testssl.sh 2.9dev from https://testssl.sh/dev/ (...)
2.9dev branchがデフォルトのbranchとなっている。gitのcloneオプションを調整すれば、他のbranchを利用することも可能だろう。
また、このままでは /bin/openssl を見に行ってしまい、testssl.sh 中の bin/opensslバイナリを使ってくれなかった。
→以下のようにOPENSSL環境変数で調整できる。
$ OPENSSL=./bin/openssl.Linux.x86_64 ./testssl.sh -v (...) Using "OpenSSL 1.0.2-chacha (1.0.2i-dev)" [~183 ciphers] on L0000627:./bin/openssl.Linux.x86_64 (...)
GitHubのリリースページからアーカイブをDLする。
$ curl -L -O https://github.com/drwetter/testssl.sh/archive/v2.9.5-1.tar.gz $ tar zxf v2.9.5-1.tar.gz $ cd testssl.sh-2.9.5-1/ $ ./testssl.sh -v (...) ########################################################### testssl.sh 2.9.5 from https://testssl.sh/ (...)
こちらでもやはりOpenSSLバイナリが /bin/openssl をデフォルトで使ってしまうので、環境変数かコマンドラインで調整する。
$ OPENSSL=./bin/openssl.Linux.x86_64 ./testssl.sh -v or $ ./testssl.sh --openssl ./bin/openssl.Linux.x86_64 -v → (...) Using "OpenSSL 1.0.2-chacha (1.0.2i-dev)" [~183 ciphers] on L0000627:./bin/openssl.Linux.x86_64 (...)
※チェックする対象は自分の管理下にあるサーバか、脆弱性検査を許可されたサーバのみにすること。
通常テスト:
$ ./testssl xxx.xx.xxx.xx:443
HTMLに出力(通常テストでコンソールで使われるエスケープシーケンスが、ちゃんとHTMLにも反映されます)
$ ./testssl.sh --html www.glamenv-septzen.net:443
プロトコルバージョンごとにcipher suiteをリストアップ
$ ./testssl -E xxx.xx.xxx.xx:443
特にプロトコルバージョンごと、にはこだわらず、全部混ぜてリストアップ
$ ./testssl -e xxx.xx.xxx.xx:443
参考:
その他:
$ ./testssl.sh xxx.xx.xxx.xx:443 | aha > output.html