お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第1回目。
今回は、お名前.com の VPS を申し込んで最初に設定した SSH 周りの設定のメモです。
これまでの記事へのリンクはお名前.comのVPSに引越しました。引越し手順、他社 VPS との比較などにまとめてあります。
目次
- OS は標準OS で
- ディスク構成を基本ディスク1本にする
- SSH クライアントで VPS にログイン
- サーバをバージョンアップして最新版に
- root のパスワード変更
- 作業ユーザの作成
- 作業ユーザのみが root になれるように設定
- 作業ユーザに sudo 権限を設定
- openssh-clients をインストール
- SSH 公開鍵・秘密鍵を自分で作成したものに置き換える
- SSH の設定変更
- クライアント PC の .ssh/config を設定して SSH ログインを簡略化
OS は標準OS で
お名前.com の 標準OS は CentOS6.2 です。この記事では 標準OS のまま進めます。
公式のヘルプはこちら
ディスク構成を基本ディスク1本にする
初期状態では、20GB の基本ディクス、180GB の追加ディスクに分かれています。基本ディスク 200GB 一本にまとめます。OS の再インストールが必要ですので最初にやりましょう。
公式のヘルプを確認しましたが、追加ディスクを有効に利用するには、LVM の知識が必要になる様子。手順も結構複雑です。追加ディスクを利用する利点はよく分からないので、私のような初心者はシンプルに基本ディスク一本しておくのが無難です。
VPS 活用ガイド ファイルシステム容量拡張(基本ディスク)
VPS のコントロールパネルにログインし、「OS再インストールタブ」で以下のように設定します。
SSH クライアントで VPS にログイン
お名前.com の標準 OS は、鍵認証によるログインしか許可されていません。VPS のコントロールパネルにログインし、秘密鍵(vpsXXXXXXXXX-001)をダウンロードしてローカルに保存します。
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の設定と不要サービスを停止します。
-
お名前.com VPS を借りて最初にやったこと(2) iptables設定、不要サービス停止
お名前.com VPS メモリ2G プランに Nginx で WordPress を構築するメモ、第2回目。前回はユーザ ...
続きを見る