お名前.com VPS を借りて最初にやったこと(1) ユーザ作成とSSH設定

2013年5月27日

WordPress

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第1回目。

今回は、お名前.com の VPS を申し込んで最初に設定した SSH 周りの設定のメモです。

これまでの記事へのリンクはお名前.comのVPSに引越しました。引越し手順、他社 VPS との比較などにまとめてあります。

目次

  1. OS は標準OS で
  2. ディスク構成を基本ディスク1本にする
  3. SSH クライアントで VPS にログイン
  4. サーバをバージョンアップして最新版に
  5. root のパスワード変更
  6. 作業ユーザの作成
  7. 作業ユーザのみが root になれるように設定
  8. 作業ユーザに sudo 権限を設定
  9. openssh-clients をインストール
  10. SSH 公開鍵・秘密鍵を自分で作成したものに置き換える
  11. SSH の設定変更
  12. クライアント PC の .ssh/config を設定して SSH ログインを簡略化

OS は標準OS で

お名前.com の 標準OS は CentOS6.2 です。この記事では 標準OS のまま進めます。

公式のヘルプはこちら

VPS(KVM)活用ガイド|お名前.comレンタルサーバー

ディスク構成を基本ディスク1本にする

初期状態では、20GB の基本ディクス、180GB の追加ディスクに分かれています。基本ディスク 200GB 一本にまとめます。OS の再インストールが必要ですので最初にやりましょう。

公式のヘルプを確認しましたが、追加ディスクを有効に利用するには、LVM の知識が必要になる様子。手順も結構複雑です。追加ディスクを利用する利点はよく分からないので、私のような初心者はシンプルに基本ディスク一本しておくのが無難です。

VPS 活用ガイド ファイルシステム容量拡張(基本ディスク)

VPS のコントロールパネルにログインし、「OS再インストールタブ」で以下のように設定します。

onamae-disk

SSH クライアントで VPS にログイン

お名前.com の標準 OS は、鍵認証によるログインしか許可されていません。VPS のコントロールパネルにログインし、秘密鍵(vpsXXXXXXXXX-001)をダウンロードしてローカルに保存します。

onamae-key

SSH クライアントから root ユーザ、鍵認証でログインします。

$ ssh root@IPアドレス -i ~/Downloads/vpsXXXXXXXXX-001

Windows の方は、Tera Term などで公開鍵認証ログインができますので、詳しくはググってください。

サーバをバージョンアップして最新版に

ログインしたらサーバのバージョンを確認します。CentOS 6.2 がインストールされています。

# cat /etc/redhat-release

CentOS release 6.2 (Final)

yum update して最新版に更新します。

# yum update

再度サーバのバージョンを確認します。

# cat /etc/redhat-release

CentOS release 6.4 (Final)

カーネルが更新されたので念のため再起動します。

# reboot

root のパスワード変更

root のパスワードを変更します。

# passwd root

作業ユーザの作成

通常の作業をするためのユーザを作成し、パスワードを設定します。

# useradd 作業ユーザ名
# passwd 作業ユーザ名

作業ユーザのみが root になれるように設定

作業ユーザーが root に昇格出来るようにします。

gpasswd コマンドで作業ユーザを wheel グループに追加します。wheel グループは root 権限を得られるグループです。

# gpasswd -a 作業ユーザ名 wheel

ユーザの所属するグループを削除したいときは以下コマンドで。

# gpasswd -d 作業ユーザ名 wheel

つぎに、root に昇格できるユーザを変更します。/etc/pam.d/su ファイルを修正し、以下の行のコメントを外します。

auth       required     pam_wheel.so use_uid

id コマンドで作業ユーザが wheel に属しているか確認します。

# id 作業ユーザ名

uid=500(ユーザ名) gid=500(ユーザ名) groups=500(ユーザー名),10(wheel)

10(wheel) と表示されていれば OK です。作業ユーザが root に昇格できることを確認します。念のため、テストユーザを作成して root に昇格できないことを確認すると安心です。

# useradd テストユーザ名
# userdel テストユーザ名

作業ユーザに sudo 権限を設定

作業ユーザに sudo 権限を与えます。visudo コマンドを入力し、以下のようにコメントを解除します。

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

openssh-clients をインストール

クライアント PC から scp でファイルをアップロードしようとしたら、「bash: scp: コマンドが見つかりません lost connection」と表示されました。VPS 側に scp コマンドが入っていないようですので、openssh-clients をインストールします。

# yum install openssh-clients

SSH 公開鍵・秘密鍵を自分で作成したものに置き換える

現在 SSH 公開鍵は、VPS のコントロールパネルからダウンロードしたものを使用していますが、これを自分で作成したものに置き換えます。

作業ユーザになり ssh-keygen コマンドで公開鍵・秘密鍵のペアを作成します。途中の質問はすべてデフォルトにします。

# su 作業ユーザ
$ ssh-keygen -t rsa -C "任意のコメント"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/作業ユーザ/.ssh/id_rsa): そのまま Enter
Enter passphrase (empty for no passphrase): そのまま Enter
Enter same passphrase again: そのまま Enter

公開鍵の名前と、パーミッションを変更します。

$ cd /home/作業ユーザ/
$ chmod 700 .ssh
$ chmod 600 .ssh/*
$ mv .ssh/id_rsa.pub .ssh/authorized_keys

クライアント PC に秘密鍵を転送します。Mac の場合は以下のコマンドで。

$ mkdir ~/.ssh
$ scp -i ~/Downloads/vpsXXXXXXXXX-001 root@IPアドレス:/home/作業ユーザ/.ssh/id_rsa ~/.ssh/id_rsa
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

VPS から一度ログアウトして、クライアント PC から新しい秘密鍵でログインできるか確認します。

$ ssh 作業ユーザ@IPアドレス -i ~/.ssh/id_rsa

ログイン出来ればコントロールパネルからダウンロードした秘密鍵は不要になるので削除します。

$ rm ~/Downloads/vpsXXXXXXXXX-001

SSH の設定変更

以下のSSH の設定を変更し、セキュリティを高めます。

  • SSH ポート変更
  • root による SSH ログインの禁止
  • パスワード認証を OFF
  • SSH ログインユーザを作業ユーザに制限

/etc/ssh/sshd_config

#標準の22から変更。記事の便宜上10022。
Port 10022
#rootでのログインを禁止
PermitRootLogin no
#rsa鍵認証を有効
RSAAuthentication yes
#公開鍵認証を有効
PubkeyAuthentication yes
#公開鍵ファイルの場所
AuthorizedKeysFile .ssh/authorized_keys
#パスワード鍵認証を無効
PasswordAuthentication no
#ログイン許可ユーザを作業ユーザに限定
AllowUsers 作業ユーザ

変更したら、ssh を再起動します。

# /etc/rc.d/init.d/sshd restart

SSH のポート番号 10022 はあちこちでサンプルとして紹介されていて、攻撃者もそれを知っていると思います。実際には 10022 以外のポートにしたほうが良いでしょう。

上記で ssh のポート番号を変えたので、iptables のポート設定も変更します。お名前.com では、デフォルトで port 22 のみを許可するよう iptables が設定されています。

/etc/sysconfig/iptables

# 22 番ポートが許可されているので、新しいポート番号に変更
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
↓
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT

再起動して設定を反映、確認します。

# /etc/init.d/iptables restart
# iptables -L

一度 VPS からログアウトして SSH の動作確認をします。

作業ユーザでログインできれば OK

$ ssh 作業ユーザ@IPアドレス -p 10022

root でログインできなければ OK

$ ssh root@IPアドレス -p 10022

手順を間違えてログインできなくなってしまったら、VPS コントロールパネルのコンソールからログインできます。sshd_config や iptables の設定を見なおしてください。

クライアント PC の .ssh/config を設定して SSH ログインを簡略化

クライアント PC から ssh でログインするたびにユーザ名やポート番号を指定するのは大変なので、~/.ssh/config を設定しておきます。

~/.ssh/config

Host onamae
HostName IPアドレス
    Port 10022
    User 作業ユーザ
    IdentityFile ~/.ssh/id_rsa

ログインして動作確認。

$ ssh onamae

この設定でscpも簡略化できます。

$ scp local_file onamae:/home/ユーザ名/

SSH 接続できるプロバイダを制限

自宅からしか VPS に SSH でアクセスしない、などの理由で SSH 接続するプロバイダが固定なら気休め程度に設定しておくといいと思います。プロバイダは 「診断くん」などで確認できます。

/etc/hosts.allow に以下を追加します。

# vi /etc/hosts.allow
sshd: .hoge.ne.jp

/etc/hosts.deny に以下を追加します。

# vi /etc/hosts.deny
sshd: all

Vim をインストール

一区切りついたところで、Vim を入れておきます。今後は設定ファイルを編集することが多くなるので。

# yum install vim-enhanced

root でも作業ユーザと同じ .vimrc を使用するように、root の .vimrc はシンボリックリンクにします。

# ln -s /home/作業ユーザ/.vimrc /root/.vimrc

おわりに

今回は、お名前.com の VPS を申し込んで最初に設定したことをまとめました。次回は iptablesの設定と不要サービスを停止します。

WordPress
お名前.com VPS を借りて最初にやったこと(2) iptables設定、不要サービス停止

お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第2回目。前回はユーザ ...

続きを見る

-技術ブログ
-