デフォルトでは、すべてのユーザーが有効なパスワード/公開鍵を使用してシステムに 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.soNote: 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 root2. ファイル /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 ~]#
CentOS / RHEL :デフォルト ポート 20 および 21 以外のポートを使用するように vsftpd を構成する方法 Linux で root 以外のユーザーが crontab エントリを作成するのをブロックする方法Linux