web-dev-qa-db-ja.com

SSHトンネルを介したVNC vinoのみ

私は今何時間も探していましたが、これを理解することはできません。

私は次を実現しようとしています:

クライアントremmina + ssh tunnel

サーバーLubunt + openssh server(公開鍵認証)+ vino sshトンネル経由のサーバー_ _のみ +クライアントが1つのポート(vncポート)のみを開くことを許可します

これまでのところ、私は明らかに両方の方法でサーバーに接続することができます(sshトンネルの有無にかかわらず)、これは受け入れられません。

vino-preferences GUIを実行してもあまり役に立ちません:s

だから私の質問は基本的に次のとおりです。

  • 「サーバー上で単一のSSHポート(22)のみを開くポートをブロックし、クライアントが特定のポートを介してSSH経由でVNCをトンネルできるようにするにはどうすればよいですか?」
  • 他のタイプのVNC接続は許可されません

追伸ルーターのポート22をserverに転送し、SSH接続のみを許可する予定です。

1
GogromaT

vino-preferences GUIには含まれていませんが、探しているパラメーターはnetwork-interfaceであると思います

gsettings get org.gnome.Vino network-interface

設定されていない場合(つまり、上記のコマンドが空の文字列''を返す場合)、vino-serverは使用可能なすべてのインターフェイスをリッスンしますが、loに設定されている場合

gsettings set org.gnome.Vino network-interface 'lo'

その後、lolocalhost)インターフェイスでのみリッスンします。

GUI dconf-editorを使用することもできます。この場合、パラメーターはorg -> gnome -> desktop -> remote-accessアイテムの下にリストされます。


netstatを使用して、サーバーが目的のインターフェイスでリッスンしていることを確認できます。デフォルトは

$ Sudo netstat -nlp | grep ':5900'
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      10927/vino-server
tcp6       0      0 :::5900                 :::*                    LISTEN      10927/vino-server

(利用可能なすべてのインターフェースのリスニング);後で

$ gsettings set org.gnome.Vino network-interface 'lo'

localhostインターフェイスでのみリッスンしていることがわかります。

$ Sudo netstat -nlp | grep ':5900'
tcp        0      0 127.0.0.1:5900          0.0.0.0:*               LISTEN      10927/vino-server
tcp6       0      0 ::1:5900                :::*                    LISTEN      10927/vino-server

別の方法として(または追加として)、iptablesまたはufwを使用してポートを閉じることができます。デフォルトでは、ポート5900 +ディスプレイ番号です。

2
steeldriver