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

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

環境 : CentOS 7

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

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

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ログインの禁止設定

作成した一般ユーザーでSSH接続確認とwheelグループへの追加が完了したら、
rootユーザでのログイン禁止の設定を行っていきます。

sshd_configの変更

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

$ sudo vi /etc/ssh/sshd_config

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

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

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

2. 変更の保存が出来たら、sshdの設定を反映します。
$ sudo systemctl restart sshd.service

rootでのSSH接続、(パスワード認証)が出来なくなっていれば設定完了です。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください