ConoHa VPS にroot以外のユーザを追加してみた!

WEBアプリケーションのデプロイ前に、VPS の設定を行う。その際、セキュリティを高めておくことは重要になるが、作業は忘れがちで毎回同じ内容を調べながらの作業になるため、備忘録も兼ねて残しておく。

はじめに

クライアントからVPSサーバーへの接続はSSH接続することが一般的である。その際に初期のユーザー"root"を用いることは多いが、LinuxOSにおけるrootユーザーは一般的に知られているため、このユーザーからの SSH接続を許可することはセキュリティの観点から賢明とは言えない。

よってセキュリティを高める場合には、下記を実施する。

  1. rootユーザー相当の権限をもった別ユーザーの追加
  2. rootユーザーからのアクセス禁止

更新 (2018.04.13)

ConoHa VPSに"Debian9"ベースのサーバーを構築して、WEBアプリをリリースする記事を新たに追加した。
そちらでSSH接続の設定に関して、新たにまとめた。

参照先:こちら


環境

  • サーバー側: Debian 9.0 (64bit)
  • クライアント側:Mac OSX High Sierra 10.13.2


Step.1 rootユーザー相当の権限をもった別ユーザーの追加

  1. クライアント側のMacのターミナルを起動し、以下のコマンドを入力

    $ ssh root@@{サーバーIPアドレス}
  2. 以下のメッセージが表示される。"yes"と入力

    Are you sure you want to continue connecting (yes/no)?
  3. rootパスワードを要求されるので、"ConoHa VPS"生成時にWEBコンソール上に設定したパスワードを入力。コンソールの表示が以下に切り替わると接続成功

    [root@サーバーIPアドレス ~]#
  4. 以下コマンドを入力してユーザを新規追加

    adduser [User名]
  5. 以下コマンドを入力して、パスワードの入力を求める画面が表示されるため、新規パスワードと確認のためのパスワードを再入力

    passwd [User名]
  6. 以下のコマンドを使って、rootユーザーと同じ"sudo"グループに追加する。これによって、"sudo"コマンドが利用可能になる

    usermod -G sudo [User名]
  7. 以下コマンドを入力して、パスワードの入力画面が表示される。パスワード入力後、「test」が表示されれば設定完了

    sudo echo "test"

Step2. rootユーザーからのアクセス禁止

SSH の設定ファイルを編集して、下記設定を変更する。この結果、rootユーザーがssh接続でアクセスできなくなり、セキュリティ強度が高まる。

項目 変更前 変更後
rootユーザのログイン無効化 PermitRootLogin yes PermitRootLogin no

変更前(初期状態)は、先頭に"#"が付与されて設定自体が向こうになっている場合がある。この場合は、"#"を外してほしい。

ちなみに…この変更の実施+SSHサービスの再起動の後では、rootユーザーがSSH接続できなくなる。もし接続できる場合には、設定変更が完了していないことが考えられるので、内容を確認してほしい。スペルミスなども要注意。

SSHサービスの再起動

下記コマンドを実行して、SSHサービス (sshd) を再起動する。この結果、sshの設定変更が反映される。

$ sudo /etc/init.d/ssh restart

今回のサーバーOSは、Debianになるため上記になる。CentOSでは$ sudo systemctl start sshd.service になる。