SSHによるサーバ管理
初期設定
第三者による攻撃や不正アクセスを防止するため、初期状態ではsshdのアクセス制限が設定されています。 初期設定を行うまではすべてのアクセス元からのアクセスが禁止された状態になっていますので、はじめに初期設定を実行して下さい。
初期設定を行うには、コントロールパネルにログインして「初期設定」メニューから「SSHのアクセス制御」を選択します。 ログイン方法はこちらをご参照下さい。

表示された画面には自動的に現在コントロールパネルにアクセスしている接続元のIPアドレスが表示されています。 一般的なインターネット接続環境の場合はこのIPアドレスがSSHで接続する時の接続元になりますので、 そのまま「アクセス制御」ボタンをクリックして下さい。続いて確認の画面が表示されますので、「OK」ボタンをクリックして下さい。

これで以下のようにコントロールパネルに接続している接続元のIPアドレス(お客さまの端末をサーバ側から見た時のグローバルIPアドレス)が /etc/hosts.allow ファイルに登録され、そのIPアドレスからSSHでアクセスすることが可能になります。

Webのプロキシサーバを使用している場合など、お客さまの接続環境によってはコントロールパネルにアクセスする時の接続元IPアドレスと SSHでアクセスする時の接続元IPアドレスが異なる場合がございます。 このような場合は、表示されたIPアドレスを編集して任意のアクセス元IPアドレスを設定することも可能です。
sshdの起動
ご利用開始直後の状態ではsshdは停止していますので、 接続する前にコントロールパネルからsshdを起動して頂く必要があります。 コントロールパネルにログインして、「初期設定」メニューから「sshdの起動」を選択して下さい。
画面の右側に表示された「sshdの起動」の項目にある「起動」ボタンをクリックします。 確認が表示されますので「実行」ボタンをクリックして下さい。 これでsshdが起動し、SSHで接続できる状態になります。
接続方法
SSHでVPSに接続するにはSSH用のクライアントが必要となります。 WebARENAのVPSで採用しているCentOSは標準の文字コードがUTF-8に設定されていますので、 UTF-8に対応しているSSHクライアントソフトのご利用をお勧め致します。
- UTF-8対応TeraTerm Pro
- PuTTY
初期状態ではSSHでログインできるアカウントは管理用アカウントのrootのみとなっていますので、 rootアカウントを使用して接続します。SSHクライアントソフトに以下の情報を入力して下さい。
サーバのアドレス:(IPアドレス)
ユーザー名:root
パスワード:(rootのパスワード)
たとえば、お客さまのIPアドレスが123.123.123.123の場合は以下の内容をSSHクライアントソフトに設定して下さい。
サーバのアドレス:123.123.123.123
ユーザー名:root
パスワード:(rootのパスワード)
rootのパスワードは初期状態ではコントロールパネルにログインする時のパスワードと同一のものが設定されています。
UTF-8対応TeraTerm Proの場合の入力例は以下のようになります。


Puttyの場合の入力例は以下のようになります。


正常に接続できると # プロンプトが表示され、root権限でコマンドを入力できる状態になります。これでログインは完了です。
[root@localhost ~]#
なお、日常的に使用する際にrootで直接ログインすることはセキュリティ上好ましくありません。 通常は個人用のユーザーアカウントでログインするようにして、必要な時だけroot権限を使用することをお勧めします。
ユーザーアカウントでログインしている時にroot権限を使用するには、以下のコマンドを使用します。 コマンドを入力するとパスワードの入力を求めるプロンプトが表示されますので、rootのパスワードを入力して下さい。 正常にroot権限に切り替わると、コマンド入力欄のプロンプトが「$」から「#」に切り替わります。
[user@localhost ~]$ su - Password: (rootのパスワードを入力)
オンラインマニュアル内の「rootでログインして下さい」という説明が記載されている箇所は ユーザーアカウントでログインして上記のコマンドによりroot権限を使用する方法でも同様に設定を行うことが出来ます。
使用後にログアウトして接続を切断する場合は以下のコマンドを入力して下さい。
[root@localhost ~]# logout
アクセス制限
初期状態ではrootで直接ログインすることが可能になっています。 SSHはサーバーの内容を直接操作することが可能なため、 このままの状態で継続的に使用し続けるすることはセキュリティ上危険があります。
ここではサーバへの不正アクセスを防ぐために効果的なアクセス制限の方法についてご案内致します。 必ず行わなければならないものではありませんが、危険性を小さくするためにこれらの制限設定を行っておくことをお勧め致します。
[ 管理者アカウントでの直接ログインを禁止する設定 ]
管理者アカウントでSSHでログインできる状態になっていると辞書攻撃(よく使われそうなパスワードを使って不正侵入を試みる方法)や 総当たり攻撃(手当たり次第にさまざまなパスワードを使って不正侵入を試みる方法)によって第三者によって管理者権限を不正に取得される危険があります。
この危険性に対処するため、管理者アカウント(root)を使ってSSHでログインすることを禁止する設定を行うことが出来ます。 設定の手順は以下の通りです。
もしユーザーアカウントを作っていない状態でこの設定を行い、ログインすることが出来なくなってしまった場合はコントロールパネルの「メンテナンス」メニューにある 「SSH設定ファイルの初期化」から設定ファイルの初期化を実施し、さらに「初期設定」から「sshdの起動」ボタンを押しsshdを再起動して下さい。
- サーバーにSSHで接続し、rootアカウントを使用してログインします。
-
viなどのテキストエディタで /etc/ssh/sshd_config ファイルを開いて下さい。viで /etc/ssh/sshd_config ファイルを開くコマンドは以下の通りです。
[root@localhost ~]# vi /etc/ssh/sshd_config
「#PermitRootLogin yes」と書いてある行がありますので、この行の行頭にある「#」を削除し「yes」を「no」に書き換えて下さい。PermitRootLogin no (←行頭にある # を削除)
書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。 -
以下のコマンドを実行し、設定した内容を有効にして下さい。
[root@localhost ~]# service sshd reload
[ アクセス元を制限する設定 ]
初期状態でアクセス元を制限する設定が行われていますので通常は特に手動で設定を行う必要はありませんが、 任意のアクセス元からのアクセスを許可する設定を追加したい場合は以下の手順に沿ってアクセス元の追加登録を行って下さい。 設定の手順は以下の通りです。
もしこの設定を行ったあとにログインすることが出来なくなってしまった場合はコントロールパネルの 「初期設定」メニューにある「SSHのアクセス制御」から初期設定を行って下さい。設定した接続元のIPアドレスから SSHでアクセスすることが出来るようになります。
それでも問題が解決しない場合は、「メンテナンス」メニューにある「SSH設定ファイルの初期化」 から設定ファイルの初期化を実施した上で再度初期設定を行って下さい。
- サーバーにSSHで接続し、rootアカウントを使用してログインします。
- viなどのテキストエディタで /etc/hosts.allow ファイルを開いて下さい。viで /etc/hosts.allow ファイルを開くコマンドは以下の通りです。
[root@localhost ~]# vi /etc/hosts.allow
初期設定を行った後の状態であれば、一番上の行にコントロールパネルから設定したIPアドレスが書かれています。 「#」で始まる行はコメントになっていますので、それ以外の行(通常はコメント行より下の行に記述します)に 「sshd : (アクセス元のIPアドレスまたはドメイン名)」という形式でアクセスを許可するアクセス元を記述します。 許可するアクセス元はお客さまがご利用になるネットワーク環境に応じて設定して下さい。
ここでは例として、以下のような条件を設定することにします。
- IPアドレス 111.111.111.111 のホストからのアクセスを許可する。
- 222.222.222 で始まるIPアドレスのホストからのアクセスを許可する。
- example.arena.ne.jp というドメイン名のホストからのアクセスを許可する。
- nttpc.co.jp で終わるドメイン名のホストからのアクセスを許可する。
この場合の hosts.allow ファイルの設定は以下のように記述します。
sshd : (初期設定時のIPアドレス) # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # sshd : 111.111.111.111 sshd : 222.222.222. sshd : example.arena.ne.jp sshd : .nttpc.co.jp
書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。
ユーザーアカウントの管理
初期状態ではユーザーアカウントは1つも作成されていません。 メールアカウントを追加したい場合など、root以外のアカウントを使用したい場合は rootでVPSにログインして以下のコマンドを実行して下さい。
[root@localhost ~]# useradd (ユーザー名)
たとえば、「nttpc」というユーザーアカウントを作成したい場合は以下のコマンドを入力します。
[root@localhost ~]# useradd nttpc
サーバにSSHでログインする必要が無いユーザーアカウントについては、ログインシェルを指定して ユーザーアカウントを作成されることをお勧めします。この制限を設定すると、そのユーザーはSSHでログインすることが出来ません。
たとえば、「nttpc」というユーザーアカウントを作成したいが、このユーザーでSSHのログインを行わない、 若しくはSSHでログインさせたくない場合は以下のようにuseradd コマンドにオプションをつけてユーザーアカウントを作成します。
[root@localhost ~]# useradd -s /sbin/nologin nttpc
ユーザーを追加したら、そのユーザーのパスワードも設定して下さい。パスワードが設定されていない場合、そのユーザーはログインすることが出来ません。 パスワードの設定は以下のコマンドで行うことが出来ます。
[root@localhost ~]# passwd (ユーザー名)
たとえば、「nttpc」というアカウントのパスワードを設定したい場合は以下のコマンドを入力します。 コマンドを入力すると設定するパスワードを入力するプロンプトが表示されますので、 設定したいパスワードを入力してEnterを押す操作を2回繰り返して下さい。
[root@localhost ~]# passwd nttpc Changing password for user nttpc. New UNIX password:(設定するパスワードを入力) Retype new UNIX password:(同じパスワードをもう一度入力) passwd: all authentication tokens updated successfully.
作成したユーザーアカウントを削除したい場合は以下のコマンドを入力します。
[root@localhost ~]# userdel (ユーザー名)
たとえば、「nttpc」というアカウントを削除したい場合は以下のコマンドを入力します。
[root@localhost ~]# userdel nttpc
パスワードの変更
ログインしているアカウントのパスワードを変更する場合は以下のコマンドを入力して下さい。
[root@localhost ~]# passwd
コマンドを入力すると設定するパスワードを入力するプロンプトが表示されますので、 設定したいパスワードを入力してEnterを押す操作を2回繰り返して下さい。
root権限を使用している場合は以下のコマンドでユーザーアカウントのパスワードを強制的に変更することが出来ます。
[root@localhost ~]# passwd (ユーザー名)
たとえば、「nttpc」というアカウントのパスワードを変更したい場合は以下のコマンドを入力します。
[root@localhost ~]# passwd nttpc
自動起動の設定
sshdを起動するとSSHで接続できるようになりますが、そのままの状態ではOSを再起動するたびに手動でsshdを起動しなければなりません。
OSの再起動と同時にsshdを自動起動させたい場合は、SSHでサーバにログインし、root権限で以下のコマンドを実行して下さい。
[root@localhost ~]# chkconfig sshd on
設定の確認は以下のコマンドを実行します。
[root@localhost ~]# chkconfig --list
quotaの設定
ユーザーアカウントが使用できるディスク容量やノード(ファイル・ディレクトリ)の数を制限したい場合はquotaの設定を行って下さい。 WebARENAのVPSでは以下の手順でquotaの設定を行うことが出来ます。
特定のアカウントに対し制限を実施する場合は以下のコマンドを実行します。
[root@localhost ~]# setquota (アカウント名) (容量 soft)
(容量 hard) (ノード soft) (ノード hard) /dev/simfs
(アカウント名)には対象のアカウント名を記述します。
(容量 soft)と(容量 hard) にはKB(キロバイト)単位で制限容量を記述します。
(ノード soft)と(ノード hard) には制限ノード数を記述します。
例えば、「nttpc」というユーザーアカウントのディスク容量を10240KB(10MB)、ノード数を1000に制限する場合は以下のコマンドを実行します。
[root@localhost ~]# setquota nttpc 10240 10240 1000 1000 /dev/simfs
quotaが設定されているかの確認は、repquota -u /dev/simfsを実行して下さい。
[root@localhost ~]# repquota -u /dev/simfs
quota設定の解除は以下のコマンドを上から順に実行して下さい。
[root@localhost ~]# quotaoff -a [root@localhost ~]# setquota nttpc 0 0 0 0 /dev/simfs [root@localhost ~]# repquota -u /dev/simfs