現在鋭意制作中のポケモン努力値調整ツールを載せるようのサーバを探していたのですが、結局のところVPS界でかなり有名なさくらVPSを使用してみることにしました。
決めては2週間無料期間。
これでPythonを動かしてみて、ダメだったら解約できるのはかなりのアドバンテージです。
申し込みをしたら一瞬でサーバを作成してくれるので、開発のタイムラグがないのも良かったです。
ただし、デフォルトのSSH周りは22ポートを使っていたり、プレーンパスワード認証を使用していたり、rootでログインできたりと
セキュリティ的にあまりよろしくない環境なので、そのあたりの設定を変更してみます。
やったことまとめ
yum update
サーバを立てたらまず初めにすること。yum update。
WindowsをインストールしたらWindows Updateするのと同じですね。
変にセキュリティホールの残したソフトウェア使うのも嫌ですしね。
# yum update Transaction Summary ============================================= Install 2 Packages (+3 Dependent packages) Upgrade 258 Packages
お作法ですね。
グループ/ユーザーの追加
デフォルトだとrootユーザーしかありません。
自分だけが使うのであればrootユーザーでも問題ないかもしれませんが、グローバル経由でrootユーザーにログインするのは怖いですし、何でもかんでもrootユーザーでやるのは運用上・セキュリティ上あんまり良くないですしね。
というわけで平時運用ユーザーを作成します。
グループの作成
localユーザーをグルーピングする用のグループを作成。
今のところ私1人しか使用するサーバではないですが、もし共同開発とかになってユーザーを追加することになった時に整理がめんどくさくなりますので。
gidはてきとう。使わなさそうな番号を選択。
# groupadd -g 101 localuser
ユーザー追加
ユーザーの追加です。
色々オプションを付けてますが、まあほぼ要らないです。
# useradd -u 1503 -g 101 -d "/home/username" -c "PUBLIC USER" -s /bin/bash username
これでユーザー作成完了。
今後はこのユーザーを使用して色々作業することとします。
パスワード変更
ユーザーを作成してもパスワードがないとログインできません。
ので、パスワードの設定。
# passwd username
間違い防止のため変更するパスワードは2回聞かれます。
sudo権限付与
作成したユーザーにsudo権限を付与します。
rootじゃないと参照、変更できないファイルをいじるのに、いちいちrootユーザーに変更してやっていたら手間もかかるしめんどくさいですしね。
# visudo =========== %localuser ALL=(ALL) ALL #追記
これで、上記で作成したlocaluserグループに属しているユーザーは全てsudoを使えるようになります。
現状は私1人ですが・・・
SSH鍵認証の設定
セキュリティで一番気を使わないといけないところです。
特にrootユーザーにログインされてしまった場合はサーバをぶっ壊したり、悪用されたりと何でもかんでもされてしまいます。
SSHのセキュリティを手っ取り早く強化できる方法が鍵認証によるSSHログイン方式。
鍵を持っていないとログインできなくなるので、パスワード総当たり攻撃をされても問題なくなります。
というわけでその設定。まずは秘密鍵、公開鍵を作成。
$ ssh-keygen -t rsa
~/.ssh に秘密・公開鍵のセットが作成されます。
「え、この時代にRSA?」
ってなるかもですが、これしか知らんのです・・・。
そして公開鍵のファイル名をリネーム。(コピー)
$ cd .ssh $ cp id_rsa.pub authorized_keys
あとは秘密鍵をログインするときのデバイスに持ってくればOKです。
sshdの設定
あとはsshdの設定をします。
主に
- rootでのログインの禁止
- プレーンパスワードでのログインの禁止
この2点の設定を行います。
# vi /etc/ssh/sshd_config ----- RSAAuthentication yes #鍵認証設定 PubkeyAuthentication yes #鍵認証設定 AuthorizedKeysFile .ssh/authorized_keys #公開鍵設定 PermitRootLogin no #rootログインの禁止 PasswordAuthentication no #プレーンパスワードでのログインの禁止 useDNS no #sshログイン時にDNS名前解決を利用しない
設定ファイルの編集が終わったらsshdを再起動します。
# service sshd restart
ちなみに、sshdのプロセス再起動をすると、その時点で公開鍵認証しか受け付けなくなるので、うまく鍵設定ができていない状態でプロセス再起動を実施するとログインできなくなってしまいます。
必ず鍵認証ログインができることを確認してから、もしくはコンソール接続できることを確認してから実施するとよいでしょう。
まとめ
- さくらVPSを試用中・・・
- 主にSSH周りのセキュリティ強化を実施。
正直これでも完全に安心とは言えず、できればIPアドレスでのフィルタリングとかもしたいのですが、不特定のIPからSSHログインするかもしれないのでそれはできませんでした。
ポートも22から変更しておくとより良いかもですね。
それはそのうちにやっておきます。
取り合えずグローバルアクセスできるサーバを用意したので、作成したAPIを都度乗せ換えていく予定。
うまく動作するかテストして、よさげだったら2週間以降も使用しようかな。
コメント