Chef で iptables の設定

Chef で iptables を設定する自作 resipe の例です。template リソースを用いて、iptables 用のテンプレートを元に /etc/sysconfig/iptables(iptables の設定ファイル)を作成します。

以下ページの作業を Chef を使って行う内容です。

iptables (ファイアーウォール)の設定 〜 CentOS6 | EasyRamble

スポンサーリンク

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

iptables 設定用の recipe

/etc/sysconfig/iptables のバックアップを取った後、template リソースで設定を行います。

site-cookbooks/base_cookbook/recipes/iptables.rb

注意点としては、私の場合 iptables や sshd を構成する自作 Chef レシピでは、template/cookbook_file 等のリソースに notifies :restart を書かない方針にしています。理由は以下ページに書いていますが、簡単に言うと設定をミスっていた時に、取り返しがつかない恐れがあるからです。

iptables や sshd の Chef recipe で notifies :restart を書くべきかどうか | EasyRamble

したがって頭のコメントに書いていますが、iptables 用の template ファイルを修正してプロビジョニングした後は、手動で iptables の再起動・動作確認を行う必要があります。

iptables 設定用の template ファイル

続いて、recipe の template リソースで利用する、iptables 設定用のテンプレートファイルです。

site-cookbooks/base_cookbook/templates/default/iptables.erb

一応最低限必要な設定のみ。ssh については、変更したポート番号を変数で取得しています。必要なポート開放などは、適当に追加をお願いします。

プロビジョニング実行後、iptables の動作確認

上記作業が終わったら、プロビジョニングを実行します。

続いてサーバーにログイン後に、手動で iptables を再起動して動作確認を行います。

上記の ssh 接続はそのままにしておきます。iptables の設定で ssh ポート番号の間違いがあった場合などに、iptables 再起動後に ssh ログインができなくなる可能性があるためです。

別のターミナルから、ssh で別にログインしてみます。

これで ssh 接続ができれば、プロビジョニングで正しく設定できているので元の接続を閉じてもOK。以上です。

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

Leave Your Message!