さくらのVPS を使い始める時に速攻でやっておくべき初期設定まとめ

<!-- Part3 -->
さくのVPSの標準OSであるCentOS6を利用するにあたって初期に設定すべき項目をまとめてみました。
もし何か気になった点などありましたらご指摘いただければ幸いです。

#日本語関連のパッケージのグループインストール

日本語関連のパッケージをグループインストールします。

```bash

[root@hostname ~]# yum -y groupinstall "Japanese Support"

```

#システムの文字セットの変更
システムの文字セットを変更します。

```bash

[root@hostname ~]# vi /etc/sysconfig/i18n
LANG="ja_JP.UTF-8"     # 変更
[root@hostname ~]# source /etc/sysconfig/i18n 
[root@hostname ~]# echo $LANG 
ja_JP.UTF-8            # 変更された
[root@hostname ~]# passwd   # 試しに何かしてみる
ユーザー root のパスワードを変更。
新しいパスワード:       # 日本語になっている

```

###ユーザーごとの個別設定
システム全体の文字セットは変更せず、ユーザー固有で日本語環境にするなら、以下のように個別設定をしてください。

```bash

[crimson@hostname ~]$ vi ~/.bash_profile
# 最終行に追記
LANG=ja_JP.UTF-8
export LANG
[crimson@hostname ~]$ source ~/.bash_profile 
[crimson@hostname ~]$ echo $LANG 
ja_JP.UTF-8

```
#rootになれるユーザを管理者のみに制限
##rootになれる一般ユーザの作成

```bash

[root@hostname ~]# useradd crimson  #一般ユーザcrimson（例）の作成
[root@hostname ~]# passwd crimson   #crimsonユーザーのパスワード設定

ユーザー crimson のパスワードを変更。
新しいパスワード:                    #crimsonのパスワード応答
新しいパスワードを再入力してください:  #crimsonのパスワード応答(再入力)
passwd: 全ての認証トークンが正しく更新できました。

```

##特定グループ（wheel）のユーザにのみrootになる許可をする設定

```bash

[root@hostname ~]# usermod -G wheel crimson    #管理者ユーザをwheelグループに追加
[root@hostname ~]# vim /etc/pam.d/su
#auth       required     pam_wheel.so use_uid
↓                                              #コメント解除
auth       required     pam_wheel.so use_uid    

```

管理者用一般ユーザからはrootになれて、管理者以外の一般ユーザからはrootになれないことを確認

#root宛メールを転送する
システムからroot宛に重要なメールが送られてくるので、root宛メールを普段使用しているメールアドレス宛に転送するようにする

```bash
[root@hostname ~]# sed -i '/^root:/d' /etc/aliases
#旧root宛メール転送設定削除

[root@hostname ~]# echo "root: crimson@hoge.com" >> /etc/aliases
#root宛メールを普段使用しているメールアドレス(例:crimson@hoge.com)宛に転送する

[root@hostname~]# newaliases
#　転送設定反映

[root@hostname~]# echo test|mail root
#　テストメールをroot宛に送信する
```


#rootでのSSHログインを禁止
##sshd_config（sshdに関する設定ファイル）の設定変更

```bash
[root@hostname ~]#vim /etc/ssh/sshd_config

#PermitRootLogin yes 
↓                                              #変更
PermitRootLogin no
```

## sshd_configの構文をチェック

```bash
[root@hostname ~]#sshd -t
```

エラーが表示されなければ、OKです。

##SSHの設定を反映
適切に編集されていることを確認したら、SSHの設定を反映します。

```bash
[root@hostname ~]# /etc/init.d/sshd restart
sshdを停止中:                                              [  OK  ]
sshdを起動中:                                              [  OK  ]
```

最後にrootでSSHログインができないことを確認しましょう
以後は一般ユーザでログイン後にsuコマンドでrootになる流れとなります。


#SSHサーバーへリモート接続(TeraTerm鍵方式ログイン)
##鍵ペア(公開鍵／秘密鍵)作成
teratermのメニューから[設定]→[SSH鍵生成]をクリック
![1-ssh公開鍵認証.png](https://qiita-image-store.s3.amazonaws.com/0/13000/65381f54-aaee-a18c-d431-abdd0b6a0570.png)

>ポップアップウィンドウが開くので下記の流れで選択、入力を行います。
  1.鍵の種類:RSAになっていることを確認
  2.ビット数:2048になっていることを確認
  3.生成ボタンをクリック
  4.鍵のパスフレーズを入力（今後ログイン時に入力することになります）
  5.パスフレーズの確認（4と同じものを入力）
  6.コメントを付記（ユーザー名@ホスト名としておくとわかりやすいと思いますがお好みで）
  7.｢公開鍵の保存｣をクリックし、適当な名前で公開鍵をローカルに保存する　(デフォルトはid_rsa.pub)
  8.｢秘密鍵の保存｣をクリックし、適当な名前で秘密鍵をローカルに保存する  (デフォルトはid_rsa)

![2-ssh公開鍵認証2.png](https://qiita-image-store.s3.amazonaws.com/0/13000/348294c4-88fc-79dd-0b20-f2c616148738.png)

##公開鍵セットアップ
作成した鍵ペアでSSHサーバーへ鍵方式ログインできるように公開鍵をセットアップする。

```bash

#　公開鍵格納ディレクトリ作成
[crimson@hostname ~]$ mkdir -p ~/.ssh
#　公開鍵格納ディレクトリのパーミッションを変更
[crimson@hostname ~]$ chmod 700 ~/.ssh
#　クライアント側で作成した公開鍵をアップロードした後、作成したフォルダにauthorized_keysというファイル名で保存
[crimson@hostname ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
#　authorized_keysのパーミッションを変更
[crimson@hostname ~]$ chmod 600 ~/.ssh/authorized_keys
#　ログアウト
[crimson@hostname ~]$ exit


```

##sshd設定変更（プレーンテキストでのパスワードログインを不可にする）

```bash

#　SSHサーバー設定ファイル編集
[root@hostname ~]# vim /etc/ssh/sshd_config

PasswordAuthentication yes
↓                                              #変更
PasswordAuthentication no

#　SSHサーバー設定反映
[root@hostname ~]# /etc/rc.d/init.d/sshd reload
sshd を再読み込み中:             

#　ログアウト
[root@hostname ~]$ exit
[crimson@hostname ~]$ exit

```

一度ログアウトし今度はteatermで秘密鍵を使ってログインします
![3-ssh公開鍵認証3.png](https://qiita-image-store.s3.amazonaws.com/0/13000/4cd238b9-caed-c315-ceaf-55efe7b194f5.png)

問題なくログインできることを確認します。




##teratermマクロの作成
TTLEditorでteratermでログインするためのマクロを作成する。
マクロの内容は下記のようにします。
9行目から13行目のユーザー名、接続先ホスト、秘密鍵の保存場所、
パスワードファイルを保存する場所、接続先ポート番号を
ログインするサーバーの情報にあわせて変更してください。

```
;============================================ 
; Filename    : ssh_connect-15.ttl 
; Description : SSH Auto login 
; Author      : crimson
; Created     : 2016/04/04 
; modified    : 
;============================================ 
;; ユーザ名／パスワード設定 /鍵ファイルのパス/パスワードファイル/接続先ポート番号の指定
username = 'ユーザー名(例:crimson)'
hostname = '接続先ホストIPアドレス、またはホスト名(XXX.XXX.XXX.XXX)'
key_file = '秘密鍵ファイルの保存場所(例:C:\Users\crimson\id_rsa)'
passwdfile = 'パスワードファイルを保存する場所を指定(例:C:\Users\crimson\passwd.dat)'
portnum = '22(デフォルトは22、sshdの設定を変更した場合はそれに合わせたポート番号にする。)'

;; パスワード取得 
getpassword passwdfile username userpasswd

;; コマンド組立て 
msg = hostname
strconcat msg ':portnum /ssh2 /auth=publickey /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg userpasswd
strconcat msg ' /keyfile=' 
strconcat msg key_file
strconcat msg inputstr

connect msg
;; マクロ終了 
end
```














#参考ページ

http://centossrv.com/
http://webkaru.net/linux/ssh-prohibit-root-login/
http://www.server-world.info/query?os=CentOS_6&p=japanese
http://webkaru.net/linux/tera-term-macro-key-login/