It's raining cats and dogs.

無駄なことなんてないはず

さくらのVPSを借りて、真っ先に設定した内容まとめ

ついカッとなってさくらのVPSを借りたので、借りてすぐにやったことのメモ
ちなみにディストリビューションCentOS 6を選択しました。

rootのパスワード変更

契約時はrootしかアカウントがないので、とりあえずrootでログインし、rootのパスワードを変更しておく。sshで接続するときは登録時に発行されたIPアドレスで。

mac$ ssh -l root xxx.xxx.xxx.xxx
root$ passwd

作業用ユーザー作成

rootで作業とかマジ怖いので、取り急ぎ作業用のアカウントを作成し、パスワードも設定

root$ adduser myuser
root$ passwd myuser

sudoの設定

rootで作業しないようにとりあえずsudoの設定。以下を追記。

root$ visudo
...
myuser  ALL=(ALL)       ALL  # これを追記
...

ほんとはもう少しきちんと権限設定をした方がいいと思うけど、とりあえず良しとする。

sshdの設定変更

もろもろ変更したり追記したり

$ sudo vi /etc/ssh/sshd_config
...
# rootで直接sshで接続できないようにする
PermitRootLogin no

# sshのポート番号を変える(番号は内緒)
Port XXXXX

# パスワードなしでのログイン禁止
PermitEmptyPasswords no
...

ここで一旦sshdを再起動

$ sudo /etc/init.d/sshd restart

sshでのログインを公開鍵認証にする

セキュリティおよび利便性向上のため、sshは公開鍵認証にする

.sshディレクトリの作成

~/.ssh/authorized_keysに公開鍵を記述(追記)するので、.sshディレクトリを作っておく

$ mkdir ~/.ssh
# パーミッションは700で。
$ chmod 700 ~/.ssh
鍵を作る

僕はmacなのでmacのツールを使いました。鍵の置き場所を聞かれるので、テキトな箇所に作る。とりあえずmysakura_rsaを作る

mac$ ssh-keygen
Enter file in which to save the key (/Users/hoge/.ssh/id_rsa): /Users/hoge/.ssh/mysakura_rsa
できた公開鍵をVPS側にscpなどで持っていく
mac$ scp -P XXXXX ~/.ssh/mysakura_rsa.pub myuser@xxx.xxx.xxx.xxx:/home/myuser/.ssh/
公開鍵をauthorized_keysに設定する
$ cd ~/.ssh
$ cat mysakura_rsa.pub >> authorized_keys
# パーミッションは600
$ chmod 600 authorized_keys

sshdの編集

$ sudo vi /etc/ssh/sshd_config
...
# 鍵認証許可
PubkeyAuthentication yes

# 鍵のファイル
AuthorizedKeysFile      .ssh/authorized_keys

# パスワード認証を無効化
PasswordAuthentication no
...
sshd再起動
$ sudo /etc/init.d/sshd restart
確認

鍵無しでログインを試みる

$ ssh -l myuser -p XXXXX xxx.xxx.xxx.xxx
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
ついでに

作業用のmacの.ssh/configを設定しておく

mac$ vi ~/.ssh/config
Host mysakura
  HostName        xxx.xxx.xxx.xxx
  Port            XXXXX
  IdentityFile    ~/.ssh/mysakura_rsa
  User            myuser

なぜこれをしているかというとVPSにログインするときに

mac$ ssh mysakura

でログインできるから。alias切ればいいじゃんという話はあるけどscpしたりするときも

mac$ scp hoge.txt mysakura:~/

とか書けて便利なのです。

iptables

SSHの設定が終わったらiptablesの設定をして、とりあえず完了とする。

https://gist.github.com/tadasy/5099635

こんな感じのshellを作って実行しておしまい。
基本方針としては SSH, HTTP, HTTPS 以外のポートは閉じる くらい。
インターネッツの荒波に揉まれるので、必要なポート以外は閉じておく。

ここまでで初期設定はおわり。
あとは好きな言語をいれたり、ミドルウェアを入れたりぼちぼち進めていく。

おやすみなさい