【CentOS7】rootユーザでのサーバへのsshログインの禁止設定をする

2019年2月3日

rootユーザはめちゃくちゃ危険…

サーバを運用する際に、rootユーザの扱いには気を付ける必要があります。

rootユーザにはサーバ内での全ての権限が集約されていますので、rootユーザで誤った操作をすると最悪サーバが死にます。ただのサーバ内での単純作業(ログファイルの確認や整理とか、tmpファイルの削除)を行う際に、rootユーザで作業している場合にroot権限が必要な重要なファイルを削除してしまったりすることがそれにあたります。ですので、そもそもrootユーザは普段は使わない・使えないようにしておくのが良いです。

そもそもrootユーザでのログインはセキュリティ上非常に危険です。rootユーザのパスワード漏洩するだけでサーバの全てが死んでしまいます。(普通に運用していればパスワードの漏洩はあり得ないはずですが…。)

それを防ぐ一環として、また誤操作を防ぐための手段としても、rootユーザのログインは禁止するのが良いです。本記事では、CentOS7上でroot以外のユーザ追加rootユーザのsshログインを禁止するための手順を記載します。

※一部を除き、他のバージョンやディストリビューションでも同じように設定します。

 

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

root以外のユーザを作成する

rootユーザのログインを禁止する前に、別のユーザを作成しましょう。作成してログインできるようにしないとrootユーザを作成した後に、二度とサーバへログインできなくなってしまいます。

ユーザの追加には以下のコマンドを使用します。

useradd username

※usernameはお好きなユーザ名に置き換えてください。

 

ユーザが作成できたらパスワードを設定します。以下のコマンドを実行すると、パスワードを設定できます。

passwd username

実行すると、パスワードを入力するようメッセージが出ますので2回入力しましょう。これで新しいユーザの設定はOKです。

 

新しいユーザでログインしてみましょう

ssh接続でサーバへログインしてみましょう。ログインできたらOKです。何故か失敗してしまったらもう一度rootでログインして、設定を見直しましょう。

 

rootユーザでsshログインできないよう設定する

rootユーザでsshログインできないようにするには、/etc/ssh/sshd_configを編集すればOKです。念のため、事前にバックアップを取りましょう。

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk

バックアップが完了したら以下のコマンドでファイル編集を開始しましょう。

vi /etc/ssh/sshd_config

viが起動したら「/」を押し、PermitRootLoginを入力しましょう。記載箇所を検索できます。そして、記載箇所を以下のように修正してください。


PermitRootLogin no

これでsshログイン禁止の設定はOKです。設定を反映させるために、サービス再起動を行います。

sudo systemctl restart sshd.service

こちらの起動コマンドはCentOS7のものなので、別のバージョンやディストリビューションでは異なります。

 

rootユーザでログインできないことを確認する

rootユーザでログインできないことを確認します。一点気を付ける点として、一つのターミナルはサーバへ接続したままにしておきましょう。設定が失敗していた場合、サーバに繋げられなくなる可能性があります。

別のターミナルを立ち上げ、rootユーザでsshログインしてみましょう。ログインできなければOKです。

次に新しく作成したユーザでsshログインしてみましょう。ログインできればOKです。

これでrootユーザのsshログイン禁止設定が完了です。