LoginSignup
20
23

More than 5 years have passed since last update.

さくらVPSを借りる 初期設定編

Last updated at Posted at 2014-09-04

家でも会社でも同じ環境で勉強したいのでVPSを借りてみる。
全くの初心者なので詰まりまくりです。おかしなところあればご指摘ください。

環境

VPS

借りたのはさくらインターネットのVPS2Gプラン、詳細は以下とこちら。

  • メモリ:2G
  • ディスク容量:200GB
  • CPU:仮想3コア
  • リージョン:石狩
  • OS:CentOS6.5(最初から入っていたのでとりあえず)

ツール

  • Putty
  • WinSCP

やること

ドットインストールさんのさくらVPS入門にしたがって初期設定をすすめていきます。

  • 初期設定
  • 作業用ユーザーの作成 & 設定
  • 鍵認証の設定
  • SSHの設定
  • Firewallの設定
  • Webサーバーの設定

とりあえずここまで頑張ります。

初期設定

インストールされているアプリケーションをまずは最新にします。

# yum update

(yumはアプリケーションを管理するコマンド。)

次に日本語化。
vimで該当ファイルを開き以下のように書き換える。

/etc/sysconfig/i18n
LANG="ja_JP.UTF-8"
...

一旦ログアウトして再度ログインしdateコマンドを入力。

2014年  9月  4日 木曜日 12:17:34 JST

以下のように表示されていれば成功。

もしdateの結果が文字化けをしていたらPuttyの設定より、
ウィンドウ > 変換 > 文字コードの設定の設定がUTF-8になっているかどうかチェック。

作業用ユーザーの作成 & 設定

普段はrootではなく別のユーザーを使うのが一般的(セキュリティ目的?)のため作業用ユーザーを作成。

# useradd username
# passwd password

ユーザー名とパスワードを設定。
また、一般ユーザーでもroot権限で作業が出来るコマンドsudoを使えるように設定する。

まずは先ほど作成した作業用ユーザーをグループ(下記例ではwheel)に登録する。

# usermod -G wheel username

登録したwheelグループがsudoコマンドを使えるようにvisudoコマンドを実行、
該当行を以下のように編集する。(先頭の#を取る)

# visudo
visudo
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

鍵認証の設定

パスワード認証ではセキュリティが弱いため、鍵認証を設定する。
(鍵認証:公開鍵と秘密鍵と呼ばれる凄く長い文字列を使う認証方式。)

  • 公開鍵 -> VPSに保管する
  • 秘密鍵 -> 個人で保管する

鍵の生成

作業用ユーザーでログイン後、公開鍵を保管するディレクトリを作成し、移動。

$ mkdir .ssh/
$ cd .ssh/

キーを生成する。

$ ssh-keygen -t rsa

Enter file in which to save the key (/home/username/.ssh/id_rsa): (何も入力しないでENTER押下)
Enter passphrase (empty for no passphrase): (何も入力しないでENTER押下)
Enter same passphrase again: (何も入力しないでENTER押下)

公開鍵id_rsa.pubのファイル名をauthorized_keysへ変更する。

$ mv id_rsa.pub authorized_keys 

.sshディレクトリとauthorized_keysの権限を変更する。

$ cd /home/username/
$ chmod 700 .ssh/
$ chmod 600 .ssh/authorized_keys

秘密鍵をダウンロード

WinSCPなどを使いVPS上からid_rsaをダウンロード。

Puttyで変換してログイン

ダウンロードしたid_rsaはそのままではPuttyでは使用できないため、
PuTTYごった煮版で同梱されているPuTTYgenを使用し、Putty用の鍵に変更する。

  1. PuTTYgenで既存の秘密鍵の読込
  2. 鍵のパスフレーズ及びその確認を入力
  3. 秘密鍵の保存
  4. 接続 > SSH > 認証 > 認証のためのプライベートキーファイルを読み込み
  5. 保存し接続
  6. 2.で入力した鍵のパスフレーズを使用し認証、ログイン

SSHの設定

さらにセキュリティを強固にするためにSSHの設定をする。
下記コマンドは一般ユーザーから管理者に変更するもの。よく使う(はず)ので覚えておく。

$ sudo -s

この項目では/etc/ssh/sshd_configのみ編集します。
まず編集するファイルはバックアップを取る、忘れがちなので癖をつける。

# cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.org

sshd_configの設定

ポート番号の変更

デフォルトのポート22番はあまりにも広く使われているポートのため変更。
1024~65535までの間で設定可能。

/etc/ssh/sshd_config
#Port 22
...

  ↓

/etc/ssh/sshd_config
Port 9117
...

パスワードログインの禁止

鍵認証を実装したためパスワードではログインできないよう禁止する。

/etc/ssh/sshd_config
...
PasswordAuthentication yes
...

  ↓

/etc/ssh/sshd_config
...
PasswordAuthentication no
...

rootログインの禁止

rootはpasswordが割れただけでマズいことになるのでrootへの直接ログインを禁止します。

/etc/ssh/sshd_config
...
#PermitRootLogin yes
...

  ↓

/etc/ssh/sshd_config
...
PermitRootLogin no
...

最後にsshdのrestart。これ忘れていて大変苦労しました。

$ sudo service sshd restart

Firewallの設定

ここが一番よく分かっていないのでもうちょっと理解したい。

ipv4の設定

こちらを参考にiptablesを設定する。

# vim /etc/sysconfig/iptables

ipv6の設定

こちらを参考にip6tablesを設定する。
ipv6の有効化や設定については最初から設定されていたようで、特にすること無し。

# vim /etc/sysconfig/ip6tables

Webサーバーの設定

Apacheのインストール

# yum install httpd

ついでにサービスの自動起動も設定しておく。

# chkconfig httpd on

編集するファイル/etc/httpd/conf/httpd.confのバックアップを取っておきます。

# cp -a /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

httpd.confの設定

攻撃者に有利となる情報の表示を減らす

攻撃者に有利な情報を極力表示しないよう修正。
こちらが参考になるかと思います。

/etc/httpd/conf/httpd.conf
...
ServerTokens OS

...
ServerSignature On

  ↓

/etc/httpd/conf/httpd.conf
...
ServerTokens Prod

...
ServerSignature Off

ファイル一覧を表示させないようにする

こちらが参考になるかと思います。

/etc/httpd/conf/httpd.conf
...
Options Indexes FollowSymLinks

  ↓

/etc/httpd/conf/httpd.conf
...
Options -Indexes FollowSymLinks

ドキュメントルートの設定

URLとしてアクセスしたときに、ここで指定したフォルダ以下にアクセスが可能となります。
今回は特に編集はしませんが、よく使うので覚えておきます。

/etc/httpd/conf/httpd.conf
...
DocumentRoot "/var/www/html"

Apacheの起動

まずは設定を変えたのでテスト。

# service httpd configtest

Syntax OKと表示されたら問題なし、Apacheを起動させる。

# service httpd start

VPSのIPに接続して、いつものApache Test Pageが表示されていればOK。

最後に

DocumentRoot(/var/www/html)下にindex.htmlなどを置いてテスト。
それもOKならここまでは大丈夫。(なはず)

引っかかった箇所

  1. 初期設定にてLANG="ja_JP.UTF-8"と書くべきところをLANG="ja_JP"と書いてしまい文字化け。
    • Puttyの文字コード設定でUTF-8/Auto-Detect Japaneseを選択することで文字化けは解消
    • 上記解決策は根本的解決ではないため非推奨。ちゃんとLANG="ja_JP.UTF-8"と記述しよう
  2. 鍵認証の設定にて、最初からPuttyで公開・秘密鍵を作ろうとしたらエラー。
    • 最初にssh-keygen -t rsaコマンドで鍵を作成し、それをPutty用に変換しよう
20
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
23