初期化状態で仮想環境を立ち上げましょう。

または、Vagrantにはsaharaというプラグインがあります。
仮想環境の状態を保存したり、戻したりできるものです。
こちらを使って初期状態にするのも良いでしょう。

saharaでVagrantの状態管理

今回の目標を確認

今回の目標を確認します。

  • rootパスワードの変更
  • SSH接続の設定変更
  • sudoの設定
  • 一般ユーザーの追加
  • システムのアップデート
  • iptablesの設定
  • WEBサーバーの設定
  • WEBページの設定
  • マルチドメインの設定
  • PHPの設定
  • MySQLの設定
  • Postfix/Dovecot/Postfix Adminの設定

sudoの設定

sudoは、rootにならなくても、root権限でコマンドが実行できるようになります。
頻繁にrootに切り替えるのは、セキュリティ的に良くありません。

  • sudoの設定

サードパーティCookbookをインストール

今回は、サードパーティCookbookを使用して、sudoを設定します。
苦労して入れたBerkshelf使ってインストールします。
すでに以下のファイルが存在しているはずなので、書き換えます。

~/vagrantdir/sakuravps/chef-repo/Berksfile

berksコマンドを実行すると、

~/.berkshelf/cookbooks

インストールされます。

sudoのCookbookを使用する

下記のサイトで、使い方を確認します。
基本的には、recipeを読み込み、sakuravps.jsonに記述すれば、準備は完了です。

sudo Cookbook – Chef Supermarket

~/vagrantdir/sakuravps/chef-repo/nodes/sakuravps.json

仮想環境にrecipeを反映します。

sudoを確認

仮想環境にログインして、確認してみましょう。
前回はさらっと書いてしまいましたが、SSHのresipeを反映後は、以下のようにしないとログインできませんので、注意しましょう。

sudoを使うことができれば、完成ですが、変更されたファイルも見てみましょう。

/etc/sudoers

また、下記のデータが追加されたのが、分かるかと思います。

~/vagrantdir/sakuravps/chef-repo/cookbooks/sudo/
~/vagrantdir/sakuravps/chef-repo/cookbooks/Berksfile.lock

iptablesの設定

portから不正なアクセスを防ぐために、iptablesの設定をします。
これもsudoと同じようにサードパーティCookbookを使います。

  • iptablesの設定

SSHの設定を変えたあとは、portログイン方法が変わっているので、初期化状態からでないとChefでリリースするのが面倒になります。

recipeを反映させる際は、必ず初期状態に戻しましょう。

simple iptablesをインストール

以下のサイトを見ると、simple iptablesというサードパーティCookbookを使っていました。

さくらVPSの初期設定をChef Soloでやってみた〜サードパーティcookbookの使い方〜

シンプルで使いやすそうでしたので、私も習います。

simple_iptables Cookbook – Chef Supermarket

先ほどと同じように、Berksfileファイルを修正します。
sudoの下辺りに追記します。

~/vagrantdir/sakuravps/chef-repo/Berksfile

忘れないように実行します。

simple iptablesを使用する

myiptablesというCookbookを作って、そこに書いていきましょう。

下記のサイトにExampleがあるので、そこを拝借します。
メールportも忘れずに追加します。
(25 SMTP / 110 POP3 / 143 IMAP / 587 SMTP)

また、SSHのポートはnodes/sakuravps.jsonから読み込むようにします。

simple_iptables Cookbook – Chef Supermarket

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/myiptables/recipes/default.rb

sakuravps.jsonにrecipeを書くのも忘れないようにしましょう。

~/vagrantdir/sakuravps/chef-repo/nodes/sakuravps.json

仮想環境にrecipeを反映します。

iptablesを確認

仮想環境にログインして、確認してみましょう。

設定したport番号が記述されていれば、完了です。

/etc/sysconfig/iptables

続きは次回!