さくらのVPSのプランに変更があった。これまで月額980円の最安プランはメモリ512MB、HDD20GBだったのが、同額でメモリ1GB、HDD100GBになった。
メモリはどうでもいいけどHDDの容量は欲しいので、新規に1GBのプランを契約し、旧契約を破棄する形で乗り換えてみる。
これまではUbuntuを使ってたけど、今回はデフォルトのCentOS 6.2 x86_64を使ってみることにする。この辺は気分の問題。
下記に新規VPSに対して行なった設定を残しておく。以前Ubuntuに対してやったのとだいたい同じ作業。
まず、VPSコントロールパネルでOSの再インストールをしてパスワードを設定。
次にrootでログイン。
$ ssh root@xxx.xxx.xxx.xxx
このままだとroot+パスワードでログインできてしまう危険な状態なので、設定を速やかに変更する。
まずはユーザの作成。
# useradd -d /home/user user
パスワード設定。
# passwd user
一度ログアウトして作成したユーザで入れるか確認。
# exit $ ssh user@xxx.xxx.xxx.xxx
スーパーユーザに戻る。
$ su
sshの設定を変更
# vi /etc/ssh/sshd_config
ポート22はやめよう
# Port 22 ↓ Port 60022
ルートでのログインもやめよう
PermitRootLogin yes ↓ PermitRootLogin no
急いでsshdを再起動
# /etc/init.d/sshd restart
ローカルの端末から、設定が反映されてるか確認
// 22番はダメ $ ssh user@xxx.xxx.xxx.xxx // rootもダメ $ ssh -p60022 root@xxx.xxx.xxx.xxx // userでポート指定すれば大丈夫 $ ssh -p60022 root@xxx.xxx.xxx.xxx
これでサーバの防御力が3上がった。レザーアーマーを着たくらいの安心感。野生の獣とかなら襲われても大丈夫。けど、魔物に攻撃されるとまだ危険。
次にパスワード認証は怖いので、鍵を使った認証に変更
とりあえずローカル側で鍵を作る
$ cd ~/.ssh/ $ ssh-keygen -t rsa
次にVPS側で.sshディレクトリの用意
$ mkdir .ssh $ chmod 700 .ssh
この状態でローカル側から鍵を送る
$ scp -P60022 id_rsa.pub user@xxx.xxx.xxx.xxx:.ssh/authorized_keys
ローカルからvpsにsshで繋いでみて、パスワードを聞かれなければ成功
$ ssh -p60022 user@xxx.xxx.xxx.xxx
rootになってsshの設定を変更
$ su # vi /etc/ssh/sshd_config
設定変更
#PasswordAuthentication yes ↓ PasswordAuthentication no
sshdの再起動
/etc/init.d/sshd restart
これで鍵のない端末からパスワードを使って入ろうとしても弾かれるようになったはず。
試しにローカルで鍵を移動してから繋いでみる
$ mv ~/.ssh/id_rsa* $ ssh -p60022 user@xxx.xxx.xxx.xxx Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
怒られる。
戻して繋ぐ
$ mv ~/dev_id_rsa* ~/.ssh/ $ ssh -p60022 user@xxx.xxx.xxx.xxx
入れる
これでプレートメールを着込んだくらいの防御力になった。
しかし鎧だけでは頭部への打撃は防げないので、兜や盾も用意することにしよう。
まずはiptablesで不用なポートへの接続を防ぐ。デフォルトだと空になってる。
$ su # vi /etc/sysconfig/iptables
iptablesはあまり詳しくないので説明割愛
とりあえず下記のサイトなどを参考に、日本だけを許可するとかいろいろやってたら自分が何をしているのか分からなくなりました。
http://www.iex3.info/archives/1145
http://serverkurabe.com/blog/sakuravps-start-10
http://tanaka.sakura.ad.jp/archives/001065.html
http://centossrv.com/iptables.shtml
あとはdenyhostsを入れておくと、一定時間内に連続アクセスしてきたIPをhosts.denyに放り込めるらしい。
# yum install denyhosts # vi /etc/denyhosts.conf # /etc/init.d/denyhosts start
少し間違えるだけで自分のローカルのIPも禁止リストに入れられてしまう。そんな時はバーチャルコンソールから/etc/hosts.denyを開いて自分のIPを削除する。
とりあえずこれで鎧と盾と兜は揃った気がする。
疲れたので今日はここまで。