web-dev-qa-db-ja.com

vncserver-localhostおよびsshトンネリング

私はcentos5.10マシンからsshトンネルvnc接続をセットアップしようとしていますが、次のようないくつかのオンラインチュートリアルに従っています: https://wiki.archlinux.org/index.php/Vncserver 。私は次のようにサーバーを実行しています:$ vncserver -geometry 1024x768 -localhost :1およびopensshクライアントを使用して次のように接続します:ssh -f [email protected] -L 5900:vnc.machine:5901 -N。次に、realvncビューアを使用してlocalhost:5900に接続します。何らかの理由で、-localhostパラメータを使用した場合、これは機能しませんが、省略した場合は問題なく機能します。すべてのガイドは、それを使用する方が安全であると述べています。これはサーバー側の構成の問題かもしれないと思っていますが、現時点ではかなり困惑しており、多くのことを試しました。なぜこれが起こっているのか誰か教えてもらえますか?

6
shwoseph

-localhostオプションは、VNCサーバーにループバックインターフェイスにのみバインドするように指示しているため、VNCサーバーは実行中のマシンからのみ接続できます。これは、VNCセッションに侵入しようとする人は誰でも、その特定のマシンに乗ることができなければならないことを意味します。 -localhostがない場合、VNCサーバーはローカル以外の接続を受け入れるため、攻撃者は別のマシンを使用してVNCセッションに侵入しようとする可能性があります。

-localhostを使用する場合は、VNCサーバーがループバック(localhost)インターフェイスでのみリッスンしているため、-L 5900:localhost:5901ではなく-L 5900:vnc.machine:5901を渡す必要があります。

11
jjlin

jjlinの回答はトラブルシューティングをカバーしていますが、本当に安全にするためには-nolisten tcpからvncserver。これにより、X側にオープンTCPリスナーがないことが保証されます。

2
DepressedDaniel