●Security INDEXへ

★TOP INDEXへ


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

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

SSHサーバーと言えばOpenSSHと相場が決っているような気がするが(失礼)、どっこいほかにも選択肢はあるようだ。そんな選択肢の一つ、F-Secure社のSSHサーバーを導入構築してくれ、という依頼が来た。
そもそもサーバーがWindows系の場合、OpenSSHはCygwinベースで導入しなければならず、Cygwin環境に耐えられないマシンや操作設定の面倒さ煩雑さのおかげでか、そのアプローチを採っているところは少ないようだ。(参考:http://www.oreilly.co.jp/BOOK/wnt2ksec/)このF-Secure社のSSHサーバーはいきなりWindows系にインストールして動かすことができるため、Windowsサーバーの運営管理者には朗報と言えるかも知れない。
いや、本当に「朗報」なのかどうか、これから検証してみなければならない、ということだろう(笑)。

サーバーのインストールは極めて簡単だ。これはどのWindows系ソフトウエアにも言えることだが、setup.exeのクリックでインストールが開始され、ほとんど何も考えずにNextとか次へをクリックしていてもインストールが可能であり、簡単この上ない。
その簡単なインストールを終えると、もういきなりサーバーとして使用可能になる。
まずは2台のWindows機にそれぞれサーバーとクライアントの役目を振り、インストールして起動してみた。用意したマシンは両方ともWindows2000professionalのSP3である。ちなみに機械はVAIOのR505とPCG-SR9/K。
サーバーは5.2英語版というヤツだが、インストール自体は何の問題も無い。インストール後再起動も必要なく、いきなりサービス起動となる。
クライアントは5.1日本語版というシロモノだ。これもインストールの最初に出るメッセージウインドウの漢字が90度回転している(苦笑)他は問題無くインストール完了。なぜかこちらは再起動を要求してきた。再起動し、サーバーに接続してみる。(クライアントソフトウエアの初回起動時には、ウインドウ内のポインティング軌跡をランダム種に利用するためのオペレーションが入る)
繋がらない。
どうもログイン名とパスワードが間違っていたようだ。
正しいログイン名(例:administrator)とパスワードを入れたら繋がった。
繋がると起動がかかるのはcmd.exeである。試しにdirと叩いてみると文字化けが発生している。いや、文字化け云々の前に、dirが「ぢr」と変換されて入力値になっているようだ。PUTTYなどは起動したらかな入力モードが英数字モードに勝手に変わっているので、そちらに慣れた身としては違和感がある。(一方では、Windows2000などでは漢字名のユーザーを登録していることも多く、従ってユーザー名としてかな入力が必要になることが多い。となると起動していきなり英数字モードになってしまうと逆に面倒なのか?)また、文字化けは漢字コードの設定が問題のようで、クライアントがわの「ファイル」の「プロファイル」の「プロファイルの編集」を呼び出し、「キーボード」タブの「漢字エンコーディング」設定のデフォルトを確認すると、なぜかEUCになっているため、これをShift-JISに変更。文字化けは解消される。もっとも、クライアントソフトウエアとしては、相手がEUC(つまりLinuxやUNIX)であることは多いので、デフォルトはこれで良いのかも知れない。
ここで先ほど繋がらなかった場合、ログにはどう出ているか調べてみる。プログラムメニューから「F-Secure SSH Server」の「Configuration」を起動すると、その初期画面に「View Eventlog」というボタンがある。これを押せば書いてある通りにWindowsのイベントログが起動してくる。そしてそこに警告としてどのユーザーがどんなエラーになったのか(この場合、ユーザーXXXがパスワードエラーを起こした、と)記録されている。イベントログにどのレベル(Error、Warning、Informationの3つのレベルが有り、デフォルトではErrorとWarningまで記録する設定だ)のイベントまで記録するかも設定できるようになっている。

このF-Secure SSHサーバーはWindowsNT4.0SP5以上、もしくはWindows2000で動作し、SSH1およびSSH2の両方のプロトコルをサポートしている。サーバーをインストールすると、fsshddiag、ssh-certenroll2、ssh-keygen2、fsshconf、fsshd2、fssh2console、fsshd2srv、fsshsftpdというモジュールがインストールされる。
メニューからConfigurationを起動するとfsshconfが起動する。サーバーの設定変更ツールだ。
設定項目は極めて多い。ざっと見たところ、OpenSSHで可能なことはほぼ出来るようだ。中には「Server version string」なんていう設定項目もある。ここにフェイク(偽り)のバージョン情報を入れておくと、単純なバナーチェックを元にした脆弱性スキャンくらいは騙せるというわけだ。(基本的にはボランティアで開発されているオープンソースのソフトウエアのバージョン情報を書き換えることの是非は、各所で議論されている。このF-secure SSHサーバーは商品なのでここではその議論には深く触れないでおこう)
設定項目詳細は都度触れていくが、OpenSSHの導入時は、サービス自体のアクセスコントロールはtcpwrapperの助けを借りないとならないのに対し、F-Secure SSHサーバーは、そもそも「Host Restriction」というメニューで「Allow login from hosts」または「Deny login from hosts」の設定欄に、例えば「.*trusted\.hosts.\com」だとか「10\.1\.44\.*(=10.1.44.*)」などの正規表現設定が可能だ。アクセス制御する相手はコンピュータばかりでなく、「User Restriction」というメニューで「adm.*」「.*joe」「mydomain/sam」「cowboy@evil\.org」等の設定ができる。Windowsマシンユーザには少々敷居が高いかも知れないが、サンプリングによる設定値に正規表現が使えるのは大きい。(設定表現中最も良く使われるであろう「.」にいちいちエスケープが必要なのは面倒といえば面倒だが)
ログインして気づいたが、デフォルトでパスワードログインが許可されている。この是非もまた論点となっているが、とりあえず使える、という面では良しとすべきか。

他にSSHに求められる機能と言えば、さまざまなプロトコルのトンネル化、とか、sftpなどがあるが、このサーバは両方とも機能を備えている。sftpが使えるのは、インターネット経由遠隔地からのメンテナンスなどには安心だ。F-Secure SSHクライアントには、当然といえば当然だがsftpクライアントがちゃんと入っている。
ついでにこのsftpを試してみる。
サーバーとなったマシンのタスクマネージャでプロセスを見ながら、クライアントのマシンでF-Secure SSH File Transfer クライアントを起動し、サーバーに接続してみる。するとfsshd2srvとfsshsftpdが起動し、見事ログインユーザーのホームディレクトリのファイル、ディレクトリ一覧が表示される。ちなみにftpのツールでWindowsでは有名なffftpとかがあるが、ffftpをSSH上で使うには、これまた有名なTera Term ProにTTSSHを加えてSSH通信を可能にした上で、ポートフォワーディング設定が必要になる(参考:http://www.club.kyutech.ac.jp/guide/ttssh/index.html、http://www.club.kyutech.ac.jp/guide/ffftp/)。(PUTTY(http://www.chiark.greenend.org.uk/~sgtatham/putty/)であればポートフォワーディング設定のみ)。しかし、これ単体でSSHプロトコルベースのftpが可能で、かつffftpなどのツールと同様の使いやすいインタフェースというのは貴重だ。

次回はさらに使用感や設定について掘り下げてみたい。