ssh を使ったポートフォワーディングとvncreflector のメモ リモートのPOPをローカルからssh経由で普通のpop3dでもセキュアにアクセスするのはよく見るが、逆はあまりみない。 - remotehost:110 を localhost:9110 でアクセスする
ssh -N -f -L 9110:remotehost:110 remotehost
これはよくみる。 - localhost:1234 を remotehost:5678 でアクセスさせる
ssh -N -f -R 5678:localhost:1234 remotehost
しかしこれでは、remotehost:5678は remotehost内からしかアクセスできない。逆 proxy として使うというヤバメの目的のときには sshd_config 内に
GatewayPorts yes
を入れる必要がある。 - ついでに、vncreflector のメモ ダウンロードとmake はそんなにむずかしくない。起動は
vncreflector -l 5999 ConfFile
-L はローカルでサーブするport番号。ConfFile はファイルで、
192.168.1.234:1 hogehoge
*:5999 hoge
とすると、192.168.1.234 のdisplay 1 で動いているVNC サーバにパスワードhogehoge でつないで、5999でパスワードhoge で(パスワードは平文(む〜ん))Listen ってことらしいが、password が効かない・・・それに、みんなでマウスの取りあいになるようだ・・・ どうやら、-pで指定するパスワードファイルが必要で、一行目がフルコントロールで二行目がリードオンリー(これまた平文(笑))という作りらしい。よって
fdsf9ds0932fdjsakfdsa93023ru89fjdksvjkl(適当すぎ)
hoge
みたいなファイルを作って(仮に!PassFileとしたと思ってくだサイ)
vncreflector -l 5999 -p PassFile ConfFile
とやればよい。で、ssh とくみあわせると、こないだみたいに、NATの内側でVNCでデモってるのをネットごしにあちこちの人に見せるってことができる。read only であれば、デモを見てる側も気をつかわなくてよくていいかも。 追加のメモ 上で書いた方法だと、母艦が無線LANでDHCP、そこにTAPデバイスで、coLinux をNAT で裏につないでいる場合都合がわるいデス。 なぜこういう構成を取るかといえば、ノーパソ(「ン」じゃないので注意(なにを))をもちあるいて、あちこちで無線LANアクセスを取る場合、一番手間がかかりにくいのが、この構成だと感じているのでそうしているわけなのデス。 有線ならWinPCAPで、DHCPx2 にできるし(並列に二台並んでいるように見える)、無線でも、ずっと自宅とオフィスとかから動かさないのであれば、TAPで普通にRouting 組めばいいのですが、持ちあるく場合には、ルータとかさわれまセン。 解決策としては、考えてみれば、どこかのネットから見えるサーバに、sshで入る権限があるわけデスから、そちらの鯖で vncreflector を上げて、そこへ ssh で中継してあげればいいというわけデス。 この場合は、自分のPC以外であっても、そのプライベートIPのLAN の中で見えるものであれば、中継ができちゃうということになるハズです。
試したらできました。 vnchost:2 で !XVnc が動いてるとして、NAT内のvnchost と、ネットから見えるserverhostが両方見える Windows 上の cygwin を使って
ssh -N -f -R 5911:vnchost:5902 serverhost
と、しておいて(バックグラウンドに落ちないけど、まイっか)、serverhost にvncreflector をインスコして、ConfFileを
127.0.0.1:11 hogehoge
*:5999 hoge
ってして
vncreflector -l 5999 -p PassFile ConfFile
とすると、serverhost::5999 でUltraVNC から見えた。すばらしいデス > vncreflector こうすれば、serverhost でroot が完全にいらないですネ(sshd_confの修正が不要)