レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

SSHポートフォワード と VNC を使ってセキュアなリモートデスクトップを使ってみる

2012年3月9日 2015年5月15日
SSH Tunnel

評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編) では、さくらのVPSを使ってVNC経由でリモートデスクトップの環境を作ってみました。
評判のCloudCore VPSでVNCリモートコンソールを使ってGUIを使ってみた では、CloudCore VPSを使ってVNCコンソール経由でリモートデスクトップ(GUI)の環境を作ってみました。

VNCサーバー経由でリモートデスクトップ(GUI)環境を使うことはできますが、VNCは、基本的にセキュアな通信手段を持ちません。そのため、データは暗号化も何もしないままインターネットの回線を流れます。

GUI上でパスワードを入力したりすることも十分にありえますから、これでは、かなり危険な状態であることに間違いはないでしょう。

そのような場合、簡単にセキュアな接続で先のVNC接続を行う方法としてSSHポートフォワードという考え方があります。

SSH ポートフォワードとは、
SSH ポートフォワーディングやSSHトンネル、SSHトンネリングなどといわれることもあります。
英語でSSH Port Forward なので、「SSHを使って各TCPポート情報を転送する」ぐらいの意味になります。

例えば、以下のようにインターネットでは、通常メールのpop3(メール受信)やsmtp(メール送信)は、それぞれ tcp – 110 , tcp – 25 のポートを使ってやり取りします。
つまり、TCPポートは別々なわけです。もちろんここで解説するVNCのTCPポートも異なります。デフォルトでは、5900 + ユーザ番号 を用います。
SSH ポートフォワード

これがSSH ポートフォワードを使うと、
SSH ポートフォワード
このようにクライアントとサーバー間は、あくまでSSHでの接続で暗号化されます。そのSSH接続の中をpop3(メール受信)やsmtp(メール送信)、VNCなどの情報が(暗号化され)流れることになります。
こうすることで、一般的に(誰でもインターネット上のデータを読める)平文状態を回避することができます。

さて、今回は、SSHポートフォワード と VNC を使ってセキュアなリモートデスクトップを実現してみます。

サーバー側の(CentOS)の環境設定

デスクトップ環境( X Window Server を含む ) やVNC Server のインストールは終えているものとして、以降、VNC-Serverの設定から、おさらいも含めて簡単に解説してみます。
( デスクトップの環境やVNC Server のインストールについては、評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編) を参照してください。 )

VNC-Serverの環境設定を行う

VNC-Serverへアクセスするユーザを設定します。
ここで設定して初めてVNC-Serverを利用できるようになります。

$ vi /etc/sysconfig/vncservers
...
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

VNCSERVERS="5:taro"
VNCSERVERARGS[5]="-geometry 1024x768 -nohttpd"
...

$ 

ここでは、

ディスプレイ番号 : 5
ユーザ名 : taro
初期画面サイズ : 1024×768 px
HTTPでのアクセス : 不可 (-nohttpd)

としています。


ここで指定するtaroというユーザは、OSのユーザになります。
もし、存在しないユーザを指定した場合は、ユーザを作成しておきましょう。

[ ユーザ登録コマンドイメージ ]
$ useradd taro
$ passwd taro
Changing password for user taro.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$ 
VNCSERVERARGS には、上記以外にもパラメータを指定することができます。
各パラメータとその意味は以下のとおりです。
  • -nolisten tcp
    : 接続に TCP を利用しない。
  • -nohttpd
    : Webブラウザ※ での接続 WebブラウザによるVNC接続について を禁止する。
  • -localhost
    : 自ホスト以外からの接続を禁止する。
評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編) では、VNCが使用するTCPポート番号を変更したり、iptablesでTCPポートを公開したりしましたが、ここでは、その設定は一切必要ありません。

VNC-Serverを起動する

先の設定したユーザで、まずは、VNC-Serverの初期化を行います。

$ su taro
[taro]$ vncserver :5

You will require a password to access your desktops.

Password:
Verify:
xauth:  creating new authority file /home/taro/.Xauthority

New 'host.example.com:5 (taro)' desktop is host.example.com:5

Creating default startup script /home/taro/.vnc/xstartup
Starting applications specified in /home/taro/.vnc/xstartup
Log file is /home/taro/.vnc/host.example.com:1.log

[taro]$

ここで、:5は、ディスクプレイ番号になります。
必ず、初回起動でパスワードの設定を促され、そのあと、VNC用設定ファイルをユーザカレントディレクトリに保存します。

ここで、VNCでログインした際に使用するデスクトップは、twmになっています。
その設定をGNOMEを使う場合は、以下のように設定を変更します。

$ vi ~taro/.vnc/xstartup
...
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

# ↓ [ ここから変更箇所 ]
# 以下の設定をコメントアウト
# xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# twm &
# 以下でgnomeを使うように設定
gnome-session &
# ↑ [ ここまで変更箇所 ]
...

[ KDEの場合 ]
kinput2 -wnn -jserver localhost:1 &
startkde &
のように変更します。
1行目は日本語入力を可にしています。

最後に、VNC-Serverを起動します。(root権限で実行します)

$ /etc/init.d/vncserver start

VNC サーバー を起動中: 5:taro
New 'host.example.com:5 (taro)' desktop is host.example.com:5

Starting applications specified in /home/taro/.vnc/xstartup
Log file is /home/taro/.vnc/host.example.com:5.log

                                                           [  OK  ]
$ 

また、再起動しても起動するように設定しておきます。

$ chkconfig vncserver on
$ chkconfig --list vncserver
vncserver       0:off   1:off   2:on    3:on    4:on    5:on    6:off
$

SSHポートフォワードを許可する

SSHのポートフォワードを許可するよう設定しておきます。デフォルトでは許可になっているはずですが、確認も含めて設定しておきましょう。

$ vi /etc/ssh/sshd_config
...
AllowTcpForwarding yes
..

$ /etc/init.d/sshd reload
sshd を再読み込み中:                                       [  OK  ]

ここでは、設定を終えたら、再読み込みを実施しています。

これで、サーバー側の設定は終わりです。続けて、今度はクライアント側になります。

SSH、VNCビューア(クライアント)の環境設定

SSHの接続には、TeraTermを用います。
また、VNCビューアに関しては、 評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編) で利用した UltraVNCをここでも使います。
( UltraVNC に関する詳しくい情報は、評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編) を参照してください。 )

まずは、SSH接続します。

SSH接続には、TeraTermを用います。ただ、ここでは、一般的なSSH接続でなく、ポートフォワードのための設定が必要になります。

  1. メニューの [ 設定 ] – [ SSH転送 ] をクリックします。
    TeraTerm メニュー

  2. [ 追加 ]ボタンをクリックします。
    TeraTerm 転送

  3. SSH転送情報を設定し、[ OK ]ボタンをクリックします。
    TeraTerm 設定

    ローカルポート:使っていないTCPポート番号なら何でも可。ここではわかりやすく 1234 としてます。
    リモート側ホスト:文字通りサーバーのホスト名(or IPアドレス)を設定します。
    ポート:転送(ポートフォワード)したいサーバーのポート番号を設定します。
    ここでは、先の taro のVNCサーバーが使うTCPポート番号となります。 5900 + 5 ( taroの画面番号) = 5905 を指定します。

    [ OK ] ボタンをクリックします。


  4. [ OK ]ボタンをクリックします。
    TeraTerm 設定

    上記の設定を保存しておきたい場合は、 メニューの [ 設定 ] – [ 設定の保存 ] をクリックし、ファイルに保存しておきます。
    TeraTerm 設定保存

  5. メニューの [ ファイル ] – [ 新しい接続 ] をクリックします。
    TeraTerm 接続

  6. 接続先ホスト名、サービスを設定し、[ OK ] ボタンをクリックします。
    TeraTerm 接続

    ホスト : サーバーのホスト名(or IPアドレス)
    サービス : SSHを選択します。また、SSHのポート番号がデフォルトの22でない場合は、ポート番号も入力します。ここのポート番号はあくまでSSHのポート番号です。


  7. ユーザ名、パスフレーズ(パスワード)を設定し、[ OK ] ボタンをクリックします。
    TeraTerm 接続

    ユーザ名 : VNCでアクセスするユーザ名を指定します。
    パスフレーズ : VNCでアクセスするユーザのパスワードを指定します。

    [ OK ] ボタンをクリックします。

    TeraTerm ログイン

    上記のようにログインできればOKです。


GUIでなくTeraTerm のマクロを使いたいなら、以下のような感じです。
[ sample.ttl ]
connect '11.22.33.44:22 /ssh2 /auth=password /user=taro /passwd=****** /ssh-L1234:11.22.33.44:5905'
sample.ttl のマクロファイルを実行すれば、自動でログインまでしてくれます。
ssh-L を使うのがポイントです。
( ssh-L先ポート番号:ホスト名(or IPアドレス):元ポート番号 )

また、TeraTerm でなくCygwinなどSSHがコマンドラインから利用できる状態なら、以下のように指定し、SSH接続すれば、同じ効果を得ます。
$ ssh -L 1234:11.22.33.44:5905 11.22.33.44 -l taro
taro@11.22.33.44's password:
Last login: Fri Mar  9 13:18:04 2012 from xxx.xxx.xxx.xxx
[taro@ ~]$
-L を使うのがポイントです。
扱い方は、先のTeraTerm のマクロと同じです。

UltraVNC Viewer を実行します。

[ スタート ] – [ プログラム ] – [ UltraVNC ] – [ UltraVNC Viewer ] で実行します。

実行すると以下の画面が表示されます。

VNCセットアップ1

設定する箇所は、

VNC Server : 127.0.0.1::1234

のようにホスト名(or IPアドレス)+ポート番号 を指定します。

ここでは、TeraTermで設定したローカルポート番号を指定します。またホスト名は、localhostである127.0.0.1 を指定します。

::(コロンが2つ)であることに注意してください。::の場合、以降の数値は、TCPポート番号として扱われます。
:(コロン)が1つの場合は、ディスプレイ番号として取り扱われます。

[GNOMEのデスクトップ環境を使った場合の接続後の画面]

VNCセットアップ2

GNOMEの画面です。


[KDEのデスクトップ環境を使った場合の接続後の画面]

VNCセットアップ3

KDEの画面です。


上記のような接続画面が表示されないような場合は、ほとんどサーバー側の設定に誤りがあるでしょう。
まずは、サーバーの設定を確認して、VNC-Serverの再起動をしてみましょう。

※設定を変更したときは、再起動が必要です。

$ /etc/init.d/vncserver restart

ざっとこんな感じです。

評判のCloudCore VPSでVNCリモートコンソールを使ってGUIを使ってみた では、かなりもっさりとした動作でしたが、さすがに早いです。これなら、セッティングぐらいなら使えそうです。
んーーーっ、やっぱりメモリとディスク容量から、GUI系を使いたいなら、CloudCore VPS の選択肢は有望かも・・・です。

とりあえずセキュアですし、まずは、お試しあれ。


この記事は、さくらのVPSCloudCore VPS を使って試した結果を元に書かれました。

さくらのVPS を試してみたい方は、さくらのVPS ページさくらのVPS ページからどうぞ。無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。

CloudCore ( クラウドコア ) VPS を試してみたい方は、CloudCore ( クラウドコア ) VPS ページCloudCore ( クラウドコア ) VPS ページからどうぞ。無料お試し期間は10日です。

ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編)

Debian/Ubuntu編は、Debian/UbuntuでVNCを使ってリモートデスクトップの環境を設定してみる をどうぞ。 ...

Debian/UbuntuでVNCを使ってリモートデスクトップの環境を設定してみる

CentOS編は、評判のさくらのVPSを使ってVNCを使ってリモートデスクトップの環境を設定してみる(CentOS編) をどうぞ。 ...

SSHのX11Forwarding を使ってセキュアなリモートでGUIを操作する

SSHポートフォワード と VNC を使ってセキュアなリモートデスクトップを使ってみる では、SSHのポートフォワードとVNCを使っ ...

TeraTermで 公開鍵認証(鍵交換)を使ってSSH 接続してみる

今回は、TeraTermで 公開鍵認証を使ってSSH 接続してみます。 SSH には、ユーザ認証機能として、以下の種類がありま ...

SSHコマンドで 公開鍵認証(鍵交換)を使ってSSH 接続してみる

以前に、TeraTermで 公開鍵認証(鍵交換)を使ってSSH 接続してみる でTeraTerm を使った公開鍵認証(鍵交換認証)を ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2329 [s]