内で次の制限を設定しようとしていますsshd_config
。
- ローカルIPアドレスを持つユーザーには制限はありません。
- グループにローカルでないIPアドレスを持つユーザーは、
sftp
chroot Jailでsftpを使用できます。 - このグループに属さない非ローカル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
。