プログラミングと洋服と

プログラミングや洋服など、好きなことを自由に書き綴ります。

【VPS セキュリティ対策】リモートPCから直接rootユーザとしてログインできなくする方法

VPSsshでrootユーザとして直接ログインしている場合(rootユーザーで直接サーバーにログインできる状態)、rootのパスワードを盗まれるなどあったときに悪意あるユーザーにサーバーを乗っ取られるリスクがあります。
サーバのセキュリティを高める目的として、rootユーザーでは直接VPSにログインできないように設定を変更します。

VPSはさくらVPSを借りています。

 

目次

 

1.管理者権限のない一般ユーザを作成する

まず、管理者権限のない一般ユーザを作成していきます。

一般ユーザーは、管理者のようにVPSのシステムファイルを変更したりすることができませんので、一般ユーザーのパスワードが漏れてもシステム全体が乗っ取られることはありません。

備考:管理者権限が必要な作業をする場合は、一般ユーザーでログインし、その後rootユーザーに切り替えることで可能となります。

さくらVPSのシリアルコンソールより、以下コマンドにて新規ユーザを追加します。

# useradd 任意のユーザ名 

次にパスワードを設定します。

# passwd 作成したユーザ名 

パスワードの確認を聞かれますので設定したパスワードを再入力します。

これでユーザの追加は完了です。

一旦、exitしてコンソールを離れます。

 

2.rootユーザで直接VPNにログインできないように設定する

クライアント側で先ほど作成したユーザを確認

Macの場合は、ターミナルを開きます。

まず、ターミナルで以下コマンドを打ちます。

$ ssh 作成したユーザ名@VPSIPアドレス

パスワードを聞かれますので設定したパスワードを入力します。

ログインができたことが表示され、$から入力できる状態になります。

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ユーザーではログインできなれば完了です。

 

以上です!お疲れさまでした!

 

それでは!!