読者です 読者をやめる 読者になる 読者になる

VPSの爆破と再構築をやった話

こんばんは、Knotfoundです。

 

今日は冬休み前からやりたかったVPSの爆破と再構築をやったので、備忘録として記事を書きます。

 

1.爆破
もともと大したことに使ってたわけでもなかったのであんまりためらいなく爆破しました。お馴染みのあのコマンド
sudo rm -rf /* --no-preserve-root
ただ完了まで時間がかかったので途中で止めました。
※とはいえ、主要なコマンドはほとんど使用できなく、lsもcdもrmもダメでした。良い子のみんなは気をつけて使おうね!!
最後はVPSのコントロールパネルよりOSの再インストールを敢行して無事完了です。

 

2.初期設定

再インストール直後でまだまっさらな状態です。今回はCentOS6.7, 64bit版です。

まずyum関連の設定から
/etc/yum.conf に以下を追記。
--------------------
exclude=kernel*
--------------------

これはyumで更新を行う際に、kernelのアップデートを回避するためのものです。普通にノートパソコンとかにLinux入れて使うときはこのオプションは入れないんですが、以前VPSカーネルのアップデートをやって再起動した際に、uuidが変わってしまってカーネルパニックが起きてしまってめんどくさいことになってしまったので入れました。。。 カーネルによほどの脆弱性とかがない限りはそのままで行こうかと。

で、セーブした後に

yum check-update
yum update -y

でアップデートします。170MB近く更新があったのでしばらく待ってから再起動。
再起動したらsshでログインするときに使うユーザーを追加しました。

useradd knotfound

passwd knotfound

これで初期設定は終わりです。

 

3.SSHの設定など

さすがにずっとVPSのコントロールパネルで作業するのはつらいものがあるのでSSHでつなぐための設定です。

一旦rootになってから

su -

sshdの設定をします。

# cd /etc/ssh/
# cp sshd_config sshd_config.bak
# vim sshd_config

/etc/ssh/sshd_config
------------------------------------
PermitRootLogin no #ssh経由でログインする際にrootでログインすることを拒否
Port [hogehoge] #デフォルトのポート(22番)から変更
RSAAuthentication yes #RSA認証の許可
PubkeyAuthentication yes #公開鍵認証の許可
AuthorizedKeysFile .ssh/authorized_keys #公開鍵ファイルのパス
PasswordAuthentication no #パスワード認証を拒否
------------------------------------
とりあえずこれでセーブ。

次にsshでログインしたい端末で公開鍵と秘密鍵を生成します。WindowsですでにTera Termなどを使ってる人も同じように行けるはずです。

ターミナル(コマンドプロンプト)を開いて

ssh-keygen -t rsa

鍵の保存場所を聞かれるので任意の場所に。

生成して保存が終わったら公開鍵をVPSに送ります。デフォルトだとid_rsa.pubという名前だと思います。(公開鍵と秘密鍵を間違えないように注意!)
今回はSFTPで送ってあげました。

sftp USER@HOSTADDRESS

でログインしたあと対話モードになります。ログインした状態だとログイン先ユーザーのホームディレクトリ(/home/USER)にいるはずです。
ファイル送信するには

sftp > put id_rsa.pub

です。おわったら exit を入力して抜けます。
サーバー側で送ってあげた公開鍵を登録します。
公開鍵のあるディレクトリに移動して

mv id_rsa.pub ~/.ssh/
cd ~/.ssh/
id_rsa.pub >> authorized_keys

これで登録が完了するはずです。
念のため cat authorized_keysなどで中身が公開鍵の中身と同じであることを確認してください。
確認したら

rm id_rsa.pub

で消してあげます。

いよいよデーモンを再起動、の前に関係するファイルやディレクトリなどのパーミッション(権限)を確認しておきます。僕はこのパーミッションの設定が不十分で何度かログインできないことがありました。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

設定を反映させるためにデーモンを再起動します。

# service sshd restart

実際にIDとパスワードだけでログインを試みて、失敗し、公開鍵を用いてログインできるなら成功です。
ちなみに、sshコマンドを使ってログインするときに

ssh -p PORT -i ~/.ssh/id_rsa USER@SERVERADDRESS

のように毎回手打ちしてもいいんですが面倒なので、sshのconfigファイルにログイン先の情報を書いておくのをおすすめします。
ログインしたい端末の方で

vim ~/.ssh/config

----------------------------
Host [サーバーのアドレス]
HostName [サーバーのアドレス名]
Port [設定したポート番号]
User [ログインするユーザー名]
IdentityFile [秘密鍵をおいてあるディレクトリのパス(デフォルトだと~/.ssh/id_rsa)]
----------------------------
を書いてあげて保存します。ちゃんとかけていれば次回からは

ssh サーバーのアドレス

だけでログインが可能です!

今回はここまでで終わります。次回はiptablesの設定などを書こうと思います。それでは。