VPSを借りたので初期設定

botつくりてえ」

「プログラム動かすサーバーが必要」

「ならVPSを借りればいいじゃない!(・∀・)」

というわけでVPSを契約したので初期設定。

ドットインストールのVPS関連のページ参考。
http://dotinstall.com/lessons/basic_sakura_vps

契約した

今回使うのはServersMan@VPSのEntryプラン。安かった。
http://dream.jp/vps/

f:id:hakumai164:20150124225718p:plain

契約の流れは省略。
データセンターの場所は東京、初期OSはCentOS7 64bit、テンプレートはブログパックを選択した。

初期設定

接続

sshコマンドを使ってrootユーザーで接続。初期設定ではssh用のポート番号は3843。

$ ssh -p 3843 root@xxx.xxx.xxx.xxx
パッケージ更新とか

パッケージの管理にはyumコマンドを使う。最初はyum updateで入っているパッケージの更新。

# yum update

テキスト編集にはEmacsを使いたい人間なのでインストール。viは初期から使える。

# yum install emacs
ユーザー作成

作業用にユーザーを作成、パスワード設定

# useradd username
# passwd username password

所属グループをwheelグループとする

#usermod -G wheel username

wheelグループでsudoコマンドが使えるようにする。
visudoコマンドでsudoコマンド用の設定ファイル(/etc/sudoers)を編集する。
起動するエディタがviであることに注意

# visudo

下のような記述を探す

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

2行目の行頭がコメントアウトされている場合は # を消去して解除
最初から無かった場合はそのままで良い

## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
作成したユーザーでログイン

rootユーザーをログアウトして作成したユーザーで再ログイン。

ssh -p 3843 username@xxx.xxx.xxx.xxx
鍵認証の設定

鍵保存用のディレクトリを作成し、パーミッションを所有者のみに変更

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

ssh接続元の端末で公開鍵と秘密鍵のペアを作成する。(Macでの作成方法)
ssh-keygenコマンドを使用し、RSA形式の鍵を作成。保存先やパスフレーズはデフォルトで良いので何も入力しない。

$ ssh-keygen -t rsa
Enter file in which to save the key (/***/***/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

「id_rsa」と「id_rsa.pub」の2つのファイルが~/.ssh下に作成される。
id_rsa.pubのパーミッションを所有者のみに変更

$ chmod 600 ~/.ssh/id_rsa.pub

公開鍵をVPSに転送する。転送先は先程作成した~/.sshとし、ファイル名を「authorized_keys」とする。
scpコマンドでのポート番号の指定は「-P port」とすることに注意。(sshコマンドでは「-p port」)

$ scp -P 3843 ~/.ssh/id_rsa.pub username@xxx.xxx.xxx.xxx:~/.ssh/authorized_keys

以後、パスワード無しでssh接続が可能になる。(rootユーザーでの接続にはパスワードが必要)

なお、秘密鍵はデフォルトで~/.ssh/id_rsaを参照するようになっているが、それ以外の場所に秘密鍵を作成した場合はsshコマンドを使用する際に手動で秘密鍵の場所を指定する必要がある。

$ ssh -p 3843 -i keyfile username@xxx.xxx.xxx.xxx
ssh用ポート番号の変更

sshコマンドで作成した作業用ユーザーでログインした後、root権限での作業を行うのでsudoコマンドを「-s」オプションを付けて実行する。

$ ssh -p 3843 username@xxx.xxx.xxx.xxx
$ sudo -s

sshに関する設定は/etc/ssh/sshd_configに記述されている。編集前にバックアップをとっておく。

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

バックアップを取ったら編集。「Port 3843」と書いてある部分を変更する。17行目あたり。

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

同ファイルの「PasswordAuthentication yes」と書いてある部分を変更する。78行目あたり。

PasswordAuthentication yes
PasswordAuthentication no
Rootユーザーでのログイン禁止

同ファイルの「PermitRootLogin yes」と書いてある部分を変更する。48行目あたり。
コメントアウトされている場合は解除。

#PermitRootLogin yes
PermintRootLogin no

編集終了後、設定の変更を反映させるためsshサーバーの再起動を行う。

# service sshd restart
ファイアーウォールの設定

サーバーに対する通信のルールを設定する。
設定は /etc/sysconfig/iptables を編集して変更する。ここでは省略

編集終了後、設定を保存し、変更を有効にするためにサービスを再起動する、

# service iptables save
# service iptables restart

おわり

VPS契約直後にやったこととしてはここまで
あとは使用用途に合わせて色々と