SSHによるサーバ管理

初期設定

第三者による攻撃や不正アクセスを防止するため、初期状態ではsshdのアクセス制限が設定されています。設定を行うまではすべてのアクセス元からのアクセスが禁止された状態になっています。お客様接続元IPアドレスからの接続許可の設定を行います。

コントロールパネルにログインして、「サーバー」メニューから「コンソール」「開く」を選択してください。

「アクセス制御」ボタンをクリック

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

(例)SSHのアクセス制限に、IPアドレス203.0.113.5を登録する場合

            [root@localhost ~]#  vi /etc/hosts.allow
            
             sshd: 203.0.113.5 
            
固定IPアドレスを持たない一般的なインターネット接続環境で端末をご利用のお客さまは、接続元のIPアドレスが動的に変更される場合があります。 突然SSHでログインすることができなくなってしまった場合は接続元のIPアドレスが変更された可能性がありますので、 改めて上記の初期設定を行ってみてください。

アクセス制限

初期設定ではrootで直接ログインすることが可能になっています。セキュリティ対策のために、本項の設定を実施いただくことをお勧めいたします。

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

SSHにrootアカウントで直接ログインすることを禁止する設定を行います。

※事前にユーザアカウントを作成していない場合、SSH接続ができなくなりますのでご注意ください。
 ユーザアカウントの設定方法は[ユーザーアカウントの管理]をご参照ください。

  1. rootアカウントでログインします。
  2. /etc/ssh/sshd_config ファイルを編集します。
    [root@localhost ~]# vi /etc/ssh/sshd_config
    「#PermitRootLogin yes」と書いてある行がありますので、この行の行頭にある「#」を削除し「yes」を「no」に書き換えてください。
    PermitRootLogin no  (←行頭にある # を削除)
    書き換えが終了したらファイルを保存してテキストエディタを終了してください。
  3. 以下のコマンドを実行し、設定した内容を有効にしてください。
    CentOS6の場合
    [root@localhost ~]# service sshd reload
    CentOS7の場合
    [root@localhost ~]# service sshd reload

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

初期状態でアクセス元を制限する設定が行われています。任意のアクセス元からのSSH接続を許可する場合はアクセス元の追加登録を行ってください。

  1. rootアカウントでログインします。
  2. /etc/hosts.allow ファイルを編集します。
    [root@localhost ~]# vi /etc/hosts.allow 

「#」で始まる行はコメントになっていますので、それ以外の行(通常はコメント行より下の行に記述します)に 「sshd : (アクセス元のIPアドレスまたはドメイン名)」という形式でアクセスを許可するアクセス元を記述します。 許可するアクセス元はお客さまがご利用になるネットワーク環境に応じて設定してください。

ここでは例として、以下のような条件を設定することにします。

  • IPアドレス203.0.113.5のホストからのアクセスを許可する。
  • 192.0.2.で始まる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 : 203.0.113.5

sshd : 192.0.2.

sshd : example.arena.ne.jp

sshd : .nttpc.co.jp

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

ユーザーアカウントの管理

初期状態ではユーザーアカウントはありません。アカウントを追加する場合は rootで仮想専用サーバーにログインして以下のコマンドを実行してください。

# useradd ユーザー名

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

[root@localhost ~]# useradd nttpc

ユーザー追加後、パスワードも設定してください。パスワードが設定されていないユーザーはログインすることが出来ません。 パスワードの設定は以下のコマンドで行うことが出来ます。

# 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.

作成したユーザーアカウントを削除する場合は以下のコマンドを入力します。

# userdel ユーザー名

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

 [root@localhost ~]#  userdel nttpc  

パスワードの変更

ログインしているユーザーアカウントのパスワードを変更する場合は以下のコマンドを入力してください。

 [root@localhost ~]# passwd

コマンドを入力すると設定するパスワードを入力するプロンプトが表示されますので、 設定したいパスワードを入力してEnterを押す操作を2回繰り返してください。
root権限を使用している場合は以下のコマンドでユーザーアカウントのパスワードを強制的に変更することが出来ます。

# passwd ユーザー名

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

[root@localhost ~]# passwd nttpc

自動起動の設定

sshdを起動するとSSHで接続できるようになりますが、そのままの状態ではOSを再起動するたびに手動でsshdを起動しなければなりません。
OSの再起動と同時にsshdを自動起動させたい場合は、SSHでサーバーにログインし、root権限で以下のコマンドを実行してください。
CentOS6の場合

[root@localhost ~]# chkconfig sshd on

設定の確認は以下のコマンドを実行します。

[root@localhost ~]# chkconfig --list

CentOS7の場合

[root@localhost ~]# systemctl enable sshd.service

設定の確認は以下のコマンドを実行します。

 [root@localhost ~]# systemctl status sshd.service
                    sshd.service - OpenSSH server daemon
                       Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)  
                       Active: active (running) since Mon 2015-06-08 11:57:36 JST; 1min 8s ago
                     Main PID: 3125 (sshd)
                       CGroup: /system.slice/sshd.service
                               └─3125 /usr/sbin/sshd -D
                    Jun 08 11:57:36 localhost.localdomain systemd[1]: Started OpenSSH server daemon.