初期化状態で仮想環境を立ち上げましょう。
$ vagrant destroy -f $ vagrant up
または、Vagrantにはsaharaというプラグインがあります。
仮想環境の状態を保存したり、戻したりできるものです。
こちらを使って初期状態にするのも良いでしょう。
今回の目標を確認
今回の目標を確認します。
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
source "https://supermarket.getchef.com/" cookbook 'sudo'
berksコマンドを実行すると、
~/.berkshelf/cookbooks
にインストールされます。
$ berks install
sudoのCookbookを使用する
下記のサイトで、使い方を確認します。
基本的には、recipeを読み込み、sakuravps.jsonに記述すれば、準備は完了です。
sudo Cookbook – Chef Supermarket
~/vagrantdir/sakuravps/chef-repo/nodes/sakuravps.json
(略) "recipe[ssh]", "recipe[sudo]" ], "authorization": { "sudo": { "groups": ["wheel"], "passwordless": "true" } }, (略)
仮想環境にrecipeを反映します。
$ vagrant destroy -f $ vagrant up $ knife solo bootstrap sakuravps
sudoを確認
仮想環境にログインして、確認してみましょう。
前回はさらっと書いてしまいましたが、SSHのresipeを反映後は、以下のようにしないとログインできませんので、注意しましょう。
$ ssh sakuravps ↓ $ ssh -l morisan 192.168.33.10 -p 61234 -i ~/id_rsa_open.ppk
sudoを使うことができれば、完成ですが、変更されたファイルも見てみましょう。
[morisan@localhost ~]$ sudo vi /etc/sudoers
/etc/sudoers
(略) %wheel ALL=(ALL) NOPASSWD:ALL
また、下記のデータが追加されたのが、分かるかと思います。
~/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
(略) cookbook 'simple_iptables'
忘れないように実行します。
$ berks install
simple iptablesを使用する
myiptablesというCookbookを作って、そこに書いていきましょう。
knife cookbook create myiptables -o site-cookbooks
下記のサイトに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
simple_iptables_policy "INPUT" do policy "DROP" end simple_iptables_rule "system" do rule [ "--in-interface lo", "-m conntrack --ctstate ESTABLISHED,RELATED", "--proto tcp --dport #{node["ssh"]["port"]}", ] jump "ACCEPT" end simple_iptables_rule "http" do rule [ "--proto tcp --dport 80", "--proto tcp --dport 443" ] jump "ACCEPT" end simple_iptables_rule "mail" do rule [ "--proto tcp --dport 25", "--proto tcp --dport 110", "--proto tcp --dport 143", "--proto tcp --dport 587" ] jump "ACCEPT" end
sakuravps.jsonにrecipeを書くのも忘れないようにしましょう。
~/vagrantdir/sakuravps/chef-repo/nodes/sakuravps.json
(略) "recipe[simple_iptables]", "recipe[myiptables]" (略)
仮想環境にrecipeを反映します。
$ vagrant destroy -f $ vagrant up $ knife solo bootstrap sakuravps
iptablesを確認
仮想環境にログインして、確認してみましょう。
$ ssh -l morisan 192.168.33.10 -p 61234 -i ~/id_rsa_open.ppk [morisan@localhost ~]$ sudo vi /etc/sysconfig/iptables
設定したport番号が記述されていれば、完了です。
/etc/sysconfig/iptables
-A system --jump ACCEPT --proto tcp --dport 61234 -A INPUT --jump http -A http --jump ACCEPT --proto tcp --dport 80 -A http --jump ACCEPT --proto tcp --dport 443 -A INPUT --jump mail -A mail --jump ACCEPT --proto tcp --dport 25 -A mail --jump ACCEPT --proto tcp --dport 110 -A mail --jump ACCEPT --proto tcp --dport 143 -A mail --jump ACCEPT --proto tcp --dport 587
続きは次回!
コメント