サーバの管理_SSHによるサーバ管理

注意事項

WebARENA SuitePRO V2では、日本語環境の設定をした場合、コントロールパネルからsshdの起動が行えなくなりますので「/etc/sysconfig/i18n」の設定は変更しないようお願いします。

コントロールパネル上ではシステムエラー(エラーNo.003)が発生します。

デフォルトの設定は以下となります。修正された場合は、以下を参考に元の設定にご変更ください。

# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

初期設定

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

表示された画面には自動的に現在コントロールパネルにアクセスしている接続元のIPアドレスが表示されています。 一般的なインターネット接続環境の場合はこのIPアドレスがSSHで接続する時の接続元になりますので、 そのまま「アクセス制御」ボタンをクリックして下さい。続いて確認の画面が表示されますので、「実行」ボタンをクリックして下さい。 これでコントロールパネルに接続している接続元のIPアドレス(お客様の端末をサーバ側から見た時のグローバルIPアドレス)が /etc/hosts.allow ファイルに登録され、そのIPアドレスからSSHでアクセスすることが可能になります。

Webのプロキシサーバを使用している場合など、お客様の接続環境によってはコントロールパネルにアクセスする時の接続元IPアドレスと SSHでアクセスする時の接続元IPアドレスが異なる場合がございます。 このような場合は、表示されたIPアドレスを編集して任意のアクセス元IPアドレスを設定することも可能です。

固定IPアドレスを持たない一般的なインターネット接続環境で端末をご利用のお客様は、接続元のIPアドレスが動的に変更される場合があります。 急にSSHでログインすることができなくなってしまった場合は接続元のIPアドレスが変更された可能性がありますので、 改めて上記の初期設定を行ってみて下さい。

sshdの起動

ご利用開始直後の状態ではsshdは停止していますので、 接続する前にコントロールパネルからsshdを起動して頂く必要があります。 コントロールパネルにログインして、「初期設定」メニューから「sshdの起動」を選択して下さい。

画面の右側に表示された「sshdの起動」の項目にある「起動」ボタンをクリックします。 確認が表示されますので「実行」ボタンをクリックしてください。 これでsshdが起動し、SSHで接続できる状態になります。

接続方法

SSHで仮想専用サーバに接続するにはSSH用のクライアントが必要となります。 WebARENA SuitePROで採用しているCentOSは標準の文字コードがUTF-8に設定されていますので、 UTF-8に対応しているSSHクライアントソフトのご利用をお勧め致します。

弊社で特にご利用をお勧めするソフトはございませんが、UTF-8に対応しているSSHクライアントソフトの一例としては以下のソフトがございます。

リンク先のサイトはいずれも弊社管理外のサイトとなりますので、Webサイトへのアクセス・ソフトウェアのご利用はお客様の責任において行って下さい。 ソフトウェアのダウンロード・インストール・詳細な設定方法についてはサポート致しかねます。

初期状態では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@localhost ~]#

オンラインマニュアル内の「rootでログインして下さい」という説明が記載されている箇所は ユーザーアカウントでログインして上記のコマンドにより root権限を使用する方法でも同様に設定を行うことが出来ます。

使用後にログアウトして接続を切断する場合は以下のコマンドを入力して下さい。

[root@localhost ~]# logout

アクセス制限

初期状態ではrootで直接ログインすることが可能になっています。 SSHはサーバーの内容を直接操作することが可能なため、 このままの状態で継続的に使用し続けるすることはセキュリティ上危険があります。

ここではサーバへの不正アクセスを防ぐために効果的なアクセス制限の方法についてご案内致します。 必ず行わなければならないものではありませんが、 危険性を小さくするためにこれらの制限設定を行っておくことをお勧め致します。

[ 管理者アカウントでの直接ログインを禁止する設定 ]

管理者アカウントでSSHでログインできる状態になっていると辞書攻撃(よく使われそうなパスワードを使って不正侵入を試みる方法)や 総当たり攻撃 (手当たり次第にさまざまなパスワードを使って不正侵入を試みる方法)によって第三者によって管理者権限を不正に取得される危険があります。

この危険性に対処するため、管理者アカウント(root)を使ってSSHでログインすることを禁止する設定を行うことが出来ます。 設定の手順は以下の通りです。

設定を行う前にユーザーアカウントの管理 の項目に書かれている方法でユーザーアカウントを作っておいて下さい。 設定を行う前にユーザーアカウントを作っておかないとSSHでログインすることが出来なくなってしまいます。

もしユーザーアカウントを作っていない状態でこの設定を行い、 ログインすることが出来なくなってしまった場合はコントロールパネルの「再インストール」メニューにある「sshdの再インストー ル/起動」から設定ファイルの初期化を実施し、さらに「sshdの起動」ボタンを押しsshdを再起動して下さい。
  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. viなどのテキストエディタで /etc/ssh/sshd_config ファイルを開いて下さい。 viで /etc/ssh/sshd_config ファイルを開くコマンドは以下の通りです。
    [root@localhost ~]# vi /etc/ssh/sshd_config

    「#PermitRootLogin yes」と書いてある行がありますので、この行の行頭にある「#」を削除し「yes」を「no」に書き換えて下さい。

    PermitRootLogin no  (←行頭にある # を削除)

    書き換えが終了したらファイルを保存してテキストエディタを終了して下さい。

  3. 以下のコマンドを実行し、設定した内容を有効にしてください
    [root@localhost ~]# service sshd reload

[ アクセス元を制限する設定 ]

初期状態でアクセス元を制限する設定が行われていますので通常は特に手動で設定を行う必要はありませんが、 任意のアクセス元からのアクセスを許可する設定を追加したい 場合は以下の手順に沿ってアクセス元の追加登録を行って下さい。 設定の手順は以下の通りです。

誤った設定を行ってしまうとお客様ご自身がアクセスできなくなる可能性があります。 設定するアドレスを間違えないよう、十分ご注意ください。

もしこの設定を行ったあとにログインすることが出来なくなってしまった場合はコントロールパネルの「初期設定」メニューにある「sshdのアクセス制限」から 初期設定を行って下さい。設定した接続元のIPアドレスからSSHでアクセスすることが出来るようになります。

それでも問題が解決しない場合は、「SSHの設定」メニューにある「設定ファイルの初期化」から設定ファイルの初期化を実施した上で再度初期設定を行ってください。

また、このファイルに日本語コードが含まれた記述をされますとコントロールパネルからのSSHのアクセス制限が正常に動作しませんので、日本語コードの記述は行われないようお願いします。
  1. サーバーにSSHで接続し、rootアカウントを使用してログインします。
  2. 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 で終わるドメイン名のホストからのアクセスを許可する。
ドメイン名で許可設定を行った場合、DNSでアクセス元のIPアドレスからドメイン名を逆引き検索して判定を行います。 逆引き検索によって得られるドメイン名はそのドメ イン名の所有者でなくても任意に設定できるため、 ドメイン名で許可設定を行うことは比較的信頼性が低いと言えます。 可能であればドメイン名ではなく、IPアドレスで記述することをお勧め致します。

この場合の 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で仮想専用サーバにログインして以下のコマンドを実行して下さい。

[root@localhost ~]# useradd (ユーザー名)

たとえば、「nttpc」というユーザーアカウントを作成したい場合は以下のコマンドを入力します。

[root@localhost ~]# useradd 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の設定を行って下さい。 SuitePROでは以下の手順でquotaの設定を行うことが出来ます。

はじめに、rootアカウントで以下の2つのコマンドを順番に実行して下さい。

[root@localhost ~]# quotacheck -vaugfm
quotacheck: Scanning /dev/simfs [/] done


quotacheck: Checked 20931 directories and 114566 files
[root@localhost ~]# quotaon -a

これでquotaを使用する準備が出来ました。

次に特定のアカウントに対し制限を実施する場合は以下のコマンドを実行します。

[root@localhost ~]# setquota (アカウント名) (容量 soft)
(容量 hard) (ノード soft) (ノード hard) /dev/hdv1 

表示の都合上改行を入れていますが、実際には1行に続けて入力して下さい。

(アカウント名)には対象のアカウント名を記述します。
(容量 soft)(容量 hard)にはKB(キロバイト)単位で制限容量を記述します。
(ノード soft)(ノード hard)には制限ノード数を記述します。

本来はsoftが一時的に超えることができる制限値、hardが超えることのできない制限値という違いがありますが、 若干複雑になりますのでここでは同じ値を設定する方法を掲載しています。

例えば、「nttpc」というユーザーアカウントのディスク容量を10240KB(10MB)、 ノード数を1000に制限する場合は以下のコマンドを実行します。

[root@localhost ~]# setquota nttpc 10240 10240 1000 1000 /dev/hdv1

setquotaコマンドを実行した後、もう一度quotacheckコマンドを実行して下さい。

[root@localhost ~]# quotacheck -vaugfm

quotaが設定されているかの確認は、repquota -u /dev/simfsを実行して下さい。

[root@localhost ~]# repquota -u /dev/simfs

quota設定の解除は以下のコマンドを上から順に実行して下さい。

[root@localhost ~]# quotacheck -vaugfm
[root@localhost ~]# quotaoff -a
[root@localhost ~]# setquota nttpc 0 0 0 0 /dev/simfs
[root@localhost ~]# repquota -u /dev/simfs