【VPS セキュリティ対策】リモートPCから直接rootユーザとしてログインできなくする方法
VPSへsshでrootユーザとして直接ログインしている場合(rootユーザーで直接サーバーにログインできる状態)、rootのパスワードを盗まれるなどあったときに悪意あるユーザーにサーバーを乗っ取られるリスクがあります。
サーバのセキュリティを高める目的として、rootユーザーでは直接VPSにログインできないように設定を変更します。
目次
1.管理者権限のない一般ユーザを作成する
まず、管理者権限のない一般ユーザを作成していきます。
一般ユーザーは、管理者のようにVPSのシステムファイルを変更したりすることができませんので、一般ユーザーのパスワードが漏れてもシステム全体が乗っ取られることはありません。
備考:管理者権限が必要な作業をする場合は、一般ユーザーでログインし、その後rootユーザーに切り替えることで可能となります。
さくらVPSのシリアルコンソールより、以下コマンドにて新規ユーザを追加します。
# useradd 任意のユーザ名
次にパスワードを設定します。
# passwd 作成したユーザ名
パスワードの確認を聞かれますので設定したパスワードを再入力します。
これでユーザの追加は完了です。
一旦、exitしてコンソールを離れます。
2.rootユーザで直接VPNにログインできないように設定する
クライアント側で先ほど作成したユーザを確認
Macの場合は、ターミナルを開きます。
まず、ターミナルで以下コマンドを打ちます。
$ ssh 作成したユーザ名@VPSのIPアドレス
パスワードを聞かれますので設定したパスワードを入力します。
ログインができたことが表示され、$から入力できる状態になります。
rootユーザに切り替えができるか確認しときます。
$ su -
パスワードを入力し#から入力できる状態になれば確認完了です。
sshの設定を変更して、rootユーザで直接ログインできなくする
次にrootユーザーで直接ログインできなくするため、sshd_configというsshの設定ファイルを編集します。
これは、ssh通信を提供するプログラムであるsshサーバーの設定ファイルのようです。
ここで、ファイルを編集する前に、念のため変更前の設定ファイルをコピーして保存しておきます。
rootユーザーで作業します。
# cd /etc/ssh
# cp sshd_config sshd_config.backup
cdで該当ファイルが存在するディレクトリに移動し、
cpで元のファイルをコピーします。
cpコマンドの部分は「sshd_configというファイルをコピーして sshd_config.buckup を作る」という意味です。(詳しくはlinux cpコマンドでググってください)
次にsshd_configの中身をいじくります。
vimでファイルの中身を開きます。
# vim sshd_config
今回、ファイルの中身のPermitRootLoginという部分をいじりたいのでまずは場所を探します。
ファイルを開いたら以下入力します。
/PermitRootLogin
/入力した文字列 は現在地からした方向に入力した文字列を検索する機能です。
検索結果、#PermitRootLoginの横にyesかもしくはprohibit-passwordとなっているかと思います。
#PermitRootLogin yes (もしくはprohibit-password)
Permit〜の意味はrootユーザでのログインを許可するかどうかというものです。
なのでyesの部分をnoにすればログインができなくなります。
キーボードの” i ”を押してインサードモードにして文字を変えます。
#PermitRootLogin no
また、文字の先頭に#がついていてコメントアウト状態になっているので、#を消して有効化させます。
PermitRootLogin no
これで編集完了です。
:wq で保存して終了します。
最後に、sshdを再起動して設定を有効にします。
# systemctl restart sshd.service
最後の確認として、ターミナルからrootユーザーで直接ログインを試してみます。
設定どおりrootユーザーではログインできなれば完了です。
以上です!お疲れさまでした!
それでは!!