すべての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キーに機能を制限する方が合理的です。

答え2

以下を追加してください。/etc/ssh/sshd_config

Match Address *,!10.10.10.10/32
        ForceCommand /bin/bash

実際に許可されていない限り、/bin/bashすべてのアドレスを強制的に適用してください。10.10.10.10/32scp

~からman sshd_config

マッチ

条件付きブロックを導入します。 「一致」行のすべての条件が満たされると、次の行のキーワードは、別の「一致」行またはファイルの最後まで、構成ファイルのグローバルセクションで設定されたキーワードをオーバーライドします。条件を満たす複数の一致ブロックにキーワードが表示される場合は、そのキーワードの最初のインスタンスのみが適用されます。

Match の引数は、1 つ以上の条件付きパターンのペア、またはすべての条件に一致する単一トークン All です。利用可能な標準は次のとおりです。ユーザー、グループ、ホスト、ローカルアドレス、ローカルポート、 Rドメインとアドレス(RDomain は、接続を受信する rdomain(4) を表します。)

一致パターンは、単一項目またはカンマ区切りリストで構成でき、ssh_config(5)のPATTERNSセクションで説明されているように、ワイルドカードおよび否定演算子を使用できます。

アドレス標準のパターンには、192.0.2.0/24 や 2001:db8::/32 などの CIDR アドレス/マスク形式に一致するアドレスを含めることもできます。提供されるマスク長はアドレスと一致する必要があります。指定されたマスク長がアドレスに比べて長すぎるか、アドレスの対応するホスト部分にビットがセットされているとエラーになります。たとえば、それぞれ192.0.2.0/33と192.0.2.0/8です。

Matchキーワード次の行では、キーワードのサブセットのみを使用できます。利用可能なキーワードはAcceptEnv, AllowAgentForwarding, AllowGroups, AllowStreamLocalForwarding, AllowTcpForwarding, AllowUsers, AuthenticationMethods, AuthorizedKeysCommand, AuthorizedKeysCommandUser, AuthorizedKeysFile, AuthorizedPrincipalsCommand, Authorized , ClientAliveCountMax, ClientAliveInterval, DenyGroups, DenyUsers, ForceComman d, GSSAPIAuthentication, , HostbasedAcceptedKeyTypes, HostbasedAuthentication, HostbasedUsesNameFromPacketOnly , IPQoS, KbdInteractiveAuthentication, KerberosAuthentication, LogLevel, MaxAuthTries, MaxSessions, PasswordAuthentication, PermitEmptyPasswords, PermitListen, PermitOpen, PermitRootLogin, PermitTTY, PermitTunnel, PermitUserRC, Pub edKeys, RDomain, SetEnv, StreamLocalBindMask, StreamLocalBindUnlink, UserCAKeys, X11DisplayOffset, X11転送とX11UseLocalhost

関連情報