diff --git a/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml b/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml index 6555c915c4..c200d2a6fe 100644 --- a/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml +++ b/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml @@ -1864,7 +1864,8 @@ rfcomm_sppd[94692]: Starting on /dev/ttyp6... ファイアウォールとしてブリッジを利用しようとしている場合には IPFIREWALL オプションも指定する必要があります。 ブリッジをファイアウォールとして設定する際の一般的な情報に関しては、 - を参照してください。 + ファイアウォールの章 + を参照してください。 IP 以外のパケット (ARP など) がブリッジを通過するようにするためには、 diff --git a/ja_JP.eucJP/books/handbook/security/chapter.xml b/ja_JP.eucJP/books/handbook/security/chapter.xml index e67328fe81..62eb055396 100644 --- a/ja_JP.eucJP/books/handbook/security/chapter.xml +++ b/ja_JP.eucJP/books/handbook/security/chapter.xml @@ -3,7 +3,7 @@ The FreeBSD Documentation Project The FreeBSD Japanese Documentation Project - Original revision: r22608 + Original revision: r23130 $FreeBSD$ --> @@ -33,7 +33,7 @@ あなたのデータ、知的財産、時間、その他を、 ハッカーやその同類から守るためには欠かせません。 - FreeBSD は、 + &os; は、 システムとネットワークの整合性と安全性を確実にする仕組みと一連のユーティリティを提供しています。 この章を読むと、以下のことがわかります。 @@ -68,10 +68,6 @@ Kerberos5 の設定方法 - - IPFW でファイアウォールを構築する方法 - - IPsec および FreeBSD/&windows; コンピュータの間で VPN の設定方法 @@ -101,6 +97,10 @@ + @@ -311,10 +311,10 @@ - FreeBSD の安全性を高める + &os; の安全性を高める セキュリティ - FreeBSD の安全性を高める + &os; の安全性を高める @@ -334,7 +334,7 @@ 以下の節では、本章の前節 - でとりあげた FreeBSD システムの安全性を高める方法について + でとりあげた &os; システムの安全性を高める方法について 述べます。 @@ -555,7 +555,7 @@ してないマシンを稼働させているのであれば、それらのサービスを停 止させて下さい! - FreeBSD では、今では ntalkd, + &os; では、今では ntalkd, comsat, finger は砂場で実行させることがデフォ ルトになっています。次に砂場で実行させるべきプログラムの候補と @@ -667,7 +667,7 @@ の権限を破ると、攻撃者はほとんど何でもできますが、特に重宝さ れる特定の事柄もいくつかあります。たとえば、最近のカーネルは、組 み込みのパケット覗き見デバイス (packet sniffing device) ドライ - バを備えているものがほとんどです。FreeBSD では + バを備えているものがほとんどです。&os; では bpf デバイスと呼ばれています。侵入者 は普通、侵入済みのマシンでパケット覗き見プログラムを実行させよ うと試みます。侵入者にわざわざそういう機能を提供する必要はない @@ -926,7 +926,7 @@ 出てきたり、新しい内部サービスを追加したのにファイアウォールの 更新を忘れたりする可能性がよく出てきます。ファイアウォール上の 大きい番号のポートを開けておくことにより、小さい番号のポートを - 危険に晒すことなく受容的な動作を許すことができます。FreeBSD で + 危険に晒すことなく受容的な動作を許すことができます。&os; で は、net.inet.ip.portrange への sysctl (sysctl -a | fgrep portrange) をいろいろ使用することで、動的バインドに使用される @@ -962,7 +962,7 @@ まうようにすることができます。mbuf を消費し尽くさせることによ り、この種の攻撃でサーバをクラッシュさせることも可能です。サー バが生成した ICMP 応答を十分速く送信できない場合、とくにひどい - ことになります。FreeBSD カーネルには、この種の攻撃の効果を抑制する + ことになります。&os; カーネルには、この種の攻撃の効果を抑制する と呼ばれる新しいカーネルコンパイルオプション があります。踏み台攻撃の 3 つめの主要なクラスに属する攻撃は、 @@ -1104,13 +1104,13 @@ に基づいたものだけでした。このことは米国に住んでいるユーザにとって は大して問題ではありませんでしたが、DES のソースコードを米国外に 輸出することはできないという問題がありました。そのために、 - FreeBSD は、米国の法律を守ることと、未だに DES を使っていた他の + &os; は、米国の法律を守ることと、未だに DES を使っていた他の &unix; 一族との互換性を保つこととを両立する方法を探し出す必要がありました。 その解決方法は、米国のユーザは DES のライブラリをインストー ルして DES を使用できるが、米国外のユーザは国外に輸出可能な他の ひとつの暗号化方式を使用することができる、というように暗号化ライ - ブラリを分割することでした。これが FreeBSD がデフォルトの暗号化 + ブラリを分割することでした。これが &os; がデフォルトの暗号化 方式として MD5 を使うようになったいきさつです。MD5 は DES よりも より安全であると考えられているため、DES をインストールする一番の 理由は互換性を保つためといえます。 @@ -1118,15 +1118,15 @@ 暗号化機構を理解する - FreeBSD 4.4 の前までは、libcrypt.a + &os; 4.4 の前までは、libcrypt.a は暗号化に使われるライブラリへのシンボリックリンクでした。 - FreeBSD 4.4 で libcrypt.a + &os; 4.4 で libcrypt.a は設定可能なパスワード認証ハッシュライブラリを提供するようになりました。 現在のところ、このライブラリは DES, MD5 および Blowfish - ハッシュ関数に対応しています。デフォルトでは、FreeBSD + ハッシュ関数に対応しています。デフォルトでは、&os; はパスワードの暗号化に MD5 を利用します。 - FreeBSD がどの暗号化方式を使うようにセットアップされている + &os; がどの暗号化方式を使うようにセットアップされている かを判断するのは簡単です。 /etc/master.passwd ファイルの中の暗号化さ れたパスワードを調べてみるのが一つの方法です。MD5 ハッシュで暗 @@ -1163,13 +1163,13 @@ S/Key は一方向ハッシュ関数を基にしたワンタイムパスワード方式 - です。FreeBSD では、互換性のために MD4 ハッシュを用いていますが + です。&os; では、互換性のために MD4 ハッシュを用いていますが 他のシステムでは MD5 や DES-MAC を用いてます。S/Key は、バージョ - ン1.1.5 以降のすべての FreeBSD に含まれていますし、FreeBSD 以外 + ン1.1.5 以降のすべての &os; に含まれていますし、&os; 以外 の数多くのシステムの上でも利用されています。S/Key は Bell Communications Research, Inc. の登録商標です。 - FreeBSD バージョン 5.0 以降では、S/Key + &os; バージョン 5.0 以降では、S/Key は機能的に同等な OPIE (One-time Passwords In Everything) で置き換えられました。OPIE はデフォルトでは MD5 ハッシュを使用します。 @@ -1277,7 +1277,8 @@ 信頼できる通信路での初期化 - 信頼できる通信路 (たとえばあるマシンのコンソール画面や、ssh + 信頼できる通信路 (たとえばあるマシンのコンソール画面や、 + ssh を使っている時など) を利用しているときに、S/Key を初めて初期化 すること、S/Key の秘密のパスフレーズを変更すること、またはシー ドを変更すること、をおこなうことができます。そのためには、まず @@ -1556,7 +1557,7 @@ Enter secret pass phrase: <secret password> 絶対にこのマニュアルを読んでください。 もし /etc/skey.access - ファイルが存在しないならば (FreeBSD 4.X + ファイルが存在しないならば (&os; 4.X のデフォルト状態ではそうです)、すべてのユーザが &unix; パスワードを利用することができます。 逆に、もしファイルが存在するならば、 @@ -1602,7 +1603,7 @@ permit port ttyd0 OPIE は S/Key が行うような、ログインセッションの IP アドレスをベースとした &unix; パスワードの使用を制限できます。 関連ファイルは、/etc/opieaccess です。 - FreeBSD 5.0 以降のシステムではデオフォルトで用意されています。 + &os; 5.0 以降のシステムではデオフォルトで用意されています。 このファイルの詳細や、 このファイルを使用する際に考慮すべきセキュリィについては &man.opieaccess.5; を確認してください。 @@ -1884,7 +1885,7 @@ sendmail : PARANOID : deny そしてこれまでより制御 できるようになります。 以下の文章は、 - FreeBSD用として配布されているKerberosをセットアップ + &os; 用として配布されている Kerberos をセットアップ する際のガイドとして読むことができます。しかし、 完全な説明が必要な場合には、マニュアルページを読んだ方がよい でしょう。 @@ -1898,7 +1899,7 @@ sendmail : PARANOID : deny インストール Kerberos は選択が任意な &os; のコンポーネントです。 - もっとも簡単なインストール方法は、FreeBSD + もっとも簡単なインストール方法は、&os; のインストール時に sysinstallkrb4 または krb5 配布物を選択することです。 @@ -2572,6 +2573,7 @@ kerberos_stash="YES" [realms] EXAMPLE.ORG = { kdc = kerberos.example.org + admin_server = kerberos.example.org } [domain_realm] .example.org = EXAMPLE.ORG @@ -2603,6 +2605,15 @@ _kpasswd._udp IN SRV 01 00 464 kerberos.example.org. _kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. _kerberos IN TXT EXAMPLE.ORG. + + クライアントが、 + Kerberos サービスを見つけるためには、 + /etc/krb5.conf を完全に設定するか、 + /etc/krb5.conf を最低限に設定し、 + さらに DNS サーバを適切に設定する + 必要 があります。 + + 次に Kerberos データベースを作成します。 このデータベースには、 マスター鍵により暗号化されたすべてのプリンシパルの鍵があります。 @@ -3264,1017 +3275,6 @@ jdoe@example.org - - ファイアウォール - - GaryPalmer寄稿: - AlexNash - - - - - ファイアウォール - - セキュリティ - ファイアウォール - - - 訳: &a.jp.saeki;. - 11 November 1996. - - ファイアウォールは、 - インターネットに参加している人はもちろんのこと、 - プライベートネットワークのセキュリティ向上のための - アプリケーションを 探している人にとっても、 - ますます興味深くなりつつある分野です。 - このセクションではファイアウォールとは何か、 - ファイアウォールの使用法、 - そしてファイアウォールを構築するために FreeBSD のカーネルで - 提供されているファシリティ (機能) - の使用法について説明したいと思います。 - - - 社内のネットワークと 巨大かつ信頼のおけない - インターネットとの間にファイアウォールを構築することで - セキュリティ上のすべての問題が解決できると考える人がいます。 - ファイアウォールはセキュリティ上の問題を - 解決する助けになる場合もありますが、 - 充分な設定がなされていないファイアウォールは、 - まったくファイアウォールを - 持たない場合よりもセキュリティ上の危険を増大させてしまいます。 - ファイアウォールにできることは、 - あなたのシステムにもう一つのセキュリティ層を - 追加することだけで、 - 本気でアタックをしかけてくるクラッカーが内部ネットワークに - 侵入するのを妨げることはできません。 - ファイアウォールを侵入不可能と過信して - 内部のセキュリティをおろそかにすることは、 - 単にクラッカーの仕事を少し簡単にするだけでしか - ありません。 - - - - ファイアウォールとは何か ? - - 現在インターネットで普通に使用されている - ファイアウォールには 二つの異なるタイプがあります。一つは、 - 厳密には パケットフィルタリングルータ - と呼ばれるタイプのものです。 - このタイプのファイアウォールはマルチホームマシンで利用され、 - ある規則にしたがってパケットを転送したりブロックしたりするものです。 - マルチホームマシンとは、 - 複数のネットワークインタフェースを持つコンピュータのことです。 - もう一つは、 - proxy (代理) サーバ - として知られているタイプのものです。これは、 - おそらくはマルチホームのホストマシン上で、 - カーネルによるパケット転送を 禁止して、 - デーモンにより認証の提供とパケットの転送とを - おこなうものです。 - - 二つのタイプのファイアウォールを組み合わせて使用して、 - 特定のマシン ( 要塞ホスト と呼ばれる) - だけが パケットフィルタリングルータを通して内部ネットワークへ - パケットを送ることができるよう設定している - サイトがしばしば存在します。proxy (代理) - サービスは通常の認証機構よりもセキュリティを - 強化してある 要塞ホストで動作させます。 - - FreeBSD は (IPFW として知られる) - カーネルパケットフィルタ込みで提供されています。 - この節の残りでは、このフィルタについて集中して説明します。 - サードパーティから提供されるソフトウェアを使用することにより、 - Proxy サーバを FreeBSD 上に構築することができます。 - しかし、現在入手可能な - proxy サーバはたいへんバラエティに富んでいるので、 - この節でそれらすべてをカバーすることはできません。 - - - パケットフィルタリングルータ - - ルータとは、二つまたはそれ以上のネットワークの間で - パケットの転送をおこなうマシンのことです。 - パケットフィルタリングルータは、 - 一つ一つのパケットをルールリストと比較して、 - 転送するかしないかを決めるようにプログラミングされています。 - 最近の IP ルーティングソフトウェアのほとんどは、 - 内部にパケットフィルタリング機能を持っていて、 - デフォルトではすべてのパケットを転送するようになっています。 - このフィルタを有効にするためには、 - ルールを定義する必要があります。 - - パケットを通すべきか通すべきでないかを決めるために、 - ファイアウォールは、 - ルールリストからパケットヘッダの内容にマッチするルールがないかどうかを調べます。 - マッチするルールが見つかると、 - ルールアクションが実行されます。ルールアクションには、 - パケットを捨てる、パケットを転送する、 - またはパケットの発信元に ICMP - メッセージを送り返すというものがあります。 - ルールの検索は先頭から順番におこなわれ、 - 通常は最初にマッチしたものだけが 適用されます。そのため、 - このルールリストはルールチェーン - と呼ばれることもあります。 - - パケットマッチングの基準は使用するソフトウェアに - よって異なりますが、通常はパケットの発信元 IP アドレス、 - 宛先 IP アドレス、発信元ポート番号、宛先ポート番号 - (ポート番号はポートをサポートするプロトコルの場合のみ)、 - パケットタイプ (UDP, TCP, ICMP など) - に基づくルールを指定することができます。 - - - - Proxy サーバ - - Proxy サーバとは通常のシステムデーモン - (telnetd, - ftpd - など) を 特別なサーバで置き換えたマシンのことです。 - これらのサーバは、 - 通常は中継をおこなって特定方向への接続だけを許すため、 - proxy サーバ と呼ばれます。(たとえば) - proxy telnet - サーバをファイアウォールホストで走らせておきます。 - 外部からユーザがファイアウォールに対して - telnet - を実行すると、proxy telnet サーバが応答して、 - 何らかの認証機構を実行します。これを通過した後で、 - 内部ネットワークへのアクセスがおこなえるように なるのです。 - (内部ネットワークからの信号は proxy - サーバがかわりに受け取り、外へ向けて送り出します)。 - - Proxy サーバは通常、 - 普通のサーバより堅固に構築されていて、しばしば - 使い捨てパスワードシステムなどを含む、 - 多様な認証機構を持っています。 - 使い捨てパスワードシステムとは、 - どういうものなのでしょうか。仮に誰かが何らかの方法で、 - あなたが使用したパスワードを手に入れたとします。しかし、 - 最初に使用した直後に、 - そのパスワードは既に無効になっているのです。ですから、 - そのパスワードをもう一度使用したとしても、あなたのシステムへ - アクセスすることはできないというわけです。 - これらのサーバは中継をおこなうだけで、 - 実際のところサーバホスト自身への - アクセスをユーザに許してはいません。そのため、 - 何者かがセキュリティシステムに - 侵入用の裏口を取り付けることは、 - より困難になっています。 - - proxy サーバはアクセス制限の方法をいくつも持っていて、 - 特定のホストだけがサーバへのアクセス権を得ることができるようになっていることがあります。 - そして、 - 管理者は目的のマシンと通信できるユーザを制限するように設定できます。 - もう一度言いますが、 - どんなファシリティ (機能) が使えるかは、どんな proxy - サービスをおこなうソフトウェアを選ぶかに大きく - 依存します。 - - - - - IPFW で何ができるか - ipfw - - FreeBSD とともに配布されている IPFW は、 - カーネル内部にあってパケットのフィルタリングとアカウンティングをおこなうシステムであり、 - ユーザ側のコントロールユーティリティである &man.ipfw.8; - を含んでいます。 - ルーティングの決定をおこなう際に、これらは互いに協力して、 - カーネルで使用されるルールを定義したり、 - 使用されているルールを問い合わせたりすることができます。 - - IPFW は互いに関連する二つの部分からなっています。 - ファイアウォールセクションはパケットフィルタリングをおこないます。 - また、IP アカウンティングセクションは、 - ファイアウォールセクションのものと似たルールに基づいてルータの使用を追跡します。 - これにより、たとえば、 - 管理者は特定のマシンからルータへのトラフィックがどのくらい発生しているかを調べたり、 - どれだけの WWW - トラフィックがフォワードされているかを知ることができます。 - - IPFW は、 - ルータではないマシンにおいても入出力コネクションの - パケットフィルタリングのために使用することができるように設計されています。 - これは一般的な IPFW の使用法とは異なる特別な使い方ですが、 - こういった状況でも同じコマンドとテクニックが使用されます。 - - - - FreeBSD で IPFW を有効にする - - ipfw - 有効化 - - - IPFW システムの中心となる部分はカーネル内部にあります。 - そのため、どのファシリティ (機能) を必要とするかによって、 - 1 つまたは複数のオプションをカーネルコンフィグレーションファイルに追加し、 - カーネルを再コンパイルする必要があるでしょう。 - カーネルの再コンパイル方法の詳細については、 - 「カーネルのコンフィグレーション」() - をご覧ください。 - - - IPFW のデフォルトのポリシーは deny ip from any to - any です。 - スタートアップ時にアクセスを許可するようなルールを追加していないと、 - サーバがファイアウォールの有効なカーネルで再起動した後、 - 自分自身をロックアウト してしまいます。 - この機能を初めて使うときには、 - /etc/rc.conf ファイルにおいて、 - firewall_type=open と設定すると良いでしょう。 - 新しいカーネルの機能が適切に機能していることを確認後、 - /etc/rc.firewall - のファイアウォールのルールを設定してください。 - もしものときのために、 - 最初のファイアウォールの設定を ssh - ではなく、ローカルのコンソールで行うと良いでしょう。 - 他の方法は、カーネルを IPFIREWALL および - IPFIREWALL_DEFAULT_TO_ACCEPT - オプションで構築することです。 - これにより IPFW のデフォルトルールは、 - allow ip from any to any となり、 - ロックアウトの可能性が低くなります。 - - - 現在、IPFW - に関係するカーネルコンフィグレーションオプションは - 4 つあります。 - - - options IPFIREWALL - - パケットフィルタリングのためのコードを - カーネルに組み込みます。 - - - - - options IPFIREWALL_VERBOSE - - &man.syslogd.8; を通じて - パケットのログを取るためのコードを有効にします。 - フィルタルールでパケットのログを取るように指定しても、 - このオプションが指定されていなければ、 - ログを取ることはできません。 - - - - - options IPFIREWALL_VERBOSE_LIMIT=10 - - &man.syslogd.8; を通じて - ログを取るパケットの数をエントリ毎に制限します。 - 敵対的な環境においてファイアウォールの - 動作のログを取りたいけれど、 - syslog の洪水によるサービス拒絶攻撃に対し - 無防備でありたくないという場合に、 - このオプションを使用したいと思うことが - あるかもしれません。 - - チェーンエントリのログが指定された制限数に達すると、 - そのエントリに関するログ取りは停止されます。 - ログ取りを再開するには、&man.ipfw.8; - ユーティリティを使用して - 関連するカウンタをリセットする必要があります。 - - &prompt.root; ipfw zero 4500 - - 4500 とは、 - ログ取りを続行したいチェーンエントリの番号です。 - - - - - options IPFIREWALL_DEFAULT_TO_ACCEPT - - - このオプションは、デフォルトのルールを deny - から allow へと変更します。 - このオプションを指定することで、 - カーネルに IPFIREWALL - のサポートを組み込んだ後、ファイアウォールを設定していなくとも、 - 自分自身をロックしてしまうことを避けられます。 - ある特定の問題をフィルタリングするために - &man.ipfw.8; を良く使うのであれば、 - このオプションは非常に有用です。 - このオプションは、ファイアウォールを開き、 - ファイアウォールの振る舞いをこれまでと変えてしまうので、 - 注意深く使ってください。 - - - - - - 以前のバージョンの FreeBSD は - IPFIREWALL_ACCT というオプションを - 持っていました。しかし、 - ファイアウォールコードがアカウンティングファシリティ (機能) を - 自動的に含むようになったため、 - 現在では使用されることはなくなっています。 - - - - IPFW の設定 - - ipfw - 設定 - - - IPFW ソフトウェアの設定は &man.ipfw.8; - ユーティリティを通じておこないます。 - このコマンドの構文は非常に複雑に見えますが、 - 一旦その構造を理解すれば比較的単純です。 - - このユーティリティでは今のところ四つの異なる - コマンドカテゴリが 使用されています: それは追加 / 削除、表示、 - フラッシュ、およびクリアです。追加 / - 削除はパケットの受け入れ、拒絶、ログ取りをどのようにおこなうか - というルールを構築するのに使用します。表示はルールリスト - (またはチェーン) と (アカウンティング用) パケットカウンタの - 内容を調べるのに使用します。 - フラッシュはチェーンからすべてのエントリを - 取り除くのに使用します。 - クリアは一つまたはそれ以上のアカウンティングエントリを - ゼロにするのに 使用します。 - - - IPFW ルールの変更 - - この形式での使用法は: - - ipfw - -N - コマンド - index - アクション - log - プロトコル - アドレス - オプション - - - - この形式で使用する際に有効なフラグは一つだけです。 - - - -N - - アドレスやサービス名を - 文字列に変換して表示します。 - - - - - コマンド - は一意である限り短縮可能です。有効な コマンド - - - - add - - ファイアウォール / アカウンティングルールリストに - エントリを追加します。 - - - - delete - - ファイアウォール / - アカウンティングルールリストから - エントリを削除します。 - - - - - 以前のバージョンの IPFW では、 - ファイアウォールエントリと - パケットアカウンティングエントリが別々に利用されていました。 - 現在のバージョンでは、それぞれのファイアウォールエントリ毎に - パケットアカウンティングエントリが備えられています。 - - index 値が指定されていると、 - エントリはチェーン中の指示された位置に置かれます。 - index 値が指定されて いなければ、 - エントリは (65535 番のデフォルトルールである - パケット拒絶を別にして) 最後のチェーンエントリの index に - 100 を足した 位置 (チェーンの最後) に置かれます。 - - カーネルが IPFIREWALL_VERBOSE - つきでコンパイルされている場合、log - オプションはマッチしたルールを - システムコンソールに出力させます。 - - 有効な アクション は: - - - reject - - パケットを捨てます。ICMP ホスト / - ポート到達不能パケットを (適切な方を) - 発信元へ送ります。 - - - - allow - - 通常通りパケットを通過させます。(別名: - pass, - permit および - accept) - - - - deny - - パケットを捨てます。発信元は ICMP メッセージによる - 通知を受けません (そのためパケットが - 宛先に到達しなかったように見えます)。 - - - - count - - このルールはパケットカウンタを更新するだけで、 - パケットを 通過させたり拒絶したりしません。 - 検索は次のチェーンエントリから続けられます。 - - - - - それぞれの アクション - は一意な先頭部分だけでも認識されます。 - - 指定可能な プロトコル - は以下の通りです。 - - - all - - 任意の IP パケットにマッチします。 - - - - icmp - - ICMP パケットにマッチします。 - - - - tcp - - TCP パケットにマッチします。 - - - - udp - - UDP パケットにマッチします。 - - - - - アドレス の指定は: - - from - address/mask - port - to - address/mask - port - via interface - - - port はポートをサポートする - プロトコル (UDP と TCP) の - 場合にだけ指定可能です。 - - は必須ではなく、 - 特定のインタフェースを通ってきたパケット - だけにマッチするように、IP アドレスまたはローカル IP - インタフェースの ドメイン名、またはインタフェース名 - (たとえば ed0) を - 指定することができます。 - インタフェースユニット番号はオプションで、 - ワイルドカードで指定することが できます。たとえば、 - ppp* はすべてのカーネル PPP - インタフェースに マッチします。 - - address/mask の指定は: - - address - - または - - address/mask-bits - - または - - address:mask-pattern - - - IP - アドレスのかわりに有効なホスト名を指定することも可能です。 - - はアドレスマスクで上位何ビットを1にするべきかを - 示す十進数値です。たとえば次の指定、 - 192.216.222.1/24 はクラス C のサブネット - (この場合 192.216.222) - の任意のアドレスにマッチするマスクを作成します。 - - は与えられたアドレスと 論理 AND される IP アドレスです。 - キーワード any任意の IP - アドレスを指定するために - 使用することができます。 - - ブロックするポート番号は以下のように指定します: - - - port, - port, - port… - - - - のように単独のポートまたはポートのリストを指定します。 - または - - - port- - port - - - のようにポートの範囲を指定します。 - 単独のポートとポートのリストを - 組み合わせて指定することも可能ですが、 - その場合は常に範囲の方を - 最初に指定しなければなりません。 - - 使用可能な オプション は: - - - frag - - データグラムの最初の - フラグメントでなければマッチします。 - - - - in - - 入力途中のパケットであればマッチします。 - - - - out - - 出力途中のパケットであればマッチします。 - - - - ipoptions spec - - IP ヘッダが spec - に指定された カンマで区切られた - オプションのリストを含んでいればマッチします。 - サポートされている IP オプションは、 - ssrr (ストリクトソースルート)、 - lsrr (ルーズソースルート)、 - rr (レコードパケットルート)、 - そして ts (タイムスタンプ) です。 - 特定のオプションを含まないことを指定するには - ! を先頭につけます。 - - - - established - - パケットが既に確立されている TCP - コネクションの一部であれば (つまり RST または ACK - ビットがセットされていれば) マッチします。 - established - ルールをチェーンの最初の方に置くことで、 - ファイアウォールのパフォーマンスを向上させることが - できます。 - - - - setup - - パケットが TCP - コネクションを確立しようとするものであれば (SYN - ビットがセットされ ACK ビットはセットされていなければ) - マッチします。 - - - - tcpflags flags - - TCP ヘッダが flags - に指定された カンマで区切られたフラグの - リストを含んでいればマッチします。 - サポートされているフラグは、fin, - syn, rst, - psh, ack と - urg です。 - 特定のフラグを含まないことを指定するには - ! を先頭につけます。 - - - - icmptypes types - - ICMP タイプが types - リストに 存在していればマッチします。 - リストはタイプの範囲または個々のタイプを - カンマで区切った任意の組合せで指定できます。 - 一般的に使用されている ICMP タイプは: - 0 エコーリプライ (ping リプライ)、 - 3 相手先到達不可能、 - 5 リダイレクト、 - 8 エコーリクエスト (ping - リクエスト)、そして 11 時間超過 - (&man.traceroute.8; で使用されているように、TTL - 満了を示すのに使用されます) です。 - - - - - - - IPFW ルールリストの表示 - - この形式での使用法は: - - ipfw - -a - -c - -d - -e - -t - -N - -S - list - - - - この形式で使用する際に有効なフラグは 7 つあります。 - - - -a - - リスト表示の際にカウンタの値も表示します。 - このオプションは アカウンティングカウンタの - 内容を見る唯一の手段です。 - - - - - -c - - - コンパクトな形式でルールの一覧を表示します。 - - - - - -d - - - 静的ルールに加え動的ルールも表示します。 - - - - - -e - - - が指定されているときには、 - 期限が切れた動的ルールも表示します。 - - - - - -t - - - 各チェーンエントリが最後に - マッチした時刻を表示します。この時刻表示は - &man.ipfw.8; ユーティリティで使用される入力形式と - 互換性がありません。 - - - - -N - - (可能であれば) - アドレスやサービス名を文字列に変換して表示します。 - - - - - -S - - - 各ルールが所属しているセットを表示します。 - このフラグが設定されていない場合には、 - 無効にされているルールは一覧に表示されません。 - - - - - - - IPFW ルールのフラッシュ - - チェーンをフラッシュするには: - - ipfw - flush - - - - カーネルに固定されているデフォルトルール (インデックス - 65535 番) 以外の、 - ファイアウォールチェーンの中のすべてのエントリを削除します。 - デフォルトではすべてのパケットが拒絶されるので、 - 一旦これを実行すると、 - パケットを許可するエントリがチェーンに追加されるまで、 - あなたのシステムがネットワークから切り放されてしまいます。 - そのため、 - ルールのフラッシュをおこなうときは注意が必要です。 - - - - IPFW パケットカウンタのクリア - - 一つまたはそれ以上のパケットカウンタをクリアするためには: - - ipfw - zero - index - - - - index が指定されていなければ、 - すべてのパケットカウンタが クリアされます。 - index が指定されていれば、 - 特定のチェーンエントリだけが クリアされます。 - - - - - <application>ipfw</application> についてのコマンドの例 - - このコマンドは、ホスト evil.crackers.org から ホスト nice.people.org の telnet ポートへの - すべてのパケットを拒絶します。 - - &prompt.root; ipfw add deny tcp from evil.crackers.org to nice.people.org 23 - - 次の例は、ネットワーク crackers.org (クラス C) 全体から - マシン nice.people.org - (の任意のポート) への 任意の TCP トラフィックを拒絶し、 - ログを取ります。 - - &prompt.root; ipfw add deny log tcp from evil.crackers.org/24 to nice.people.org - - あなたの内部ネットワーク (クラス C のサブネット) に対する - X セッションを 張れないようにする場合、 - 以下のコマンドで必要なフィルタリングがおこなえます。 - - &prompt.root; ipfw add deny tcp from any to my.org/28 6000 setup - - アカウンティングレコードを見るには: - - &prompt.root; ipfw -a list - - または短縮形式で - - &prompt.root; ipfw -a l - - 最後にチェーンエントリがマッチした - 時刻を見ることもできます。 - - &prompt.root; ipfw -at l - - - - パケットフィルタリングファイアウォールの構築 - - - 以下の提案は、ただの提案にすぎません: - 必要な処理はそれぞれのファイアウォールで異なるため、 - あなた独自の要求にあったファイアウォールを構築する方法を - ここで述べることはできないのです。 - - - 最初にファイアウォールをセットアップするとき、 - コントロールされた環境でファイアウォールホストの - 設定がおこなえるような - テストベンチセットアップが用意できない場合には、 - カーネルのログ取りを - 有効にしてログ取り版のコマンドを使用することを - 強くおすすめします。そうすることで、 - 大した混乱や中断なしに問題となる範囲の特定と処置を - 素早くおこなうことができます。 - 初期セットアップフェーズが完了してからであっても、 - アタックの可能性のあるアクセスをトレースしたり、 - 要求の変化に応じてファイアウォールルールを - 変更したりできるので、`deny' - に対するログ取りをおこなうことをおすすめします。 - - - accept - コマンドでログを取っていると、大量の - ログデータが生成されるので注意してください。 - ファイアウォールをパケットが一つ通過する毎に一つのログのエントリが生成されるので、 - 大規模な FTP/HTTP 転送などをおこなうと、 - システムが非常に遅くなってしまいます。 - また、パケットが通過するまでにカーネルにより - 多くの仕事を要求するため、パケットのレイテンシ (latency) - を増加させてしまいます。syslogd - もログをディスクに記録するなど、より多くの CPU タイムを - 使用し始め、実に容易に /var/log - が置かれているパーティションを溢れさせてしまう可能性があります。 - - - ファイアウォールは、 - /etc/rc.conf.local か、もしくは - /etc/rc.conf によって有効化されるべきです。 - 関連マニュアルページには、どのドアノブ (訳注: - ポートや IP アドレスなど、 - ネットワークからの入口を示すもののこと) - に手をつければ良いのかに - ついての説明と、ファイアウォール設定の既定値のリストがあります。 - もし、設定の既定値を使わない場合には、 - ipfw list とすることで、 - 現在のルールセットを rc.conf から読み込める形で - ファイルに出力できます。 - また、/etc/rc.conf.local や - /etc/rc.conf - によってファイアウォールを有効化しない場合には、 - すべての IP インタフェースが設定されるよりも前に、 - 確実にファイアウォールの有効化が行なわれるようにすることが重要です。 - - 次の問題は、ファイアウォールが実際には何を - する べきかです ! - これは外部からそのネットワークへのどんなアクセスを許したいか、 - また内部から外界へのアクセスを - どのくらい許したいかに大きく依存します。 - いくつか一般的なルールを挙げると: - - - - 1024 番以下のポートへのすべての TCP - 入力アクセスをブロックします。ここは finger, SMTP (mail) - そして telnet など、最もセキュリティに敏感な - サービスが存在する場所だからです。 - - - - すべての 入力 UDP - トラフィックをブロックします。これは UDP - を使用しているサービスで有用なものは極めて少ないうえ、 - (Sun の RPC と NFS プロトコルのように) - 有用なトラフィックであったとしても、 - 通常セキュリティに対する脅威となるためです。UDP - はコネクションレスプロトコルであるため、入力 UDP - トラフィックを拒絶することは すなわち出力 UDP - トラフィックに対する返答をも ブロックすることになるので、 - このことはそれなりの不利益をもたらします。たとえば外部の - archie (prospero) サーバを使用している (内部の) ユーザに - とって問題となる可能性があります。もし archie - へのアクセスを許したければ、191 番と 1525 番のポートから - 任意の UDP - ポートへ来るパケットがファイアウォールを通過することを - 許可しなければなりません。123 - 番のポートから来るパケットは - ntp パケットで、 - これも通過の許可を考慮する必要がある - もう一つのサービスです。 - - - - 外部から 6000 - 番のポートへのトラフィックをブロックします。6000 - 番のポートは X11 サーバへのアクセスに使用されるポートで、 - セキュリティに対する脅威となりえます。 - (特に自分のワークステーションで xhost - + - をおこなう癖を持っている人がいればなおさらです)。X11 - は実際に 6000 番以降のポートを使用する可能性があるため、 - 通過許可に 上限を定めると、 - そのマシンで走らせることのできる X ディスプレイの - 個数が制限されます。RFC 1700 (Assigned Numbers) - で定義されているように、上限は 6063 です。 - - - - 内部のサーバ (たとえば SQL サーバなど) - がどのポートを使用するかを チェックします。 - それらのポートは通常、上で指定した 1-1024 - 番の範囲から外れていますので、 - これらも同様にブロックしておくことは - おそらく良い考えです。 - - - - これとは別のファイアウォール設定に 関するチェックリストが - CERT () - から入手可能です。 - - 前にも述べたように、これはただの ガイドライン - にすぎません。 - ファイアウォールでどのようなフィルタルールを使用するかは、 - あなた自身が 決めなければなりません。 - これまでのアドバイスに従ったにも関わらず、 - 誰かがあなたのネットワークに 侵入してきたとしても、 - わたしたちは「いかなる」責任もとることはできません。 - - - - IPFW のオーバーヘッドと最適化 - - 多くの人が IPFW - がどのくらいのオーバヘッドをシステムに加えるかを知りたがっています。 - この答えは、使っているルールセットとプロセッサのスピードによってほぼ決まります。 - イーサネットを使っていてルールセットが少ないアプリケーションにとって答えは、 - その影響は無視できる程度 です。 - 実際の測定値を見ないと満足できない方は、引き続きお読みください。 - - 次の測定は 486-66 (訳注: Intel 社製 CPU i486, 66MHz のこと) - 上で 2.2.5-STABLE を使用して行なわれました - (IPFW はその後の FreeBSD のリリースで多少変更されていますが、 - 現在も同程度の速度で動きます)。IPFW には、 - ip_fw_chk ルーチン内でかかる時間を測定して、 - 1000 パケット毎に結果をコンソールに表示する変更が加えられています。 - - それぞれ 1000 ずつのルールからなる - 2 つのルールセットでテストが行なわれました。 - 1 つ目のルールセットは最悪のケースを見るために、 - 次のルールを繰り返しています。 - - &prompt.root; ipfw add deny tcp from any to any 55555 - - これは、最終的にパケットが (ポート番号から) - ルールにマッチしないことがわかるまでに IPFW - のほとんどのパケットチェックルーチンが実行されるような、 - 最悪の場合を示します。このルールを 999 個繰り返し並べた後に - allow ip from any to any - がきます。 - - 2 つ目のルールセットは、 - なるべく早く確認が終了するように書かれたものです。 - - &prompt.root; ipfw add deny ip from 1.2.3.4 to 1.2.3.4 - - このルールでは、発信元の IP アドレスが一致しないので、 - すぐに確認が終わります。前とおなじように、1000 個目のルールは - allow ip from any to any です。 - - 前者のパケットあたりのオーバヘッドはおよそ 2.703 ms/packet - または 1 つのルールにつき 2.7 マイクロ秒です。したがって、 - このルールにおけるパケット処理時間の理論的な限界は、 - 毎秒約 370 パケットです。10 Mbps の Ethernet で - 1500 バイト程度のパケットサイズを仮定すると、 - バンド幅の利用効率は 55.5% が限界です。 - - 後者では、それぞれのパケットがおよそ 1.172 ms - または、1 つのルールにつき 1.2 マイクロ秒で処理されていました。 - パケット処理時間の理論的な限界は、 - 毎秒約 853 パケットとなりますので、10 Mbps Ethernet - のバンド幅を使い切ることができます。 - - このテストに使われたルールの数が多過ぎることと、 - その性質から、これは実際の状況を反映したものではありません。 - これらは上に示したタイミング情報を出すためだけに用いられたものです。 - 効率の良いルールセットを作るためには、 - 次のような事を考えればよいでしょう。 - - - - established ルールは - TCP トラフィックの大半を処理するため、 - 先頭の方に持ってきてください。このルールの前には - allow tcp - という記述を置かないでください。 - - - - 良く使われるルールを、 - あまり良く使われないルールよりも前の方に - (もちろんファイアウォールの許可設定を変えない範囲で) - 持ってきてください。ipfw -a l - でパケット数の統計を取ることで、 - どのルールが最もよく使われているかを調べられます。 - - - - - OpenSSL @@ -4416,11 +3416,11 @@ An optional company name []:Another Namemyca.key および 証明書 new.crt です。 これらのファイルを、(好ましくは - /etc 以下で) + /etc 以下で) root のみが読むことのできるディレクトリに置く必要があります。 chmod - ユーティリティを使って許可属性を 0600 に設定してください。 + ユーティリティを使って許可属性を 0700 に設定してください。 @@ -4453,11 +3453,11 @@ define(`confSERVER_CERT',`/etc/certs/new.crt')dnl define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl - ここで /etc/certs/ + ここで /etc/certs/ は、証明書および鍵ファイルが保存されているローカルのディレクトリです。 最後に、ローカルの .cf ファイルを再構築する必要があります。 - /etc/mail ディレクトリで、 + /etc/mail ディレクトリで、 make install と入力すると再構築できます。 その後、make @@ -4839,7 +3839,7 @@ Network #2 [ Internal Hosts ] 2 つはパブリック IP アドレスで、 2 つはプライベートの IP アドレスです。 - 両方の FreeBSD カーネルで + 両方の &os; カーネルで gif デバイスのサポートを組み入れてコンパイルする必要があります。 以下の行を加えることで設定できます。