メェのボヤキ

ボヤいてます。NYSL。@mele。

Synergyの通信をSSLで暗号化し、セキュリティ強度を上げるための個人的メモ

2011-08-10 | Weblog
Synergy、良いですね!

Synergy

What is Synergy?
(Synergyとは何ですか?)

Synergy is Free and Open Source Software that lets you easily share your mouse and keyboard between multiple computers, where each computer has its own display.
(Synergyは、Freeでオープンソースのソフトウェアであり、
ひとつのマウス・キーボードを複数のPCで共用することができます。
ディスプレイはそれぞれのPCに必要です。)

No special hardware is required, all you need is a local area network.
(特別なハードウェアを用意する必要ありません。必要なことは、それぞれのPCがLANでつながっていることです。)

Synergy is supported on Windows, Mac OS X and Linux.
(SynergyがサポートしているOSは、Windows、Mac OS X、Linuxです。)
(訳者注:公式サイトから Ubuntu・Debian用のdebと、Fedora・RedHat用のrpmがダウンロードできます。)

Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen.
(マウス入力・キーボード入力をSynergyでつながった他のPCへ反映させるには、
マウスカーソルを画面端から外へ持っていくだけです。)

Synergy is released under the GNU Public License (GPL).
(SynergyはGPLライセンス下でリリースされています。)

ここには書いてありませんけれど、クリップボードも共有できます。
これがまた、大変便利なのであります。
(英数字だけかとあまり期待していなかったけど、日本語もOKなのであります。)



Synergyを動作させるには単純にインストールして設定をすればいいだけですが、
公式サイトWikiの「Security」ページには、
Synergy does not do any authentication or encryption.
(Synergyは、認証・暗号化によるいかなる保護も施していません。)
と書いてあります。
http://synergy-foss.org/pm/projects/synergy/wiki/Security

信頼できないネットワーク内でSynergyを使うと、
通信を傍受され、パスワード入力など盗まれてしまうかも知れないということです。
(synergy should not be used on untrusted networks.)

同ページには同時に、
However, there are tools that can add authentication and encryption to synergy
without modifying either those tools or synergy.

(しかしながら、外部ソフトウェアツールを併用することで、
Synergyやそのツール自身に変更を加えることなく、Synergyに認証・暗号化を導入することができます。)
とあります。

One such tool is SSH (which stands for secure shell). A free implementation of SSH is called OpenSSH and runs on Linux, many Unixes, and Windows (in combination with Cygwin).
(そのひとつが、SSHです。SSHのFreeな実装はOpenSSHと呼ばれ、Linuxや多くのUnix、(軽量版Cygwinを同梱している)Windows上で動作します。)
とあるので、
今回は試しにSynergyの通信をSSLで暗号化してみました。
(SSLでポートフォワーディングしているだけとも言えます。)





試した環境は以下の通りです。2台のPCを接続しました。

■メインPC:
・Windows XP Pro sp3
・位置関係は、左
・Synergyサーバとして動作させます(キーボード・マウスを接続しているPCのことを、Synergyはサーバと呼びます)
・Synergy Windows用1.3.7(32bit)をダウンロード、インストールしました
 Synergy
・OpenSSH for Windows 3.8.1p1(2004年7月9日リリース分)をダウンロード、インストールしました
 http://sshwindows.sourceforge.net/
 ※OpenSSH for Windowsは、Cygwinを未インストールの環境で使うソフトウェアです



■サブPC
・Ubuntu 9.04(ARM)
・位置関係は、右
・Synergyクライアントとして動作させます(メインPCの入力を反映させる側を、Synergyはクライアントと呼びます。つまりこちらのキーボード・マウスを使いません。SynapticパッケージマネージャからSynergy 1.3.1をインストールすることができています。ちょっと特殊な環境ですが…)
・SSHは最初からインストールされています。


結果的に、GUIとCUIのそれぞれの設定をすることになりました。


今回は2台だけですが、Synergyはそれ以上の複数台のPCを接続できます。
位置関係で、左右と書きました。
これはメインPCの画面右端から、さらに右へマウスカーソルを移動させると
サブPCの画面左端からマウスカーソルが出現するという意味で、Synergyでそのように設定します。
逆にサブPCの左端からさらに左へ移動させると、メインPCの右端から出現します。
(Synergyの設定が正しくないと、一方通行になってしまうようです…たぶん)

ディスプレイ上にマウスカーソルの存在する方のPCが、Synergyの入力対象です。
マウスカーソルの無い方のPCからは、(ウィンドウの)フォーカスが失われます。




それでは、設定していきます。

●OpenSSH for Windowsインストール後に、OpenSSH Serverが動いていることを確認します。
 (コントロールパネル→管理ツール→サービスなどで確認できます。
 「状態」が「開始」でなければ、右クリックから開始します。)



●OpenSSH for Windowsの設定をします。
「μVNC」向けに書かれた「OpenSSH for Windowsの環境設定(詳細な手順)」のページが大変参考になります。
http://new.micro-vnc.jp/documents/archieve/sshwindows/detail.html
「環境設定」の3.で「microvnc」というユーザー名の部分を、Windows XPの自分のユーザー名に置き換えました。



●メインPCのファイアウォールの設定を、
 C:\Program Files\OpenSSH\usr\sbin\sshd.exe
 C:\Program Files\Synergy\synergys.exe
を許可するように変更します。
(今回はサーバ側なので、synergys.exeの方です。クライアントとして許可する時はsynergyc.exeになります。)



●クライアント側Synergyの設定をします。
/etc/synergy.conf を編集します。
section: screens
	Csn:
	Ssn:
end
section: links
	Csn:
		left = Ssn
	Ssn:
		right = Csn
end

繰り返しになりますが、これは、クライアントの左にサーバを置く位置関係での設定です。



●サーバ側Synergyの設定をします。
1.「Share this computer's keyboard and mouse(server)」をオンにします。

2.「Configure」ボタンを押し、「Screens & Links」ウィンドウを開きます。
 ここで、Synergyで接続する各PCの位置関係を設定します。

3.「Screens」の「+」ボタンを押して、「Add Screen」ウィンドウを開きます。
 「Screen Name」にSynergyサーバのホスト名を入力し、OKボタンを押します。
 同様に、Synergyクライアントのホスト名を入力し、OKボタンを押します。
 (正確には、ホスト名でなくても構いませんが。)
 仮に、サーバのScreenNameをSsn、クライアントのScreenNameをCsnとします。

4.その下、「Links」の「New Link」をクリックし、その下の赤枠部分を
「0 to 100% of the right of Ssn goes to 0 to 100% of Csn」
と設定し、左下の「+」ボタンを押して追加します。
同様に、
「0 to 100% of the left of Csn goes to 0 to 100% of Ssn」
ともうひとつ設定し、追加します。
これは、サーバの右にクライアントを置く位置関係での設定です。

5.Linksも設定を終えたら、OKボタンを押して「Screens & Links」ウィンドウを閉じます。
 (最終的に、Screensには2行、Linksには[New Links]も含めて3行の設定になっています。)

6.「Start」ボタンを押して、Synergyを作動させます。
 タスクトレイに緑のSynergyアイコンが表示されます。



●サブPCであるクライアント側から、SSLでport forwardingします。
ターミナルエミュレータ(や、コマンドプロンプト)から
「ssh -f -N -L localhost:24800:Synergyサーバのホスト名:24800 Synergyサーバのホスト名
を入力します。(Synergyサーバのホスト名を適宜置き換えてください。)
ユーザー名が異なる場合は、「-l ユーザー名」を付加します。

接続すると、最初の1回だけ
The authenticity of host '192.168.???.??? (192.168.???.???)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?

のように尋ねられます。
ホストとフィンガープリントが表示されるので、
確認の上、正しければ「yes」と入力します。
(この接続許可の情報は ~/.ssh/known_hostsファイルに保存されます。)
パスワードを求められるので、入力します。



●Synergyクライアントを起動します。
サブPCから
「synergyc -f localhost」
と入力します。
メインPCのSynergyアイコンが変わり、接続したことを示します。





最後に。
試行錯誤したので、手順に抜けがあったらごめんなさい。

最新の画像もっと見る

コメントを投稿