web-dev-qa-db-ja.com

サーバーによって転送された接続が拒否されました:管理上禁止されています。 @IPとPermitOpenの両方を使用する

[このマシンは192.168.80.125です]

すべての基本的なアクセスを許可する通常のSSHルール:

AllowUsers                  user1
PubkeyAuthentication        yes
PasswordAuthentication      no
AllowTcpForwarding          yes
UsePAM                      no

マッチグループテスト

AllowUsers                  user2@IP1 user2@IP2 user2@IP3 user2@IP4
PubkeyAuthentication        yes
PasswordAuthentication      yes
AllowTcpForwarding          yes
    PermitOpen              192.168.80.100:80
    PermitOpen              192.168.80.125:443
AllowAgentForwarding        no

接続可能なuser2としてIP1からsshdに接続しているとき、PuTTYでトンネルを開きます。

ローカルS:IP1:8080リモートD:192.168.80.100:80

ローカルSrc:IP1:8443リモート宛先:192.168.80.125:443

ブラウザを開いてlocalhost:8080を参照すると、接続がリセットされます。ブラウザを開いてlocalhost:8443を参照すると、接続がリセットされます。

SSHログを確認します。

192.168.80.125 authlog: Received request to connect to Host 192.168.80.100 port 80, but the request was denied.
192.168.80.125 authlog: Received request to connect to Host 192.168.80.125 port 443, but the request was denied.]

Event Log: Opening connection to 192.168.80.125:443 for forwarding from [::1]:3585
Outgoing packet : (SSH2_MSG_CHANNEL_OPEN)
Incoming packet : (SSH2_MSG_CHANNEL_OPEN_FAILURE)
Event Log: Forwarded connection refused by server: Administratively prohibited [open failed]

OpenSSH_7.5p1 Ubuntu-10ubuntu0.1, OpenSSL 1.0.2g  1 Mar 2016

SSHをuser1およびpubkey/etcとして使用し、TCP転送は何に対しても正しく機能する場合、192.168.80.125:80/192.168.80.125:443のリソースに正常に到達できます。

最初にPermitOpenをセットアップしましたが、これは機能しました。次に、user2 @制限を追加しましたが、これがこれを破ったものです。

これを行うためのより良い方法はありますか? user2が指定されたリソースにのみトンネリングでき、指定されたIPからのみログインできるようにしたい。

また、user2としてログインしてuser1に切り替えると、転送ルールがuser2に基づいていることに気付きました。

1
kfuji

まあ、これは恥ずかしいです。どうやら私はPermitOpenの構文が間違っていました。

PermitOpenの複数の行をリストすると、最初の行だけが実際にアクティブであることがわかりました。

正しい構文:

PermitOpen <IP>:<port> <IP>:<port> <IP>:<port>...などを1行で。

1
kfuji