●Security INDEXへ

★TOP INDEXへ


バガボンドScanシリーズ掲載原稿:

F-Secure社のSSHサーバーとクライアント導入、構築から運用までのレポート(第四回)

今回はようやく、数回前からの予告どおりに、ポートフォワーディング機能について検証してみようと思う。

ポートフォワーディング機能とはSSHプロトコルに乗せてさまざまな通信を可能にするVPN機能のことだ。F-SecureSSHサーバーとクライアントを使うのは、やはり主にサーバーのメンテナンスが目的となるのだろうが、ポートフォワーディング機能は用途はいろいろ考えられ、何もメンテナンスだけにとどまらない。VNCもpcAnywhereもファイル共有もこのSSHに乗せて行うことができるというわけだ(このSecurityWireの読者であれば先刻ご承知ではあろうが)。F-SecureSSHクライアントでは送信用と受信用のトンネルが設定可能であり、さらにXのフォワーディングも可能だ。
F-SecureSSHサーバーとF-SecureSSHクライアントの組み合わせでポートフォワーディング機能を使うときは、まずサーバーがわのTunneling設定で「Allow TCP tunneling」のチェックボックスをチェックしてフォワーディングを許可する必要がある。ここで特徴的なのは、ユーザーアカウントごとにフォワーディングを許可したり拒否したりという設定が可能であるということだ。OpenSSHではroot以外に特定のユーザーに対する許可や不許可というのを基本的には設定しない(PermitRootLoginという設定により、rootでの直接ログインを許可するかどうかは設定可能)。アクセスコントロールはtcpwrapperに任せ、しかもユーザーごとには設定できないのだ。このあたりはF-SecureSSHサーバーのアドヴァンスになるだろう。
ポートフォワーディングを実現するためには、さらにクライアントがわでもトンネリング設定を行う。Xをフォワードしたいときは、クライアントの「編集」の「設定」の「トンネリング」で「X11接続のトンネリング」にチェックしなければならない。ここで少し気になるのは、「X11接続のトンネリング」にチェックを入れると、その下にある「X11表示」という欄のデフォルト「0」(ゼロ)がアクティブになる。そもそもこれはディスプレイ番号のオフセットのことを指すのだと思われるが、ディスプレイを「表示」と和訳されてしまうとちょっと戸惑う。訳語はさておいたとしてもデフォルトが「0」というのは、相手がWindows版SSHならば問題無いことがほとんどだろうが、もし普通のUNIXサーバーが相手だった場合はオフセット無しで相手のXのポート6000番と重なってしまうことになるのではないだろうか。OpenSSHではオフセットのデフォルトは10だが、F-SecureSSHクライアントのデフォルトも0以外にしておくほうが無難だと思える。
そういう細かいことを除けば、何の問題も無く動作してくれる。
ただし、このXのフォワードというのは、当然ながらXのサーバーとクライアントが居て初めて成立するものだ。Xのサーバーとなる端末(Xの場合、一般的な感覚とは逆に「端末」が「サーバー」となる)を自マシンで起動するときもktermのようなエミュレーターが必要だし、Xのクライアントとなるサーバー側にも当然ながらXが動いている必要がある。Windows環境下では、ktermやXがあることの方が珍しいはずだ。少なくともF-SecureSSHサーバー+X環境というサーバーで待ち受けて、端末がわはUNIX系かもしくは、Windowsにktermやxterm、rxvtなどのエミュレーターを入れておかないと使えない。
その意味ではやはり、ポートフォワーディングの機能こそが主な用途になるのだろう。

ポートフォワーディングにはローカル(送信用)とリモート(受信用)の2種類ある。
ローカル(送信用)とは、ローカルのコンピュータ上のSSHクライアントを経由してSSHサーバーにアクセスし、そのSSHサーバーを経由して真の接続先サーバーと通信するものだ。SSHクライアントから接続しに行くSSHサーバーがいわばプロキシにような役割になる。
リモート(受信用)とはローカル(送信用)と逆のルートで、真の接続元になるアプリケーションがSSHサーバーを経由してローカルのSSHクライアントに接続し、ローカルのSSHクライアントはそれをスルーして、真の接続先に流す、というものだ。この場合SSHクライアントの方がプロキシの役目を担う。
こうしたVPN機能は、危険な通信路を暗号通信で通り抜けて外部からでも安全な通信を行うためにあるわけだが、中でもSSHがらみのトンネルは実装も実績も多く、現実的に使われている。
このF-SecureSSHサーバーは、WindowsプラットフォームもそのSSHでのVPNを行うグループに参加させたという意味ではブレイクスルーと言えるかも知れない。
今回筆者はこのF-SecureSSHサーバーのポートフォワーディング機能を使って外部からインターネット経由での通信を試みた。SSH上で無い場合と比較するとどうしても通信が遅くなってしまうことは否めないが、通信自体には何の問題も発生しなかった。

SSHに絡んだVPNというのは他にもPPP over TCPとか、PPP over SSHもある。PPPが通るとそれこそファイル共有であるとか、さまざまな通信がやりやすいため、便利であることは間違いない。最近ではもぐら(http://www.kmc.gr.jp/proj/vpn/index.html)というWindowsベースでのPPP over SSHクライアントも出てきているが、残念ながらサーバーとしてはWindowsプラットフォームはまだ蚊帳の外のようだ。
SSHを使ってVPNを使うとき、普通のSSH通信としか見えないという利点もある。また、SSHによる圧縮機能を使えるため、通信効率も良くなる。
しかし一方で、VPNというものの宿命とも言えるが、比較的簡単に導入できてしまうために、管理されない通信がSSHを通ってばりばり行き交うことが懸念される場合もあるはずだ。また、ファイアウォールを超える通信をSSHトンネルで行う場合には、それだけ設定ミスなどが及ぼすリスクは大きくなる。
あるいはまた、そもそもTCP over TCPという通信のやり方そのものが、トラフィック過多や混雑を招きやすいという欠点もある。おまけに暗号化通信であるため、サーバーとなる側のコンピュータには負荷がかかる。全くの体感でしかないが、Windowsプラットフォーム上のSSHサーバーとしては、残念ながらOpenSSHを使うほうがパフォーマンスは良いように思える。この点ではF-SecureSSHサーバーは、比較的多数のユーザーが同時にログインする場合などに不利になってしまうだろう。

最後に少し周辺的な部分にも触れておきたい。
F-SecureSSHサーバーとF-SecureSSHクライアントに共通して印象に残ったのは、マニュアルが読みやすく出来ていることだ。こういう点が実は使う側から言わせると大きな利点だったりするものだ。
もともとWindowsプラットフォームというのは、GUIを基本にしているために使いやすさではUNIX系より格段に上であると言える(筆者は実はマッカーだったりするので、ユーザーインタフェースに関してはさらに一席ぶちたいところだが我慢しよう(笑))。マニュアルもその利点を生かして、オペレーションも追いかけやすくて非常にわかりやすい。イメージやアイコンがしっかり使われているのも良い点だと思う。
またGUIで設定するという想定だけでなく、テキストベースで設定ファイルを編集することを意識したパートもあり、パラメータの解説も充実している。
これまでOpenSSHを中心に、同様の機能を持つサーバーと比較してきたが、さすがにフリーのものとは違う良い面を出していると思う。
価格はサーバーが最低のサーバー数1-4で95400円、クライアントがやはり最低ライセンス数の1-4で15000円となっている(http://www.f-secure.co.jp/products/ssh/price.html)。これだけ値段取るならばマニュアルが良くても当然と言えるだろうか。しかし、もっと高いお値段をつけておきながら、マニュアルが日本語になってないものもいまだに多数あることを考えると、このマニュアルが良く出来ていることはやはり評価しておきたい。

次回はこれまで延々書いてきたレビューの総括とまとめとしたい。