Synergyの暗号化

スポンサーリンク

Win XP と iMac のキーボード&マウス共有でSynergyを使ってきたのだが、
そのままでは通信内容が平文のまま流れてしまう。

・・・ということはなんとなく知っていた。

iMacのOS再インストールを機に、この辺で暗号化できるならしておこうかと。
とりあえずググって見つけたサイトの手順に従ってやってみた。

スポンサーリンク

Stunnel

Stunnelというソフトで暗号化できるらしい。
結果的には何とかできたわけだが、
苦労したにも関わらず多分忘れるので、経緯をここに書いておこうと思う。

—————————————————————————
環境:
 Win XP sp3 & Mac os X(10.5.8)
Synergy:
 Win: Synergy 1.4.9
 Mac: Synergykm 1.0b7 
※Winを Synergy&Stunnel のサーバーとして使用。
—————————————————————————

Win:
stunnel公式サイトのDownloadsから、
stunnel-4.53-installer.exe(2012/07/30現在)をダウンロードしてインストール。

Mac:
homebrewを使ってインストール。
・・・というがそもそもHomebrewって???
ググる。うん、まぁ便利なものらしい。

必要なもの:
An Intel CPU
OS X 10.5 or higher
Command Line Tools for Xcode or Xcode
Apple’s X11 or XQuartz
Java Developer Update

開発環境をインストールしなくちゃならないようだ。
Javaは文句言われたら入れればいいやと入れず。とりあえずスルー。

OSのインストールCDからXcodeTools.mpkg、Optional Installs.mpkgをインストール。

次にターミナルから
https://github.com/mxcl/homebrew/wiki/installation
に書いてある

/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

をコピペ、エンター。

でも、
SSL certificate problem
とか言うエラー。

curlコマンドが使用する curl-ca-bundle.crt を最新のものに入れ替えることで解決する、らしい。
Homebrewの使い方に書いてあったものを打ち込んでみた。

cd /usr/share/curl
sudo curl -O http://curl.haxx.se/ca/cacert.pem
sudo mv curl-ca-bundle.crt{,.old}
sudo mv cacert.pem curl-ca-bundle.crt

これで大丈夫かな?
再度挑戦。
・・・うまくいったようだ。

まず brew doctor をやれと言われた。
やってみた。
3つくらいエラー
・GITがない
・xcodeのバージョンがふる!
・The version of libcurl provided with Mac OS X Leopard has outdated
SSL certificates.
とかなんとか。
GITが無いとだめっていうから

brew install git

で入れた。

xcodeはアップデートするには、アップルアカウントがとか言うから華麗にするー。めんどい。
最後も重要さはよくわからんが古くても根性で動け!と一喝して、

brew install stunnel

なんとなくいけたかな。いけたらしい。(驚)

次に証明書の作成へ

公式サイトからstunnel-4.53.tar.gz をDLして解凍。stunnel.cnfを取り出し。
自分のディレクトリにおいてからターミナル、

openssl req -new -x509 -days 365 -nodes -config stunnel.cnf -out stunnel.pem -keyout stunnel.pem

いくつか質問されるけど全部.(ドット)で済ます。
「stunnel.pem」ゲット。
confに書くディレクトリにそれぞれコピー。
(winはStunnelのフォルダ)

スポンサーリンク

stunnel.confを編集

Win:

cert = stunnel.pem
sslVersion = TLSv1
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
[synergy]
accept = 25800
connect = 24800

(※FIPSモードが云々言うからTLSv1にしてみた。)

Mac:

cert = /usr/local/etc/stunnel/stunnel.pem
sslVersion = TLSv1
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
client = yes
pid = /stunnel.pid
[synergy]
accept = 24800
connect = 192.168.XX.XX:25800

(※接続先IPは適宜変更のこと)

ターミナルから、

stunnel

と打ってみるもエラー吐きまくり。。。
というかコピペでもってきたオプションが連なってる。
ずいぶんと長い時間迷った挙句、改行コードに思いつき、Mac側で改行しなおすとOK。エラー吐かなくなった。(テキストエディタなら改行コードLFで保存)
でも

netstat -an | grep 24800

でリッスンなど出てこない。
元のサンプルconfをみてpidの項目発見。
pid = /stunnel.pid
を追記してみたら無事動いた。
MacのSynergyで接続先を「Localhost」に変更。
最後にMacの方だけスタートアップで起動させるようにして完了。

参考サイト:
stunnelを使ってsynergyを暗号化して安全に使う

コメント

タイトルとURLをコピーしました