一般ユーザーの直接ログインは許可されていませんが、scpとsftpは許可しますか?

一般ユーザーの直接ログインは許可されていませんが、scpとsftpは許可しますか?

oracleLinuxでは、一般ユーザー(たとえば)への直接ログインを無効にし、その目的で許可してscp使用sftpできますか?

答え1

ファイルの作成/etc/nologin、アカウントログインシェルの設定、または対話型シェルにログインするユーザーアカウントを効果的に/bin/false無効にするなどの方法は、システムを保護しません。/sbin/nologin

scpユーザーがまたはのみを使用するように明示的に制限するには、sftpこのタスクを実行するように特別に設計された制限付きシェルをインストールします。このrsshパッケージは、OpenSSHで使用するように設計された限定シェルです。

: rssh is a restricted shell for use with OpenSSH, allowing only scp
: and/or sftp. For example, if you have a server which you only want
: to allow users to copy files off of via scp, without providing shell
: access, you can use rssh to do that. It is a alternative to scponly.

chroot制限されたシェルを使用してログインするユーザーの場合は、設定を真剣に検討する必要がありますrssh

このようにユーザーを制限することがセキュリティに与える影響を読んで理解してください。とページから始めてくださいman。あなたも知っておくべきことは何ですかrsshrssh.confchroot それが何であるか、どのように機能するのか

答え2

sshd_configに以下を追加できます。

Match User oracle
        ForceCommand set - ""$SSH_ORIGINAL_COMMAND; [ "$1" = "scp" ] || exit 1; CMD=`IFS='\`&;<>'; set - ""$SSH_ORIGINAL_COMMAND; echo $1`; [ "$CMD" ] || exit 1; exec $CMD

ここではユーザー「oracle」と一致します。代わりに、Match group scponlyグループ "sconly"のユーザーを一致させるために使用できます。誰かがscpを実行せずに接続しようとすると、コード1で自動的に終了します。

アカウントがキーベース認証を使用している場合は、ユーザーの.ssh / authorized_keysファイルにキーを追加できますcommand="<above commands>"

ファイル操作によって文字が切り捨てられた悪意のあるコマンドが実行されるのを防ぐために、いくつかの安全装置を追加しましたが&``;<>、この問題が私が思わぬ方法で解決できるかどうかはわかりません。

sshd_configファイルに貼り付けるのは少し長くて混乱します。 "scp"をチェックするスクリプトを作成し、ForceCommandでそのスクリプトを呼び出してモードをsshd_config簡単にする方が良いでしょう。確認するhttps://serverfault.com/questions/749474/ssh-authorized-keys-command-option-multiple-commandsこれはいくつかの例です。

答え3

はい、可能です。

  1. たとえばchsh -s /bin/false ${user}
  2. sshd内部を使うように言った。sftp-server
    Match User ${user}
      ForceCommand internal-sftp
    
    Matchブロックは次のMatchブロックまたはファイルの終わりまで続きます(インデントは人にのみ適用されます)、ファイルの最後にこの設定を追加するのが最も簡単です。

${user}希望のユーザー名に変更してください。)

9.0より前のクライアントはこの設定sshのみを使用できます。sftp9.0バージョン以降、内部的にプロトコルを使用するようにscp変更され、再び機能します。sftp

答え4

ログインシェルを通常のログインに変更またはbash禁止/usr/sbin/nologinできます/bin/false。ログインシェルは、次のコマンドを使用して変更できますusermod

usermod user_name -s /usr/sbin/nologin

関連情報