web-dev-qa-db-ja.com

sshd_configの一致条件ブロックのアドレス条件を無効にするにはどうすればよいですか?

ユーザーが私のLANの外部からSSH経由で私のLANにログインするときに、特定のコマンドを強制的に実行したいのですが。私の考えは、ForceCommandMatch条件付きブロックで使用することでした。これは、LAN内のアドレスを除くすべてのアドレスに一致します。

man 5 sshd_config によると、私は以下を試しました:

  • Match Address !192.168.1.0/24により、ユーザーはどこからでも任意のコマンドを実行できます。
  • Match Address !192.168.*により、ユーザーはどこからでも任意のコマンドを実行できます。
  • Match !Address 192.168.*は、sshdが開始を拒否することにより、コマンドの実行を防止しました。

!を使用したパターンの否定については man 5 ssh_config(セクション "Patterns") で説明しています。これはアドレスにどのように適用できますか?

6
Oswald

このServerFaultの回答 によると、何らかの未知の理由により、これを行うにはワイルドカード一致を追加する必要があります。ただし、CIDR表記は機能するようです。例えば:

Match Address *,!192.168.1.0/24
    ForceCommand /bin/false

これはOpenSSH 5.9p1で動作します。

7
mgorven