さくらVPS 1GB に CentOS6.4 を入れて、 環境構築1 - ssh など ( Webサーバー構築四苦八苦 1st Day )


OSなど確認

まずはさくらVPSのコンソールから自分の使ってるOSの確認。
間違っていたらこの時点でOS再インストールをかけます。

# cat /etc/redhat-release
CentOS release 6.4 (Final)

# vim /proc/cpuinfo
model name      : Intel(R) Xeon(R) CPU           E5645
cpu MHz         : 2400.032
cache size      : 4096 KB
・・・

ユーザー作成

ローカルのターミナルを起動してsshでサーバにログイン。
xxx.xxx.xxx.xxxは今回のサーバのIP。

$ ssh [email protected] -p 22

ログイン用のユーザーUSER_NAME(名前は自由)を作成。

# useradd USER_NAME -G wheel
# passwd USER_NAME

# この USER_NAME のところに自由にユーザー名を指定

確認します。
$ id satomi
uid=500(satomi) gid=500(satomi) 所属グループ=500(satomi),10(wheel)

yumのアップデート

とりあえず、これはやっときます。
yum を最新状態に。OSとかもアップデートされる場合もあります。
でもだいたい最新だと思いますが….

$ sudo yum update

sudoの設定

UNIX系のOSにある、一般ユーザーに 一時的にroot権限を与える コマンド sudo
わざわざ root になって作業するより、セキュリティ的にだいぶ良いので、かなり使います。
設定しましょう。

sudo vim /etc/pam.d/su
--------
# auth required pam_wheel.so use_uid
↓
auth required pam_wheel.so use_uid
--------
コメントアウトを外します。
root権限を使えるグループをwheelに指定します。
$ sudo vim /etc/login.defs
--------
SU_WHEEL_ONLY yes
--------

ファイルの最終行に上の一行を追加ます。
ちなみにvimで最終行に行くには *Shift+g* で行けます。
指定行には */ + [行きたい行数]* もしくは *[行きたい行数] + Shift+g* です。
$ sudo visudo
--------
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
# %wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL
--------

Rootでのログインを禁止

$ sudo vim /etc/ssh/sshd_config
--------
PermitRootLogin no
PasswordAuthentication no
--------

SSHのポート番号を変更

$ sudo vim /etc/ssh/sshd_config
--------
Port xxxxx
--------

この行をファイルの一番下に追加。 xxxxxは 0 ~ 65535 の間で選択可能。(ホントは49152 ~ 65535という指定があるのですが、今は気にしなくても大丈夫。詳しく知りたい場合はコチラ⇒http://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7)

ssh鍵の設定

まず、サーバに~/.ssh/フォルダを作成します。

su - USER_NAME
mkdir ~/.ssh/
chmod 700 ~/.ssh/

サーバからログアウトして、ローカルサーバで作業開始です。
まず、鍵を作ります。

ssh鍵は基本ホームディレクトリとかにある .sshというディレクトリにあります。
今回の分を作成するにあたり、.ssh以下に適当な名前のディレクトリを作ります。
私はsakuraにしました(^_^;)
そしてそこで鍵を作ります。

$ mkdir ~/.ssh/[vpsの名前]/
$ cd ~/.ssh/[vpsの名前]/
$ ssh-keygen -t rsa
名前の指定部分⇒ id_rsa.[vpsの名前等]
パスワード⇒ ご自由に
ls

そうすると鍵が出来ていることがわかると思います。
この .pub の方の鍵を、 scp を使ってサーバーに送ります。
サーバーに .ssh/authorized_keys というディレクトリを作成し、その下に鍵を置きます。

$ scp id_rsa.[vpsの名前].pub [email protected]:/home/USER_NAME/.ssh/authorized_keys

さて、再度サーバーに戻ります。
scpでサーバーに送りつけたディレクトリ毎、所有権とアクセス権限を変えます。
以下のコマンドの最後の方で sshd restart をかけます。
この時、今までの設定してきたデータが反映されることになります。
つまり、 rootでのsshアクセスができなくなります。

$ ssh [email protected] -p 22
# su - USER_NAME
$ sudo chown USER_NAME:USER_NAME ~/.ssh/authorized_keys # ご自身の.sshのパスを参照して下さい
$ chmod 600 /home/USER_NAME/.ssh/authorized_keys
$ sudo/etc/init.d/sshd restart
$ exit

これで一旦サーバー周りは完了です。
また、ローカルに戻ります。
ssh でのコマンド入力を簡易化させるための設定をします。

$ vim ~/.ssh/config
--------
Host [任意のお名前(私はsakura01とかにしました)]
    HostName xxx.xxx.xxx.xxx
    Port [サーバーで決めたPort番号]
    User USER_NAME
    identityfile ~/.ssh/VPS_NAME/id_rsa.[vpsの名前]  # ←ここは.pubじゃありません。.pubはサーバーに送った公開鍵で、ローカルにある鍵のことは秘密鍵といい、ここでは秘密鍵の指定をします。
--------

これで以下のように簡単にアクセスコマンドがうてます。

$ssh [先ほど指定した任意のお名前]
// ssh sakura01  ←私の場合

ちなみにこれをしないと以下の様なコマンドをほぼ毎回打つことになります。

$ ssh USER_NAME@HostName -p [ポート番号] -i [鍵のパス]

めんどいですね(((( ´,,_ゝ`)))) ププッ プルプルッ

sshの接続ホストの制限

$ sudo vim /etc/hosts.allow
--------
ALL: 127.0.0.1
sshd: .jp
--------
$ sudo vim /etc/hosts.deny
--------
sshd: ALL

--------

この先

これで、サーバーへのアクセス環境は整いました。
次はファイヤーウォールなどの設定をします。

こちらから