すべてのIPに対してscpを無効にしますが、特定のIPに対しては許可します。

すべてのIPに対してscpを無効にしますが、特定のIPに対しては許可します。

sshdを実行しているサーバーがあります。私たちはそれへのルートアクセス権を持っています。

質問:SCPを無効にする方法は?ただし、SCPで指定されたIPを許可する方法は次のとおりです(コピーなど)。

たぶんSCPバイナリの名前を変更し、「ユーザールート一致」エントリが正しいSCPパスである可能性があります。それとも何ですか?

更新:すべてのアクセスを許可し、scp *のみをブロックする必要があります。 *ただし、scpに指定されたIPをホワイトリストに追加

ベストアンサー1

~/.ssh/authorized_keys を使用して、ユーザーが実行できる操作を制限できます。

command="/noscp.sh" ssh-dss blablabla== [email protected]

;

#!/bin/sh

if [[ "$SSH_ORIGINAL_COMMAND" =~ scp* -a ! "$SSH_CLIENT" =~ 10.10.10.10* ]] ; then
   echo "Rejected" >&2
   echo "$(date) fail $SSH_CLIENT $SSH_ORIGINAL_COMMAND" >> noscp.log
   exit 1
else
   $SSH_ORIGINAL_COMMAND
fi
exit

これは可能ですが、SSHなどでファイルを直接コピーできる場合は、scpをブロックすることは意味がありませんので、目標を教えてください。多くの場合、ユーザーの送信元IPではなく、ユーザーのSSHキーに機能を制限する方が合理的です。

おすすめ記事