2012年04月18日

メモ書き

さくらの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を削除する。

とりあえずこれで鎧と盾と兜は揃った気がする。

疲れたので今日はここまで。