【Linux】rootでのログイン禁止と一般ユーザ作成の手順

Linuxサーバーにおいてセキュリティを高めるための基本設定のひとつである、rootユーザでのログイン禁止の手順をまとめます。

(SSH公開鍵認証の設定と合わせて行う事をお勧めします)

環境 : CentOS 7

rootユーザーでのログインを禁止する

rootは管理者ユーザーと呼ばれ、システム全体の設定や変更を行うことが出来ることから不正アクセスや攻撃対象として狙われやすいため、
通常、サーバへのログインはroot以外の一般ユーザーで行うことが推奨されています。

一般ユーザーの作成

はじめにroot以外でサーバへログインを行うための一般ユーザーを作成します。

まずはrootでサーバへログインし、下記コマンドを実行していきます。

1. ユーザーを追加

# useradd (作成するユーザー名)

2. 追加したユーザーのパスワードを設定
(8文字以上で数字、アルファベット、記号を含めて強度を上げます)

# passwd (作成したユーザー名)

2つのコマンドを実行し終えたらサーバーの接続を一度切り、
作成したユーザーと設定したパスワードで再度SSHログインが出来るかを確認します。

作成したユーザーにsudo権限を与える

作成した一般ユーザーでのサーバーログインが可能になったらユーザーへsudoコマンドの権限を与えます。
sudoを実行することでrootと同じ管理者権限でコマンドを実行出来るようになります。

sudo権限を扱えるようにするためにユーザーをwheelグループという特別なグループに追加していきます。

1.  一般ユーザーでログインしている場合、suコマンドでrootへ切り替えます。

$ su

2. ユーザーをwheelグループへ追加する
# usermod -G wheel ユーザ名

3. グループ追加を反映するため、接続を切り再度ユーザでログインします。

※所属グループの確認はgroupsコマンドで確認出来ます。
$ groups ユーザー名

rootログインの禁止設定

一般ユーザーの作成と設定が完了したら、rootユーザでのログイン禁止の設定を行っていきます。

sshd_configの変更

作成したユーザーでログインし、ファイル /etc/ssh/sshd_config の内容を変更します。
(vi insertモードで編集)

$ sudo vi /etc/ssh/sshd_config

1. PermitRootLoginと書かれた行を検索、変更を加えます。

(変更前) # PermitRootLogin yes
(変更後) PermitRootLogin no

(コメントアウトを削除し、rootログインの設定を no に変更します)

2. 変更の保存が出来たら、下記コマンドを実行して設定を反映します。
$ sudo systemctl restart sshd.service

rootでのサーバ接続が出来なくなっていれば設定完了です。

※正しいパスワードを入力していても失敗するようになります。
Permission denied, please try again.

Follow me!