SSH 接続の設定・セキュリティ周りを Serverspec でテストして Chef Recipe 作成

SSH 接続設定・セキュリティ周りを serverspec でテストした後、Chef Cookbook を作成して SSH 接続の設定を行います。行う作業は以下のページに準ずるもの。

SSH 接続での root によるログイン禁止と公開鍵認証を強制 〜 CentOS6 | EasyRamble

SSH 接続での、root による SSH ログインを禁止、パスワード認証を禁止して公開鍵認証を強制する設定などを行います。

スポンサーリンク

このエントリーは、CentOS サーバー設定用 Chef Cookbook/Recipe の目次 の一部です。

serverspec で SSH 接続の設定・セキュリティ周りをテスト

spec/centos.vagrant/base_ssh_spec.rb

テストが失敗するのを確認

serverspec によるテストができたので、テストを実行します。

デフォルトの /etc/ssh/sshd_config で有効になっているもの以外は、予定通りテストが失敗しました。

SSH 接続設定用の Recipe 作成

続いて、SSH 接続設定の Chef Recipe を作成します。

site-coobooks/base_cookbook/recipes/ssh.rb

今回は、/etc/ssh/sshd_config のオリジナルのバックアップを取った後、sed コマンドを使って sshd_config の設定を行いました。sed じゃなくて template ファイルを使っても良いかと思います。template(または cookbook_file)を使うか、sed コマンドを使うべきかたまに悩みます。どちらを使うべきか何か基準があるのだろうか…

【追記 2014/08/06】
sshd のようなデーモン・アプリケーションの設定ファイルは、やはり sed を使わずに template, cookbook_file リソースで作成したほうが良いと考え直しました。

理由は、template, cookbook_file リソースを使っておけば、notifies :restart で、設定ファイルを編集した後にサービスを自動で再起動させることができますので。

ということで、いずれ時間をとって書き直そうと思います。
【追記ここまで】

プロビジョニング実行。

Cookbook 適用後にもう一回テスト

プロビジョニングが終了したら、もう一度テストを実行。

無事にテストが全部通りました。SSH 接続周りはセキュリティに直結する箇所なので、しっかりと Serverspec のテストを書いたほうが良いかと思います。

スポンサーリンク
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!