GNU/Linux >> Linux の 問題 >  >> Linux

CentOS / RHEL :root 以外のユーザーに対して ssh を無効にする方法 (root ユーザーに対してのみ ssh を許可する)

デフォルトでは、すべてのユーザーが有効なパスワード/公開鍵を使用してシステムに SSH 接続できます。 FTP サーバー、電子メール サーバーなど、特定の役割を持つ特定の専用サーバーの場合。通常、root 以外のユーザーが SSH 経由でログインできないようにすることをお勧めします。この投稿では、root 以外のユーザーによるシステムへの ssh ログイン アクセスを無効にする手順について詳しく説明しています。ここでは、3 つの異なる方法について説明します。以下の 3 つの方法のいずれかで目的を達成できます。

方法 1 – /etc/ssh/sshd_config ファイルを使用する

この方法は、少数のユーザーに SSH ログインを許可するために使用できます。ファイル /etc/ssh/sshd_config を編集します (OpenSSH SSH デーモン構成ファイル) にキーワード AllowUsers を追加します 引数 root 付き .

# vi /etc/ssh/sshd_config
AllowUsers root
注意 :キーワードは大文字と小文字を区別せず、引数も大文字と小文字を区別します。

sshd サービスを再起動します:

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

root 以外のユーザーは SSH 経由でログインできないが、root ユーザーはログインできることを確認してください。

# ssh test@host1
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied (publickey,gssapi-with-mic,password).
# ssh root@host1
root@host1's password: 
Last login: Wed Sep 13 10:47:14 2017 from 10.10.10.10
[root@host1 ~]#

方法 2 - /etc/nologin ファイルを使用

これは、root 以外のすべてのユーザーを SSH ログインからブロックする最も簡単な方法です。

1. /etc/nologin ファイルを作成します

# touch /etc/nologin
# ls -lrt /etc/nologin
-rw-r--r-- 1 root root 0 Sep 13 13:23 /etc/nologin
注意 :このファイルが存在する場合、root ユーザーのみが SSH 経由でシステムにログインできます。ファイル /etc/nologin.txt nologin は、デフォルト メッセージの代わりにその内容をユーザーに表示します。

以下の行がファイル /etc/pam.d/sshd にあることを確認してください :

account    required     pam_nologin.so
Note: backup the file /etc/pam.d/sshd before modifying it.

次に、sshd サービスを再起動します:

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

非 root ユーザーの SSH ログインを確認します:

# ssh test@host1
test@host1's password: 
Connection closed by 192.168.10.10

方法 3 - /etc/sshd/sshd.allow ファイルを使用

ファイル /etc/sshd/sshd.allow ssh アクセスを許可するユーザーのリストを指定するために使用されます。このファイルでユーザー root だけを指定すると、他のすべてのユーザーはホストへの ssh アクセスを拒否されます。

1. root ユーザーをファイル /etc/sshd/sshd.allow に追加します (ディレクトリ/ファイルが存在しない場合は、手動で作成してください)。

# cat /etc/sshd/sshd.allow 
root

2. ファイル /etc/pam.d/sshd の auth 行を以下のように置き換えます :

auth required pam_listfile.so item=user sense=allow file=/etc/sshd/sshd.allow onerr=fail

ここで、
auth required pam_listfile.so :ユーザーの認証中に必要なモジュールの名前。
item=user :アイテムのユーザー名を確認します。
sense=allow :ユーザーを許可します。
file=/etc/sshd/sshd.allow :ユーザー リスト ファイル。
onerr=fail :ユーザー名がファイルにない場合、ログインできません。

3. 上記の変更がすべて完了したら、sshd サービスを再起動します。

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

4. root 以外のユーザーの SSH ログインを確認します。

# ssh test@host1
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied (publickey,gssapi-with-mic,password).

また、root ユーザーで ssh できるかどうかも確認してください:

# ssh root@host1
ssh root@host1's password: 
Last login: Wed Sep 13 14:53:47 2017 from 10.10.10.10
[root@host1 ~]#


Linux
  1. Linuxマシンでrootユーザーのリモートログインを無効にする方法

  2. CentOS / RHEL 7 :特定のインターフェイスでのみ IPv6 を無効にする方法

  3. CentOS/RHEL 7 で root 以外のユーザーとして rsyslog を実行する方法

  1. パスワードなしの SSH が LDAP サーバーのローカル ユーザーに対して機能しない – CentOS/RHEL 7

  2. CentOS / RHEL 6:IPv6 を無効にする方法

  3. root ユーザーのファイル許可はどのように機能しますか?

  1. CentOS / RHEL :LVM ルート ファイル システムを縮小する方法

  2. CentOS / RHEL 6 :Telnet 経由の直接ルート ログインを無効化 / 有効化する方法

  3. CentOS / RHEL :ダイレクト ルートおよび非ルート ユーザー ssh ログインを無効化 / 有効化する方法