4.2 サーバーサービスのセキュア化
前のページへ
次のページへ

4.2.1 OpenSSHのインストールと設定

ネットワークを介した、OSのリモート操作や管理を行なうにはいくつかの方法があり、代表的な方法にTELNETを利用したものがある。しかしながら、TELNETを使用した通信は平文で行なわれるため、パスワードや通信内容などがネットワーク盗聴により漏洩してしまう危険性がある。このような危険性を回避したリモート管理を実現する方法として、SSHの利用がある。SSHは、トランスポート層を暗号化する技術で、既存のサービスの通信をセキュアに提供するために広く利用されている。

1) 運用方針

システムにリモート管理の手段を設けた場合、リモートからのメンテナンスが可能になり、利便性は向上するが、それと同時に通信の盗聴やシステムへの侵入の危険性が高くなる。よって本モデルでは、リモート管理を導入することで発生するセキュリティ脅威の対策手段として、SSHを導入し、以下のような方針でSSHを運用する。

Tcp Wrappersを導入すると、SSHサービスへのアクセス制御機能を追加することができる。SSHは認証も含めて通信内容が暗号化されるため、TELNETにくらべて格段に安全であるが、さらにSSH接続可能なホストを限定することでより安全にする。

2) OpenSSHのインストール

SSHサービスを提供するソフトウェアは複数存在するが、本モデルではOpenBSD Licenceによって非商用、商用利用を問わず利用可能なOpenSSHを使用する。また、OpenSSHの利用には事前に導入が必要なソフトウェアがある。それらのソフトウェアを以下の順番でインストールする。実際のインストール手順は、ア)からエ)で解説する。

  (注1) Tcp Wrappersを導入しなくてもOpenSSHは利用可能であるが、OpenSSH単体では接続元IPアドレスやネットワークアドレスによるアクセス制御機能がないため、本モデルでの導入は必須とする。  

ア) OpenSSLのインストール

OpenSSLは、Secure Sockets Layer(SSL v2/v3)と暗号プロトコルであるTransport Layer Security(TLS v1)を実装したライブラリである。OpenSSLは以下のサイトから入手する。本モデルでは、OpenSSLのバージョン0.9.6bを用いて解説する。

 OpenSSL入手先:
  http://www.openssl.org/

以下の手順で、入手したアーカイブを展開し、コンパイルそしてインストールを行う。なお、インストール作業はroot権限で行う必要がある。

---アーカイブの展開---
% gzip -cd openssl-0.9.6b.tar.gz | tar -xvf -
---コンパイル---
% cd openssl-0.9.6b/
% ./config --prefix=/usr/local
% make
% make test
---インストール---
% su
# make install

イ) zlibのインストール

zlibはzipやgzipに採用されている圧縮アルゴリズムをライブラリ化したもので、以下のサイトから入手可能である。また、本モデルでは、zlibのバージョン1.1.3を用いて解説する。

 zlib入手先:
  http://www.gzip.org/zlib/

以下の手順で、入手したアーカイブを展開し、コンパイルそしてインストールを行う。なお、インストール作業はroot権限で行う必要がある。

---アーカイブの展開---
% gzip -cd zlib-1.1.3.tar.gz | tar -xvf -
---コンパイル---
% cd zlib-1.1.3/
% ./configure
% make
% make test
---インストール---
% su
# make install

ウ) Tcp Wrappersのインストール

Tcp Wrappersのソースファイルをコンパイルしてインストールする。ここでは、Tcp Wrappersのバージョン7.6を用いて解説する。Tcp Wrappersのインストールについては「4.1.2 セキュア化のための設定」の「6) Tcp Wrappersによるアクセス制御」を参照する。既にTcp Wrappersが導入済みであれば、この作業を行う必要はない。

エ) OpenSSHのインストール

OpenSSHは、OpenSSH Projectによって開発されているSSHプロトコルを実装したソフトウェアであり、以下のサイトから入手可能である。また、本モデルでは、OpenSSHのバージョン3.0.2p1を用いて解説する。

 OpenSSH入手先:
  http://www.openssh.com/

以下の手順で、入手したアーカイブを展開し、コンパイルそしてインストールを行う(注2)。なお、インストール作業はroot権限で行う必要がある。

---アーカイブの展開---
% gzip -cd openssh-3.0.2p1.tar.gz | tar -xvf -
---コンパイル---
% cd openssh-3.0.2p1/
% ./configure --with-tcp-wrappers --disable-suid-ssh --with-ipv4-default --disable-pam
% make
---インストール---
% su
# make install


  (注2)

インストール前に、Tcp Wrappersのライブラリが存在するかどうかを確認する。必要なライブラリは、以下のとおりである。

  • /usr/lib/libwrap.a
  • /usr/include/tcpd.h
 

SSHのポート番号を登録するため、/etc/servicesファイルにSSHの設定を追加する。

--- /etc/services(抜粋) ---
ssh 22/tcp

3) OpenSSHの設定

OpenSSHの設定と、起動方法を設定する。本モデルでは、「1) 運用方針」にしたがってア)からウ)の設定を行う。

ア) OpenSSHの起動スクリプトを作成する
イ) Tcp Wrappersによるアクセス制御を設定する
ウ) OpenSSHの設定
   ・ rootアカウントによるSSH接続を拒否する
   ・ パスワードの設定されていないアカウントによる接続を拒否する
   ・ rhosts認証によるSSH接続を拒否する

ア)OpenSSHの起動スクリプト作成

システムの起動時にOpenSSHが自動的に起動されるようにするため、起動スクリプトを作成する。/etc/rc2.dディレクトリに起動スクリプト「S99sshd」を作成する。スクリプトの内容は以下のとおり。

#!/sbin/sh
case "$1" in
  'start')
    if [ -f /usr/local/sbin/sshd ]; then
      echo 'starting sshd.'
      /usr/local/sbin/sshd &
    fi
  ;;

  'stop')
    /usr/bin/pkill -x -u 0 'sshd'
  ;;

  *)
    echo "Usage: $0 { start | stop }"
    exit 1
  ;;
esac
exit 0

スクリプトファイル作成後、実行権限を与えるため、以下のコマンドを実行する。

# chmod 744 S99sshd

イ) Tcp Wrappersによるアクセス制御の設定

Tcp Wrappersの設定に、SSHへの接続を許可する設定を追加する。本モデルでは、例として「192.168.0.10」からのSSH接続を許可する設定を行う。/etc/hosts.allowと/etc/hosts.denyをそれぞれ以下の内容に変更する。なお、Tcp Wrappersの設定についての詳細は「4.1.2 セキュア化のための設定」の「6) Tcp Wrappersによるアクセス制御」を参照する。

---/etc/hosts.deny---
ALL:ALL

---/etc/hosts.allow---
sshd:192.168.0.10
ALL:127.0.0.1

ウ) OpenSSHの設定

OpenSSHの設定は、/usr/local/etc/sshd_configファイルで行う。本モデルでは以下の設定を行う。

 

前のページへ
目次へ
次のページへ
第4章の目次
第4章の目次
BINDのインストールと設定


Copyright ©   2002 Information-technology Promotion Agency, Japan.  All rights  reserved.