- 締切済み
SSH+VNC(PortForwarding)
自宅(Remote1:Win2000)から,外部のPC(PC-A:WinXp)を 遠隔操作しようと思いVNC+SSHに挑戦中です. 外部のPC(PC-A)はFW(PC-B:Linux)で守られており, あいているポートはSSH,HTTP,POP,SMTPなどに制限されています. PC-AにはVNCServerがインストールされていて,起動されております. 自宅から行った作業は以下のとおりです. 1.まず,TTSSHをRemote1にインストールし, SSHポート転送を設定. ・ローカルポート:5900 ・リモート側ホスト:FWのDomainName,ポート:5900 ・ローカルポート:5800 ・リモート側ホスト:FWのDomainName,ポート:5800 [設定の呼び出し]でTTSSHを常駐. 2.次にFW(PC-B)にSSHでアクセスし, ssh -L 5900:PC-A_IP:5900 FW_DomainName パスワード入力 ssh -L 5800:PC-A_IP:5800 FW_DomainName パスワード入力 3.Remote1でVNCViewerを起動し, localhost:5900を入力. OKボタンを押した瞬間,VNCViewerのウインドウが 消えてパスワードが聞かれません. しばらくするとRemote1上でVncViewerのエラーとして server closed connection unexpectedly が表示され, PC-BのTTSSHのターミナル上で channel 2: open failed: connect failed: Connection timed out と表示されます. ちなみに自宅側のルータは5900番ポート,5800番ポートがあいております. PC-B(FW)までは何らかのデータが行っていると思うのですが, PC-B(FW)からPC-Aまでデータが行っていないのでしょうか? どこで不具合が生じているのかわかりません. ご教授のほどよろしくお願いいたします.
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- xjd
- ベストアンサー率63% (1021/1612)
>PC-B,PC-A間のポート転送が出来ているか確認したい >のですが,なにかいい方法はありますか? うちの場合は、以下の構成でFWの内側のvncserverに外部から アクセスしています。 FWのiptablesでForwardのログを見れば、パケットがちゃんと 流れているかわかります。 クライアント WindowsXP vncclient putty(ssh2使用/トンネル設定) | ↓ [GlobalIP:ssh] FW Debian/Linux iptables(PortForward) | ↓ [localIP:ssh] RedHat9 sshd vncserver
- ninja_ex250
- ベストアンサー率48% (46/95)
Remote1:Windows2000で設定するLocalForwardは ・ローカルポート:5900 ・リモート側ホスト:PC-AのIPアドレス(か内部でDNSが有効ならマシン名),ポート:5900 でOKです。これならFW上でagentを走らせる必要もないでしょう。ところでfwにsshするとどこのマシンにログオンしたことになりますか?fwそのもの?それとも内部の別のマシン?
補足
ありがとうございます. 早々ですが, >agentを走らせる必要もないでしょう ssh -L 5900:PC-A_IP:5900 FW_DomainName これは,PC-B(FW)のポート5900とPC-Aのポート5900を ポート転送する意味だと思い実行しておりました. ちなみにPC-AはグローバルIPはもっておりません. Lan内のマシンで,ローカルIPのみしかもっておりません. >fwにsshするとどこのマシンにログオンしたことになりますか? SSHはFW自身にログオンしております. PingでPC-Aとの接続状態は確認いたしました. PC-B,PC-A間のポート転送が出来ているか確認したい のですが,なにかいい方法はありますか? よろしくお願いします. 以下,ネットワーク構成を示します. PC-A(WinXp,ローカルIP) | PC-B(Linux,FW,グローバルIP) | ---------------- Internet ---------------- | ルータ(ADSL,動的IP) | Remote1(Win2000,ローカルIP)
補足
ありがとうございます. >FWのiptablesでForwardのログを見れば、パケットが >ちゃんと流れているかわかります。 $tail /var/log/message で確認したところ,iptablesのlogは取られていませんでした. そこで,lokkitでsshと5800,5900のポートを開放し, 以下のような設定をしました. /iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT /iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT /iptables -A FORWARD -j LOG その後,再度アクセスしてみましたが,ログには何もメッセージが残っておりませんでした. 設定が間違っているのでしょうか? また,xjdさんの構成では,VncServerマシンに SSHデーモンを起動されているようですが, WinXPの場合でsshdは起動しておくべきなのでしょうか? (Windows版SSHdがあるかわかりませんが・・.) ご指導のほどよろしくお願いいたします.