sshd_configの予期しない一致動作

sshd_configの予期しない一致動作

内で次の制限を設定しようとしていますsshd_config

  1. ローカルIPアドレスを持つユーザーには制限はありません。
  2. グループにローカルでないIPアドレスを持つユーザーは、sftpchroot Jailでsftpを使用できます。
  3. このグループに属さない非ローカルIPアドレスを持つユーザーsftpは、何もできません。

これが私が思いついたものです:

Match Address 10.0.0.0/24,172.16.0.0/20,192.168.0.0/16
        X11Forwarding yes

Match Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16 Group sftp
        X11Forwarding no
        AllowTcpForwarding no
        ChrootDirectory %h
        ForceCommand internal-sftp

Match Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16 Group *,!sftp
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand /sbin/nologin

問題:SFTP以外のユーザーとして内部アドレスからログインしようとすると、3番目の一致トリガーが拒否されます。

マンページによると、すべてのsshd_config条項が満たされている場合にのみ一致が満たされていますが、私の場合は最初の条項が満たされておらず(IPアドレスが172.16.0.0/20のシステムで入力されました)、2番目の条項のみはい(I'mはsftp グループに属しません)。

マンページエラーsshd_config?欲しいことができますか?

アップデート:@steveの提案に従って、デバッグモードでsshdを実行して次のようになりました。

debug1: userauth-request for user root service ssh-connection method none
debug1: attempt 0 failures 0
debug1: connection from 172.19.187.49 matched 'Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16' at line 144
debug1: user root does not match group list sftp at line 144
debug1: connection from 172.19.187.49 matched 'Address *,!10.0.0.0/24,!172.16.0.0/20,!192.168.0.0/16' at line 150
debug1: user root matched group list *,!sftp at line 150
debug1: PAM: initializing for "root"

no-internal-adress 句も一致します。また、最初の一致がデバッグログに記載されていないので、奇妙に見えます。

修正する:

@Gillesが指摘したように、上記のアドレス仕様が正しくありません。 10.0.0.0/24の代わりに10.0.0.0/8を、172.16.0.0/20の代わりに172.16.0.0/12を使用しなければなりませんでした。 0から始めてカウントアップする代わりに、32から始めてマスクビットをカウントダウンしています。こんな。

正しいアドレスを使用すると、設定が機能します。ザイルズとウリエルに感謝!

(最後の行の/sbin/nologinも/bin/falseに変更しました。前者はsftp:で奇妙なエラーメッセージを表示しました。Received message too long 1416128883

答え1

同様の質問に答えています。スーパーユーザーのウェブサイトしかし、返事をした後、それが正しいかどうかはもう確信できません。

openssh-7.0要するに、今は不可能であっても可能であると考えていますが、これらのバグはまだ修正されていないため、アップストリームにプッシュする必要があります。

肯定的なフィードバックを提供する代替答えがありますが、これがまさに結果を得る方法です。試したことはありませんが、グループに固有のようです。そうでなければ、試合は*,!something意味がありません。

sshdここでは、アップストリームを非難し、建設的なフィードバックを提供せずに、異なるポートで2つの別々のサービスを実行することをお勧めします。サーバーを使用しAllowGroup sftpて強制的に使用しますsftp。もう 1 つは内部ネットワークからの要求にのみ応答します。

答え2

ネットワークタグが正しくありません。プライベートネットワークを含めるには、次のものを使用する必要があります。

10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

これはエラーではなく不整合の原因である可能性がありますssh

関連情報