FWTKのインストール記
仕事の関係で、ファイア・ウォールを構築することになりました。予算の関係から、フリーソフトである「FWTK」を使用することになりましたが、海外のフリーソフトであることから資料が乏しく(英語なので)、WEB上で検索しても「これは!」と言う物にめぐり合えませでした。市販の書籍を探しましたが、あの「オライリー」でさえ取り扱っていません。辛うじてインターネットサーバー構築に関する書籍に数ページ載ってる程度です。
そこで、私と同じように「ファイア・ウォールを建てたいのに資料が無くて苦労している人」に少しでもお役に立てればと、構築したときのメモを公開しようかと思います。(2000年5月29日
記)
- ネットワークサービスを提供する(2000/5/25記)
- UNIXを使用してファイアウォールを構築するにあたり、ネットワークサービス(FTPやTELNET,WWWなど)がどのように提供されているかを知っておくことは大切です。この仕組みを知っていないと、適切な設定を行うことが出来ません。
通常、ネットワークサービスはサーバー・クライアントと言う仕組みで提供されます。クライアントは、私達がファイルをダウンロードするためにFTPのソフトを立ち上げたり、ブラウザーを立ち上げたりして何かを「してもらう」方の仕組み(ソフト)のことをさします。逆にサーバーは、「してあげるほう」のことをいいます。
クライアントは、ftpのソフトを立ち上げたりWEBブラウザーを起動したり、私達が「何かをしたい」と思ったときに働き始めます。
一方、サーバーの方が「何かをしてあげる」方法は、2通り有ります。一つはOSが起動したときから「何かをしてあげよう」と待っている方法と、「何かをしてほしい」という要求があるかを見張っていて、その要求があったときだけ仕事をし、要求が無くなったら仕事もやめる方法があります。前者は要求があるだろうと思われるサーバーを前もってすべて立ち上げておかなければならないため、UNIXにとっては余計な負荷となります。一方後者のほうは、見張りを立てるだけなので、前者より負荷は軽くなります。通常UNIXでは、後者の方法を取ります。これをOn-Demand方式といいます(一般的に言われているかは不明ですが)。
戻る
- ON-DEMAND方式とは(2000/6/5)
- On-Demand方式では、ネットワークサービスを提供してほしいという要求が発生したときに、そのサービスを提供します。この「要求が発生したとき」を監視するのが、inetdというプログラムです。inetdは、ネットワークサービスの要求があったとき、次のような動作をします。
@要求されたネットワークサービスがどう言う種類のサービスであるかを/etc/servicesというネットワークサービスの一覧が書かれたファイルから探します。
Aどう言う動作をさせるかは、@で検索したサービスの種類を元に/etc/inetd.confと言うファイルを参照して決定します。
具体的には、/etc/servicesというファイルにはftpとかtelnetと言ったネットワークサービスの名前が書かれており、/etc/inetd.confには「ftpが要求されたらftpのサーバープログラムを起動する」だの「telnetだったらtelnetのサーバープログラムを起動する」と言うことが書かれているのです。
つまり、/etc/inetd.confの内容を書きかえることによって、要求されたサービスに対する動作を変更することが出来るのであり、また、自分が新しくネットワークサービスを作成したときは、/etc/servicesと/etc/inetd.confに登録してやれば、利用することが出来るのです。
戻る
- TCP Wrapperとは(2000/6/6)
- ネットワークサービスの提供の仕組みがわかったところで、セキュリティについて考えてみます。私は、セキュリティの基本は「権利の無い人には使わせない」ということだと考えます。これをネットワークサービスの提供に適用すると、「基本は誰にも使わせない、しかし、例外は有る」と言うことになるでしょうか。
On-Demand方式のところで、要求されたネットワークサービスに併せてそれぞれのサーバープログラム起動すると書きました。この時起動するのがサーバープログラムではなく、起動させていいかどうかを判断するプログラムだったらどうでしょうか。それぞれのサーバープログラムがセキュリティについて考える必要が無く、起動させても言いかどうかを判断するプログラムがセキュリティを考えれば良くなります。
実際のネットワークサービスの提供の方法では、「起動させていいかどうかを判断するプログラム」としてtcpdというプログラムが起動します。このプログラムが起動されると、/etc/host.allowと/etc/host.denyという2つのファイルをみて、この接続は許可されているか拒否されるべきなのかを判断します。もちろん、/etc/host.allowは許可する条件が書かれており、/etc/host.denyには禁止する条件が書かれています。
戻る
- ファイアウォールとは
- FireWallと書きます。直訳すると「防火壁」となります。実際の防火壁は、壁の外からの火が内部に燃え移らないようにすると共に、内部の火が外部に飛び火して延焼しないようにするものです。通信の世界でも同じで、ネットワークの外から勝手に内部にアクセスされたり、逆に内部から勝手に外のWebにアクセスさせないようにする物です。このファイアウォールには、アクセスを制限する方法の違いにより2種類に分類されます。ひとつが、「パケットフィルタリング型ファイアウォール」もうひとつが「アプリケーションフィルタリング型ファイアウォール」です。(実際には、もう一種類あるのですが、まだ勉強不足なので次の機会に)
戻る
- パケットフィルタリング型ファイアウォール
- インターネットを流れるデータには、小包にたとえることが出来ます。送り元のアドレス、届け先のアドレス、データの種類などが書かれたラベルをつけ、それを元にデータを送られます。パケットフィルタリング型ファイアウォールと言うのは、このラベルをみてファイアウォールを通過させるかどうかを決定します。このファイアウォールの良い点は、処理が早いことです。ラベルというのは、小包の決まった場所に付いているので、ラベルの内容を見るのは簡単です。しかし、今問題となっているコンピュータウイルスは、小包の中身が悪さをするのです。
戻る
- アプリケーションフィルタリング型ファイアウォール
- パケットフィルタリング型ファイアウォールでは、コンピュータウイルスに対して効果が薄いことがわかりました。それでは、小包を明けて、中味を調べて問題無ければファイアウォールを通そうとするのが、アプリケーションフィルタリング型ファイアウォールです。これは、小包を開封して中味を確かめるので処理は遅くなりますが、安全度は格段にあがります。但し、小包を明けて中味を確かめるので、中味が何かが分からないと役に立ちません。たとえば、telnetやftpと言った既に知られた中身であれば開封しても大丈夫ですが、新しいアプリケーションが出来ると、それを確かめる仕組みが出来ない限り、このアプリケーションは使用できなくなります。
戻る
since 28/Apr/1999 Copyright Yutaka Uchida