Memo for FreeBSD 5.2.1
     & Vine Linux 2.5


Contents

  1. 基本方針
  2. TOOLの導入
  3. セキュリティ構築手順
  4. SSHサーバの設定をする
  5. 公開鍵を作成する
  6. 公開鍵を利用者に渡す
  7. PuTTYのインストール
  8. PuTTYを使う
  9. WinSCP2 を使う
  10. メニューに戻る

PuTTY を使ったセキュリティ構築法 (お勧め)

基本方針

FreeBSDでは標準でSSHが導入されている。そのため、ftpd,telnetd,rlogindは起動しない設定がディフォルト値となっている。 これらをr系コマンドと呼び、これを使わず、セキュリティ対策が施されている、s系コマンドを推奨している。 ここでは、SSHを使い、telnet,ftpの実現を試みる。
    セキュリティ構築の基本方針を次のように定めた。
  1. SSH(Secure SHell)とRSA認証を前提とする。
  2. telnet,rlogin,ftp はデーモンを起動しない。
  3. SSHを使った接続とする。22 port のみ公開する。
  4. リモートホストは、UNIX・Windowsとする。
  5. プレーンテキストでの認証は拒否する。
  6. 公開鍵は、サーバーでする。
  7. 鍵ファイルを利用者に渡す手法とする。

TOOLの導入

標準的なtelnet,ftp はSSHに対応していない。そのためSSH対応のTOOLを用意する必要がある。PuTTY(Free Win32 Telnet/SSH)が有名である。ここではPuTTYを導入する手順について解説する。
    導入するTOOLのリストを示す。
  1. PuTTY [2003/05/現在]
      (作者:Simon Tatham) Download
  2. WinSCP2(Secure CoPy)---> FTP機能実現
      (作者:VSE) Download
      こちらがお勧め 日本語解説 Download   

セキュリティ構築手順

セキュリティを構築するには、サーバー側で行う作業意と、クライアント側で行う作業が必要となる。 最初にサーバー側の設定を行い、その後クライアント側の設定となる。ここでは、その作業の流れを記す。
  1. SSHサーバの設定をする。
      プレーンテキストによる認証拒否などの設定を行う。
  2. 公開鍵を作成する。
      User単位で鍵を作成する。
  3. 公開鍵を利用者に渡す。
      メール(?)などで鍵ファイルを利用者に渡す。
  4. client側の設定をする。
      Tera Term Pro,WinSCP2 などの設定と利用

SSHサーバの設定をする。

SSHサーバーの設定は、/etc/ssh/sshd_config で行う。管理者権限で設定を行う。今回は 特に、loginパスワード認証・空のパスワードを禁止・RSA認証を使用に重点を置いた。
    Protocol 2SSHプロトコル2での接続に限る
    PermitRootLogin norootユーザーからのログインを禁止する
    ChallengeResponseAuthentication noPasswordAuthentication,PermitRootLoginの効果に影響する。 Default は yes のため、これを指定しないと、鍵なしでのログインが可能となってしまうので要注意
    RSAAuthentication yesRSA認証を使用できるようにする(SSH1)
    PubkeyAuthentication yes公開鍵方式の認証を使用できるようにする(SSH2)
    RhostAuthentication norhosts、/etc/hosts.equivの設定を無視する(SSH1)
    IgnoreRhosts yesrhosts、shostsの設定を無視する(SSH1)
    RhostsRSAAuthentication noRSAホスト間の認証で.rhosts、/etc/hosts.equivを無視する(SSH2)
    HostbasedAuthentication noRSAホスト間の認証で.rhostsを無視する(SSH2)
    PermitEmptyPasswords no空のパスワードを禁止する
    PasswordAuthentication nologinパスワード認証を使用しない

    設定が完了したら、rootになってSSHデーモンのsshdを再起動する。
    FreeBSD# /etc/rc.d/sshd restart

公開鍵を作成する。

公開鍵は、ログインユーザー単位で行う。
    RSA タイプにrsa を指定するとプロトコルバージョン2を使うこととなる。セキュリティを考えると このタイプのほうが望ましい。
    #su mickey $ ssh-keygen -t "rsa" [Enter]
    Generating public/private rsa1 key pair Enter file in which to save the key (/home/mickey/.ssh/identity):  [Enter]
    Created directory '/home/mickey/.ssh
    Enter passphrase (empty for no passphrase):*********** [Enter]
    Enter same passphrase again:*********** [Enter]
    Your identification has been saved in /home/mickey/.ssh/id_rsa
    Your public key has been saved in /home/mickey/.ssh/id_rsa.pub
    The key fingerprint is:
    9b:a9:81:24:7a:df:4c:55:c3:83:96:6a:ed:ce:a9:2e mickey@FreeBSD.micnet.or.jp
    $ cd .ssh [Enter]
    $ mv id_rsa.pub authorized_keys [Enter]

    この場合は、id_rsa というファイルが private 鍵となる。

private 鍵を利用者に渡す。

private 鍵を、ログインユーザーに渡す。
その際、属性をUID,GIDともに読み書きの権限を与える。
メールや、FDなどで直接Windows クライアントに渡す。

PuTTY のインストール

サーバーで作成した鍵をPuTTY に取り込むまでを記す。

Step_01 PuTTY のインストール

    A Windows-style installer (x86 only) for everything putty-0.53b-installer.exe をダウンロードし、インストールする。標準的なインストールで特に問題は発生しないため、ここでは説明をしない。

Step_02 private 鍵のインストール

    入手したprivate 鍵を、 PuTTY をインストールしたディレクトリにコピーする。
    筆者の場合、その下にディレクトリを作成し、鍵の管理を行っている。

Step_03 private 鍵の取り込み

    PuTTYgen を起動し、[Load] ボタンを押す。


    ファイルの種類に All Files を指定し、サーバーで作成された鍵を指定する。



    鍵のパスワードフレーズを聞かれるので、パスワードを入力する。

    入力し終えたら、[OK] ボタンを押す。



    特に必要はないが、SSH2RSA ボタンを選択する。(気持ちの問題)


    [Save private Key] ボタンを押す。



    ファイル名を指定し、保存ボタンを押す。

    PuTTYgen を終了する。

PuTTY を使う


    PuTTY を起動する。Host Name,Saved Session に必要な内容を書き込む。


    Category-Connection-SSH を選び、Prefened SSH protocol Version を2にセットする。


    Category-Connection-SSH-Auth を選び、Private Key file for autherntication の[Browse] ボタンを押す。


    すでに作成済みの鍵ファイルを指定する。


    指定された鍵ファイル名が表示される。


    Category-Session を選択し、Saved Session に任意の文字が書かれていることを確認し [Save] ボタンを押す。毎回このような保存を行う必要はない。次回からは、保存されている設定をロードすることで接続可能となる。


    [Open] ボタンを押し、接続を開始する。


    初めての接続では下記の内容のアラートが出るが、[Yes] を選択し先に進む。次回からはこのアラートは出ない。


    ユーザー名を入力する。


    パスワードを入力する。


    ログイン完了。



WinSCP2 を使う

    WinSCP2 のインストールおよび利用方法は、標準的なインストールで利用できるため、ここでは説明を行わない。

  1. WinSCP2 を起動する。


  2. [New] ボタンを押す。(新しい接続を登録する)


  3. 必要な項目を入力し、Private Key file の参照ボタンを押す。
    Host name  FreeBSD.micnet.or.jp
    User name    mickey




  4. Private Key File を指定する。


  5. Session-Stored Session を選択し、[Save] ボタンを押す。


  6. 任意のSession Name を指定し、[OK] ボタンを押す。


  7. Session を選択し、[Login] ボタンを押す。


  8. 初めて接続する場合、次の警告が出る。
    ここで表示される fingerprint  を受け入れる場合には [Yes] を選択する。

  9. Password を入力し、[OK] ボタンを押す。


  10. WinSCP2 を起動する。
    ログインが完了すると左にローカルホスト,右にリモートホストのファイル一覧が表示された画面が表示される。Explolreスタイルで表示したい場合、otion またはViewの Preferences-interface で指定する。次回接続から設定が反映される。