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

FTPサーバーの役割
FTPサーバーはご存じのとおり、コンピュータ間でファイルを転送するためのサーバーです。
FTPのが何のために用意されているのかを書き出してみると、多くのサイトでは次のようになるでしょう。

1特定ユーザーがサイト内のマシン間でファイルを転送するため

2特定ユーザーがインターネットを経由してファイルを転送するため

3不特定多数のユーザーにAnonymous FTPのサービスを提供するため

実践

Linux

セキュリティー講座

1 に関しては、サイト内のマシンでファイルを転送する範囲ならば、リーズナブルな使い方だと思います。ただし、確実に内部の許されたマシンからのアクセスのみを許 すように、tcp̲wrapperを使ってアクセス制御をしてください。tcp̲wrapper を使ってのアクセス制御については、本連載の1999年10月号で説明していますので、ここでの繰り返しの説明は避けます。すでにtcp̲wrapper を設定している場
合には、現在正しく設定されているかをチェッ。
クしてみてください（図 1）

今回はFTPとBINDについて取り上げます。SOHO環境ではFTPとBINDは必須というものではありませんが、よく使われるうえに、セキュリティーホールとなる可能性が高いものです。こうしたサービスを運用する場合には十分な注意を要す

外部からのアクセスは極力避ける

るのはもちろんですが、できれば他のサービスで代用するか、業者に委託できないかといったことを検討してみるのも大事なことです。

2 の「特定ユーザーがインターネットを経由してファイルを転送するため」のケースは、ウ

第 15 回ェブサーバー上のコンテンツを外部に委託している企業や組織に見られる運用方法です。プ

FTPとBINDについてロバイダーのウェブサーバー上にある自分のウェブページを更新する際などにもFTPを使うこ

ソフトウェアコンサルタント すずきひろのぶとがほとんどです。
SOHO 環境などでは、仕事上のファイルのやり取りに使うケースが多いでしょうが、こうした用途でFTPサーバーを使うのは、とかくずさんな運用になりやすいため、あまりおすすめできません。どうしてもFTPサーバーを使う必要があるなら、次のことを厳守してください。

374 INTERNET magazine 2000/4

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

i）FTPのアカウントとパスワードの管理をしっ脆弱性に関する警告が出ています。日本語のかり行う。adminやmanagerといったアカ

情 報 としては「 L i n u x のセキュリティー情

ウント名、あるいは簡単に見つけられるパス報」

FTPのアクセス制御を使う
FTP はtcp̲wrapper によってアクセス制御

Jump 02 が参考になります。

外部に公開して不特定多数がアクセスできる、FTP自身もアクセを受けていますが（図 2）FTP サーバーを持つ場合は、頻繁にFTP の新ス制御の機能を持っています。ここでは、FTPii）接続相手のIP アドレスをtcp̲wrapper のしいセキュリティーホールが発見されていないの設定ファイルである、/etc/ftpaccess、ALLOW のルールに加え、それ以外の接続か情報収集しておく必要が出てきます。常に情/etc/ftphosts、/etc/ftpusersの記述を変えるは認めない。

報収集することは、どんな場合も重要なポインことで可能となる、簡単なFTPのアクセス制御

トです。しかし、似たような機能のサーバーをについて説明します。

ワードを絶対に使わない。また、定期的にパスワードを更新する。

それであっても外部からの接続には「パスワいくつもメンテナンスしていく必要があるといードが盗聴される」という危険性があります。

うことを考慮すると、あまりおすすめできるよ

こうした危険を回避するためにはSSHを利用す

Anonymous FTPを使わないうなものではないと思われます。他のサーバー

Anonymous FTPを許可せず、アカウントをるのがいいでしょう。SSHにはサーバーへの接で問題なく代替できる場合は、なるべく一本化持っているユーザーのみにFTPを許す方法です。

続やファイル転送を暗号化して行う「sftp」として管理の手間をできるだけ少なくするほうが/etc/ftpaccess中のクラスの定義からguestというコマンドがあります（SSH の解説は1999

得策ではないでしょうか。メンテナンスができ。
anonymousを削除します（図 3）

年12月号と2000年1月号を参照して下さい）。

ないなら初めから手をつけないというのも1つのアカウントとホストによる制御
FTP サーバーにアクセスできるアカウントと大切な判断だと言えるでしょう。

Anonymous FTPはウェブサーバーで代用

Jump 01www.cert.org/ftp/cert_advisories/※参照文書

Anonymous FTPは不特定多数にファイルを提供するために用いられる方法ですが、その。
でallowとdenyの定義を行います（図 4）CA-99-13-wuftpd.txt
CA-99-03-FTP-Buffer-Overflows
CA-97.27.FTP_bounce
CA-97.16.ftpd
Jump 02

ホストを指定する方法です。/etc/ftphosts中アカウントによる制御
FTPにアクセスを許可しないアカウントの定義を行う方法です。/etc/ftpusersに、FTPにwww.linux.or.jp/security/

ことだけを考えると、Anonymous FTPはすでに役目を終えた方法なのかもしれません。ファ
イルを提供するということであれば、現在はウェブサーバーで十分だからです。
ミラーサイトを運用するような場合では、以前 はファイルの同 期 をとるためのツールが「ftpmirror」というツールぐらいしかなかった

図1

tcp̲wrapper が 正しく設定されているかの再確認% /usr/sbin/tcpdchk -v
Using network configuration file: /etc/inetd.conf>>> Rule /etc/hosts.allow line 7:
daemons: in.telnetd
clients: LOCAL 192.168.1.10
access:granted

ので、FTPサーバーを使わざる得ないという状況もあったでしょう。しかしファイルの同期にしても、現在ではwget というウェブサーバー上のファイルをまるごとコピーするプログラムがあるので、このミラーサイト問題も大きな障害にはならないと思います。

FTPサーバーは脆弱性の指摘が多い>>> Rule /etc/hosts.allow line 8:
daemons: in.ftpdclients: LOCAL 192.168.1. 内側のネットワークユーザーのみアクセス可
access:granted>>> Rule /etc/hosts.allow line 9:
daemons: ALL
clients: ALL
option:DENY
access:deniedFTPサーバーの問題は、何度となくプログラ
ムのセキュリティーホールの指摘がなされていることです。過去 3年間の「CERT Advisory
ドキュメント」

Jump 01 には、複数のFTP のインターネットマガジン／株式会社インプレスR&D

SSH（エス・エス・エイチ／Secure SHell）：ネットワーク上の通信内容を暗号化するプロトコル。通常のTELNETやFTPといったプロトコルでは、パスワードが暗号化されないままネットワーク上に流れてしまうといった危険性がある。
©1994-2007 Impress R&D

INTERNET magazine 2000/4375

図2

tcp̲wrapperによるアクセス制御/etc/inetd.confに以下の記述があれば、ftpはtcp_wrapperによってアクセス制御がかけられている。

ftp

図3

streamtcp

nowaitroot/usr/sbin/tcpd

in.ftpd -l -a

Anonymous ftpを拒否する/etc/ftpaccessのクラスの定義から、guestとanonymousを削除する
変更後

変更前

class

図4

allreal,guest,anonymous ＊

class

図5

アカウントとホストで制御する/etc/ftphostsに、allowとdenyの定義を追加する

allow hironobu 192.168.＊.＊deny ＊ ＊real ＊

allアカウントで制御する/etc/ftpusersに、ftpでのアクセスを拒否するアカウントを追加する。

rootbin......
nobodyhironobu

1
2

1アカウント名 hironobu に対し192.168.xxx.xxxのIPアドレス（ローカルアドレス）からのアクセスを許可する。

これでhironobu はftp でのアクセスが拒否され2（allowで許可したユーザー以外の）すべてのftpでのアクセスを禁止する。

図6

図7/var/log/xferlog -- ftpの転送ログ# ftpwho
Service class all:
23150 ? S
0:00 ftpd: localhost:hironobu: IDLE
1 users (no maximum)

Mon Jan 17 13:18:30 2000 1 win 121 /tmp/x a _ i r hironobu ftp 0 ＊Tue Jan 25 17:48:27 2000 1 pc 724 /tmp/index.html b _ i r hironobu ftp 0 ＊123 456781 時間 2 転送にかかった時間 3 相手ホスト名 4 ファイルサイズ 5 ファイル名 6 転送タイプなど
7 ユーザー名 8 サービス名など

ftpwhoによる監視※rootで実行するサーバーに潜むバッファーオーバーフローの危険性
サーバーの脆弱性で一番厄介なのがバッファーオーバたらどうなるでしょうか？（2）だ」と思っている人もいるようですが、きちんとバッフーフローの問題です。バッファーオーバーフローとは、不注意なプログラムではよく見られるバグで、通常はァーオーバーフローの対策が取られていないシステムをプログラムの中で入力されるデータ長を考えていなかプログラムが異常終了してしまいますが、意図的に戻ファイアーウォールの内側に入れてしまうと、わざわざったために発生するバグのことです。このバグを悪用すり番地の部分に偽の戻り番地を入れると、実際にその外部から内部へ侵入する入口を作ったようなことになると、外部から任意のプログラムを実行させることが偽戻り番地を実行します。そこで、戻り番地の所にシってしまいます。

できます。たとえばDNSサーバーにバッファーオーバ

ェルコードを入るようにローカル変数領域を溢れさせバッファーオーバーフローの本質的な問題はC やC++ーフローを起こさせるようなデータを送り付け、シェルます。この状態で、この関数を終了するとサーバープの「スタック上にバッファーを取る」といったメカニズを起動させるような手法です。DNSサーバー（BIND）

ログラムがシェルに切り替わってしまいます。

ム自体です。そのメカニズムがある限り、この問題ははroot 権限で実行されますので、侵入＝root 権限詐

このようにパスワードも何もなくてもシステムにログイ存在し続けることになります。

取となります。

ンした状態を作りだす

バッファーオーバーフローは技術的には以下のようなことができます。この攻しくみになります。

撃の恐い所はパケット

CやC++などで書かれたプログラムでは、関数が呼ばのフィルタリング手法をれたときはそのローカル変数はスタック上に確保され使ったファイアーウォーます。関数が終了した時点で、スタック上のローカルルは無効であるという部

変数領域やフレームポインターは開放され、制御の流分です。「ファイアーウ

れは戻り番地の値を見て関数が呼ばれた場所に戻ってォールのシステムさえ入いきます（1）。このローカル変数領域に対し、領域れて、あとはその後ろに以上のサイズのデータを書いてしまうようなことができシステムを隠せば十分

376 INTERNET magazine 2000/4

1
下位アドレス

ローカル変数領域

上位アドレス

フレームポインター

戻り番地

2
ローカル変数領域xxxxxxxxxxxx…

戻り番地

ローカル変数領域xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx…

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

CERT（サート／Computer Emergency Response Team）：インターネットなどのネットワークを利用した不正アクセスへの対策を講じる団体。
日本にはJPCERT/CC（コンピュータ緊急対策センター）がある。
©1994-2007 Impress R&D最 小コストで最 大 限 の 不 正 行 為 対 策

よるアクセスを許可しないアカウントを記述し情報を管理するホスト情報分散データベースだも管理をプロバイダーが替わって管理するサー。
ます（図 5）と言えます。インターネット全体をカバーするビスが提供されている場合が多いようです。

FTPサーバーを運用する場合には、アクセスために巨大な木構造のようなリンク関係を持っ正しくDNSを動かすには、DNS メカニズムログも必ず確認してください。FTPの転送ログています。自分の管理するドメインのホスト情の理解、ホスト定義の記述などの多くの知識がは/var/log/xferlogに記録されています。誰が報をローカルに管理していますが、DNSを通し必要です。またDNS サービスが停止すると、いつ、どんなファイルをどこから転送したのか。て世界中に通知することになります（図 8）

インターネット上からそのドメインを見つけら。また、FTPサーバーの現わかります（図 6）れないという致命的な問題を引き起こします。

www.isc.org/products/BIND/

在の状態を確認するには、「ftpwho」というコですから信頼性の高い長期間安定して動作す。
マンドを使います（図 7）

DNSは管理が難しいるマシン上で動作させる必要があります。そのような理由からDNS は多重にすることが望ま

DNSとBINDとはプロバイダーの提供するドメインのサブドメしいので、プライマリーDNS（主DNS）だけインを利用する場合は、DNS は自分で持たずでなく、別のマシンでセカンダリーDNS（予備Linuxで DNS（ Domain Name System）にプロバイダー側で管理してもらうケースが多のDNS）も用意する必要が出て来ます。

です。

いと言えます。たとえばOCNユーザーの場合、セキュリティー以前の問題としてこのようなBINDはDNSとして必要なソフトウェア群を指OCN のサブドメインとして申請するとxxx-管理は大変です。またDNS がうまく設定されします。実際にDNS として実行されているプ

unet.ocn.ne.jpといった名称（xxxの部分はユて動いていないと、ネットワーク回線は正常でログラムはnamedという名前です。

ーザーが決めることができる）が割り当てられ、もドメイン側へアクセスするのにいろいろな問

この分のDNS管理はOCN側で行います。

題を引き起こしてしまいます。プロバイダー側の機 能 を提 供 するのが B I N D

DNS は主にドメイン名（ホスト名）からIPアドレスを検索するという重要な役目のためにxxx.co.jp（xxx はユーザーが取得したドメとしても慣れないユーザーに任せるより自分の使われる機能です。DNS はホスト名に関するイン名が入ります）といった独自のドメインで所で管理したほうがサポートを考えるとスムーズに問題が解決するので積極的にDNS の肩代わりを提供しているものと思われます。

fr

図8

BINDもよく脆弱性が発見されるドメインのしくみ

D N S サーバー環 境 を提 供 する B I N D（named）はセキュリティーホールが見つかる

jpukと深刻な問題を引き起こしやすいソフトウェアです。その見つかる頻度は低いとは言え、外部

coneに直接接していること、そしてインターネット上の重要な管理ソフトであるということから、

acor
impress

影響は大きいと言えるでしょう。そのため常にBIND のセキュリティー情報に目を光らせておく必要があります。これらを考えるとプロバイ日本（JPNIC）が管理するドメイン

ダーでDNSサービスをしてくれるのなら、そこに依頼して管理の手間を少しでも少なくする方wwwが得策ではないでしょうか。どうしても自分のforest

サイト上で管理する必要がある時のみ自分で持internet
インプレスが管理する
ドメイン
www
ftpつのがいいでしょう。
次回は、境界ネットとインターネットを接続するルーターの設定についてお話したいと思います。

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

BIND（バインド／Berkeley Internet Name Domain）：カリフォルニア大学バークレー校（UCB）で開発されたDNSサービスのためのプログラムの名称。
インターネットで用いられているDNSサービスの多くは、BINDかBINDを元に開発されたプログラムで運用されている。
©1994-2007 Impress R&D

INTERNET magazine 2000/4377

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この 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.