●Security INDEXへ

★TOP INDEXへ


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

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

またも前回の補足から。
クライアントソフトウエアによる文字化けの問題を追いかけてみた。
F-SecureSSHサーバーでのログインシェルをcmd.exeにした場合、現在までのところではどんな端末からでも日本語入力ができないようだ。従って、日本語ディレクトリ(フォルダ)へcdすることすらままならない。これは痛い。日本語ディレクトリ(フォルダ)や日本語名ファイルを避けて通れるならば問題は無いのだが、システムメンテナンスのときに、それですべて問題が無いだろうか?
ただしもちろんこれはF-SecureSSHサーバーだけの問題ではなく、そもそもcmd.exeがしょぼいとか、端末側の実装が今ひとつだからとか、いろんな要因があるはずだ。調査詳細は別の機会に譲ることにしよう。
その他、前回に書いたアイディアも試してみた。ログイン時起動タスクをCygwinにした場合でも表示は問題なかったのだが、日本語入力に問題があった。もっともCygwinの助けを借りて動くのであれば、別にF-SecureSSHサーバーにする必要はなく、Cygwin+sshdでサービスすればいい。
しかし、そもそもこのF-SecureSSHサーバーは、F-SecureSSH File TransferクライアントによってGUIベースで管理される、というのをメインに想定しているとのこと。というよりもむしろ、Windowsユーザー向けにはそちらの方が馴染みのエクスプローラーインタフェースなので、そのメインの方法を試さないと意味が無いようだ。
というわけで、補足にしては長くなるが、F-SecureSSH File Transferクライアントから、サーバーのメンテナンスを想定して検証してみた。

このF-SecureSSH File Transferクライアントでアクセスしてみると、確かにエクスプローラーと良く似たインタフェースでサーバーのリソースにアクセスできる。いや、SSHプロトコルの上でメンテナンスできる、という意味では、マイクロソフトネットワーク上での共有やアクセス制御などによるメンテナンスよりはるかに安全だ。
アクセスして少し気にかかったのは、隠しファイルが表示されてしまうことだ。もちろん表示をオンオフできる機能はあるが(「表示」「隠しファイルを表示」)、これがデフォルトではonになっていないのに表示されている。調べてみると、クライアントがわで設定する「隠しファイル」とはいわゆるUNIXで言うところの「隠しファイル」であることがわかった。つまり、ファイル名のアタマに半角の「.」(ドット)を付けたものが隠しファイルというわけなのだ。これはWindowsでのいわゆる「隠しファイル」とは異なっていて、分かりにくい。
それを除けばあとは快適だ。それこそエクスプローラーのように、一覧表示からファイルをオープン(アプリケーション起動)できるのがシームレスな動きを感じさせる。
調子に乗って一覧表示でテキストファイルをダブルクリック、そうするとテキストエディタが起動し、中身を編集できるのだ。これは快適、と思って編集保存してみたが、内容は反映されない。つまりSSHサーバー上のテキストファイルが更新されていないのだ。
調べてみると実は、F-SecureSSH File Transferクライアントのアプリケーションフォルダ内のtempというフォルダに、同名ファイルが新たに保存されている。例えば、administratorでログインしてF-SecureSSH File Transferクライアントでaaa.txtファイルを編集する作業を行った場合には、システムディスクの「Documents and Settings」「Administrator」「Application Data」「F-secure SSH」「temp」というフォルダ内にaaa.txtという名前のファイルが新規で保存・作成される。temp下に既存のテキストファイルを「上書き保存」した場合には、何も言わずに黙って上書きされる。tempフォルダにファイルが無かった場合に「上書き保存」としても、やはり何も言わずに黙って同名のファイルが新規作成される。このあたりの動きや実質の保存フォルダのことについてはマニュアルにも特に記述が見当たらず、調べなければてっきりファイルを更新したような気になってしまうため、誤解を招きやすいと思う。
面白いのはUNIXでのファイルパーミッションのようなdrwx----といった表示がされることだ。しかもちゃんとディレクトリはdで読みはr書きはw実行はxと表示されている。実行が表示されるのは.exeの場合のようで、読取専用の場合はちゃんとwが表示されない。
File転送クライアントとしては、メニューから直接ローカルマシンのエクスプローラーが開けるので、FFFTPのように最初から開いているわけではないが、やはり使いやすいと言えるだろう。

さて、それに呼応するF-SecureSSHサーバー側だが、SFTPサーバーの設定のところを見てみると、ホームディレクトリの指定の他に、アクセスしてきたクライアントがどんな動作を行ったかを記録する設定項目が並んでいる。設定可能なのは「ログイン、ログアウト」「ディレクトリ一覧」「アップロード」「ダウンロード」「修正」だ。OpenSSHでこの種のログを取得しようとするときは、言わずもがなのsyslogなどの利用が必要なので、知らないとちょっと面倒だと言える。それに比べるとこちらのF-SecureSSHサーバーのログ設定の方がはるかにわかりやすい。
セキュリティ的に是か非かという議論はあるだろうが、F-SecureSSHサーバーのSFTPではPowerUserという特権ユーザーの設定が可能だ。一般ユーザーはそのユーザーアカウントのホームディレクトリ以下にしか触れないが、パワーユーザーの場合はその他のディレクトリにも触れる、というような設定を行えば、メンテナンス用特権ユーザーとしてシステムディレクトリなどのメンテナンスもできるというわけだ。

ここまでいろいろとサーバーの機能をOpenSSHなどと比較などしつつ検証・確認してきたが、F-SecureSSHサーバーには一つOpenSSHには無い機能がある。それはCAによって発行された証明書(サーバー、クライアント)を取り込んで認証に使うことができる、という機能だ。ということはつまり、PKIによる認証が実現できるということだ。
信頼できるCAによって発行されたサーバー証明書とクライアント証明書を用いて認証を行うモデルは、PKI(公開鍵基盤)による認証としてごく一般的なモデルだが、OpenSSHではこれをサポートしていない。OpenSSHの認証は、主にパスワードと、サーバーとクライアントで公開鍵をやり取りして行うところまでである。
ではPKIによる認証モデルにはどんなメリットがあるのか?
PKIによる認証モデルを使えるならば、失効リストによって鍵管理を厳密に行うことが可能になる。つまりユーザー(クライアント)に配布した鍵(証明書)を失効させて、ログインできなくさせることができるということだ。パスワードの場合と同じような管理ではあるが、むしろ公開鍵をやり取りする場合よりも手間がかからずに、サーバーがわで集中的にユーザー管理が行えるメリットがある。
ただ、SSHというプロトコルの主な用途であるメンテナンスを考えた場合、そんなに頻繁に失効させたりするかどうかは微妙かも知れない。それにもうひとつの課題は、証明書失効リストの更新情報を動的に行き渡らせるためにはディレクトリサービス等が必要となることだ。例えばLDAPとか、あるいはActive Directryのサーバーを立て、そこにリストを持たせる必要がある。
そこまで大掛かりにしないならば、手動のメンテナンスという手もある。いずれにしてもリスト公開サーバーが必要だ(が、もちろんSSHのサーバーに併設することもできる。その場合はもちろんリスクもある)。
SSHの用途をもっと拡大して、ポートフォワーディングでXの端末やtelnet、あるいはWindowsプロトコルなどを大々的に使う場合には、失効リストは有効だろう。SSHレベルのプロトコルに乗せてある程度多数のユーザーをぶらさげてそういう使い方をする場合は、コンピュータのパフォーマンスにかなりな負荷がかかってしまうと想定されるが、現行の無線LANのような無防備なプロトコル(802.11bなど)上で通信したいという要件があるときはそういった手段も検討しなくてはならなくなってしまう。
そう、その無線LANだが、今この記事を書くために検証している環境では、無線LANをずっと用いている。しかし、無線のトラブル以外には何の問題も起きていない。802.11xなどの今よりも安全と予想される規格に対応した製品が出てくるまでは、今の無線LANでは不安で企業ユースにはとても適用できない。そうはいっても無線LANを使う、という要件がどうしても外せない場合(というのがほんとうにあるかどうかは全く疑問だが)、潤沢な予算をつぎ込める組織ならともかく、小規模なネットワークならばこのSSHというのはけっこう現実的な選択かも知れない。なぜなら、SSHに乗せてさまざまなサービスやプロトコルを走らせることができるからだ。

補足で伸び伸びとなってしまったが、次回こそはポートフォワーディング機能などを使ってみたい。