[このマシンは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に基づいていることに気付きました。
まあ、これは恥ずかしいです。どうやら私はPermitOpenの構文が間違っていました。
PermitOpenの複数の行をリストすると、最初の行だけが実際にアクティブであることがわかりました。
正しい構文:
PermitOpen <IP>:<port> <IP>:<port> <IP>:<port>
...などを1行で。