最 小コストで最 大 限 の 不 正 行 為 対 策

SSHとはどんなものか？
rloginやrshはリモートホストへログインしたり、あるいはリモートでプログラムを実行したりするのに使 われるコマンド類 です。
Linuxユーザーにとっては身近なコマンドで、日頃からよく使われていると思います。ポピュラーである一方、これらのコマンドが認証などに対して甘い面を持っていることはあまり認識されていません。
また、rloginやtelnetのようにリモートログインをするツールでは、どうしてもネットワーク越しにパスワードを入力する必要がありま

実
践

Linux

すが、パスワードが平文の形でネットワークを流れるのはとても危険なことです。
このような問題を解決するのがSSHです。
小規模SOHOで自分（あるいは非常に信用がおける利用者）以外に利用者はいないし、外部からのアクセスはtcp̲wrapperなどでrloginやtelnetを保護しているので大丈夫

セキュリティー講座だと言われる方も多いかと思います。それはSHell）
に関して説明します。これまで紹介してきたツールとは違い、SSHはLinuxSSHの種類

それで一理あるでしょう。しかし、今すぐ使わないとしても、セキュリティーの周辺知識としてSSHを知っているのといないのでは大きな違いがあると思います。

今回は暗号技術を使って通信経路を保護するリモートシェル SSH（Secureの標準ディストリビューションのパッケージには含まれていません。そのため、SSHを使うには別途、開発環境を持ったLinuxマシンを用意して自分自身の手でコンパイルし、サーバーマシンにインストールする必要があります。今回はインストール方法も紹介します。

入手できるSSHは大きく分けて以下の3つになります。
・SSHバージョン1

第11回

・SSHバージョン2
・LSH

リモートシェルSSHの使い方

SSHバージョン1はssh-1.2.27が（この原稿を書いている時点では）最新版です。このソフトウェアコンサルタント すずきひろのぶ

バージョン1系列は新たな開発をストップしたバージョンで、もっとも安定しています。と
きどき、特定OS固有のセキュリティーホールが発見されたときに修正が施され、リビジョン番号が上がるぐらいです。
SSHバージョン2は開発中のバージョンでssh-2.0.13が（この原稿を書いている時点で334 INTERNET magazine 1999/12

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

は）最新版です。今後はこちらのバージョンとは言えません。このため、LSHを試すのはが中心となって改良されていきます。

もう少し様子を見てからでも遅くはないでしこれらのソースファイルは次のURLから入ょう。最新版は手できます。

ftp://ftp.cs.hut.fi/pub/ssh/

Jump 02

開発環境マシン上へのインストールから入手できます。
まずは開発環境マシンでのコンパイルとイ

Jump 01

ring.etl.go.jp

Jump 02www.lysator.liu.se/~nisse/archive/

ンストールの手 順 を説 明 します。 s s h 1.2.27.tar.gzファイルを展開した後、コンフSSH1をコンパイルする

また国 内 のr i n g サーバープロジェクト
Jump 01ィグレーションを実行させ、コンパイルを行って、開発環境マシン上にインストールしま

でもミラーコピーされているので、そちらからも入手可能です。

今回はもっともポピュラーなSSHバージョす（リスト1、Step 1〜Step 5）。
次にインストールしたSSH1をターゲットでン1（以下、SSH1）を利用します。日本語のSSHのディレクトリー

ドキュメントも豊富です。下記のURL

ftp://ring.etl.go.jp/pub/net/ssh/

Jump 03あるサーバーにコピーします。手順は、まず開発環境マシンの/usr/local/ssh1をtarでアが参考になるでしょう。

ssh-1.2.27もssh-2.0.13も、個人的な使開発環境を用意しているLinuxマシン（以ーカイブしてサーバー（マシン名：server）用もしくは学術的な目的以外では利用できな下、開発環境マシン）に、ftpサーバーからへftpで転送します。次に/etc/以下にある2ついというライセンス条項が入っています。キ

ssh-1.2.27.tar.gzをダウンロードしてきたとのSSH1用のコンフィグレーションをftpで転チンとライセンスの注意書きをチェックしていうところから話を始めます（注意：本連載送します（リスト1、Step 6〜Step 8）
。

ください。

での前提としてセキュリティー上の問題からコピーが終わったところでサーバーマシンにサーバーマシンには開発環境がインストールrootでログインし、必要なファイルを必要なされていません）。

場所へ展開、コピーします（リスト1、Step

残りの1つはGPLライセンス下での実装であるLSHです。原稿を書いている時点での最9〜Step 11）。

新版はlsh-0.1.12です。こちらのほうは開発

今回のインストールでは、専用のディレクが始まって間もないので、非常に短いスパントリー/usr/local/ssh1を使います。そして、で改良が続けられています。ただ、まだ登場まずは開発環境マシンにSSH1をインストーして時間がたっていないだけに、十分にバグルし、それをコピーする形でサーバーにインスが取れていないおそれがあります。認証などトールします。なお、開発環境マシン（マシ

次にSSH1で使用するサーバーの鍵ペアのに新しいメカニズムを採用しているので、ン名：linuxpc）は接続の際のクライアントファイルを作ります。開発環境マシン上では、SSHに慣れている人でも戸惑うかもしれませとしてテストに使用します。

make installの と き /etc/ssh̲host̲keyとん。また、利用ドキュメントも充実している

Jump 03

SSH1の鍵を作る/etc/ssh̲host̲key.pubの中にRSAの秘密

www.vacia.is.tohoku.ac.jp/~s-yamane/FAQ/ssh

鍵と公開鍵が自動的に作られます。これらは後ほどマシンの自己証明などに使います。
一方、サーバー上ではインストール作業を図1

マニュアルで行っているので、この鍵ペアをサイトのネットワーク構成図作成する作業も自分自身の手で行わなければネットワークアドレス

サイト

192.168.0.0
192.168.0.1

ルーター（専用機）

境界
ネッ
ト

なりません（リスト1、Step 12）
。

内部
ネット

Server
192.168.0.10

sshdサーバーの動作確認

プロバイダー

続いて、サーバー上で/usr/local/ssh1/

ネットワークアドレス
192.168.1.0

sbin/sshdを実行します。以降、sshdがデ192.168.1.X
192.168.0.14

eth0

暗号通信ーモンとして動作します（リスト1、Step

192.168.1.113）。

eth1
PCルーターlinuxPC

ブロードキャストアドレス

ブロードキャストアドレス

192.168.0.255

192.168.1.255

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1999/12

335

リスト1

クライアントから接続できるか？

SSHをサーバーにインストールする手順

開発環境マシンでのコンパイルとインストール
Step 1: ssh-1.2.27.tar.gzをtarで展開する。
% tar zxf ssh-1.2.27.tar.gz

開発環境マシンに戻ってサーバーにコマンドsshでログインできるかどうかをチェックし
Step 2: カレントディレクトリーをssh-1.2.27に移動する。てみます（リスト1、Step 14）。
最初のログインのときに「Host key not% cd ssh-1.2.27

found from the list of known hosts.」（既知ホストのリストからはホストの鍵がみつからない）と警告が出た後、SSHは「Are you sureyouwanttocontinueconnecting(yes/no)?」（接続を続行するか yes/no）とStep 3: ./configureを実行する（2〜5分ほどかかります）。
% ./configure --prefix=/usr/local/ssh1
creating cache ./config.cache....
creating mpz/tests/Makefile

尋ねてきます。yesと答えると、リストにマシン serverが追加されます。

マシン serverのsshdは先ほど作成したホスト固有の（秘密鍵とペアになっている）公開鍵を持っています。SSHはサーバーに接Step 4: makeを実行する（数分から十数分ほどかかります）。
% makegcc -pipe -c -I. -I./gmp-2.0.2-ssh-2 -I./zlib-1.0.4 ....
......
gcc -pipe -o ssh-askpass ssh-askpass.o ... -L/usr/local/lib-lutil

続するときに、サーバー側から認証のための署名付きデータを受け取ります。クライアン
トのSSHはサーバーの公開鍵を使って、接続先が正しいかどうかチェックします。

Step 5: 開発環境マシン上にインストールする。
% su
Password: <-----------------------------------rootのパスワードを入力# make installumask 022; if test '!' -d /usr/local/ssh1; then \mkdir /usr/local/ssh1; fi; \....
/usr/local/ssh1/man/man8/`echo $p | sed 's,x,x,'`.8; fi;\done

SSHを使えば「なりすまし」を防げる
コンピュータのIPネットワーク接続はIPアドレスを区別することによって相手に接続していますが、これを偽るのは非常に簡単です。
送受信するIPパケットを途中で横取りするなどといった高度な技術を使った方法など必要ありません。ネットワーク接続しているマシインストールしたSSHのサーバーへのコピー
Step 6: /usr/local/ssh1をtarコマンドでアーカイブする。
# tar zcvfP /tmp/ssh1.tar.gz /usr/local/ssh1/usr/local/ssh1/....
/usr/local/ssh1/man/man8/sshd.8

ンのネットワークケーブルを抜き、別の偽マシンにつなぎ替えるだけで十分です。もちろんSOHOでは目の届く所にマシンがあるのでこのような心配はさほどありません。しかし、企業や大学のように何十台、何百台という数でマシンが稼働していて、接続先サーバーがいったいどこに置かれているのかなど皆目見当もつかないような場合には、ネットワークケーブルを付け替えるといった単純な方法で「サーバーのなりすまし」が可能です。
公開鍵による署名を使って相手を確認すれ

Step 7: 一般ユーザーに戻りサーバーマシンへftpする。
（デフォルトではROOTでのftpアクセスを許可していないため）% cd /tmp% ftp server
Name (server:hironobu):
331 Password required for hironobu.
....
ftp> cd /tmp
250 CWD command successful.
ftp> put ssh1.tar.gz....
858139 bytes sent in 2.77 secs (3e+02 Kbytes/sec)
ftp> quit

ば、このような「なりすまし」を防げます。

336 INTERNET magazine 1999/12

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D最 小コストで最 大 限 の 不 正 行 為 対 策

そして、公開鍵を使用してサーバーが正しい
Step 8: 同様の方法で/etc/sshd_configと/etc/ssh_configをftpする。
% cd /etc% ftp server
ftp> cd /tmp...
ftp> put sshd_config...
ftp> put ssh_config...

ものであるかどうかを一度確認できれば、そのサーバー側の公開鍵が更新されない（破棄されない）限り、この認証は有効になります。
サーバーの公開鍵はデフォルトでは˜/.ssh/known̲hostsに格納されます。同時に同じディレクトリーにrandom̲seedという名前の乱数用初期値ファイルも作成されます。
ここまでで、基本的なインストールは成功

開発環境マシンからコピーしたファイルをサーバー上で展開、コピーです。rloginやtelnetに比べ、より安全な

Step 9: サーバーマシンにROOTでログインする。

SSHを使ってサーバーにログインできるようになりました。
Step 10:

tarを展開する。
# cd /tmp# tar zxvfPp ssh1.tar.gz/usr/local/ssh1/...
/usr/local/ssh1/man/man8/sshd.8#

次回はSSHの続きをサーバーにSSHをインストールできたところで誌面が尽きてしまいましたので、来月はSSHの使い方の続きを紹介します。
予定では、ブート時に自動的にsshdを立Step 11: /tmp/ssh_configと/tmp/sshd_configを/etcへコピーする。

ち上げるスクリプトの書き方、ユーザー自身# cp /tmp/ssh_config /etc
# cp /tmp/sshd_config /etcの公開鍵を作って認証に使う方法、SSHを使ってパスワードなしでサーバーアクセスを行う方法、さらには、SSHエージェントの使いサーバーのための鍵のペアの作成方などを紹介します。

Step 12:# cd /usr/local/ssh1/sbin# ./ssh-keygen -b 1024 -f /etc/ssh_host_key -N ''Initializing random number generator...
Your identification has been saved in /etc/ssh_host_key.
Your public key is:1024 35 15717008874416160963310712598288467670367117093040494900...
990505396636047547816183 root@server.h2np.net
Your public key has been saved in /etc/ssh_host_key.pub

その後、誌面が許せば、インターネット側からのVPN（Virtual Private Network）のようにアクセスする方法や、ファイアウォールを経由してのIPフォワーディングに関しても説明するつもりです。

サーバー上でsshdを実行
Step 13:# /usr/local/ssh1/sbin/sshd

開発環境マシンからサーバーへsshを使ってログイン
Step 14:% /usr/local/ssh1/bin/ssh server
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes <-yesと入力
Host 'server' added to the list of known hosts.
Creating random seed file ~/.ssh/random_seed. This may take a while.
hironobu@server's password: <--------------------------パスワード入力
Last login: Mon Oct 4 17:22:48 1999 from linuxpc
No mail.
%

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

INTERNET magazine 1999/12337

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.