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の方だけスタートアップで起動させるようにして完了。
コメント