diff --git a/ja_JP.eucJP/articles/dialup-firewall/article.sgml b/ja_JP.eucJP/articles/dialup-firewall/article.sgml index e63dcea11c..7abd142705 100644 --- a/ja_JP.eucJP/articles/dialup-firewall/article.sgml +++ b/ja_JP.eucJP/articles/dialup-firewall/article.sgml @@ -1,424 +1,424 @@ %man; ]>
FreeBSD によるダイアルアップ式防火壁の構築 Marc Silver
marcs@draenor.org
$FreeBSD$ この記事は FreeBSD の PPP ダイアルアップと IPFW を用いながらどのように防火壁をセットアップするか、 特に動的に割り当てられた IP アドレスによるダイアルアップ上の防火壁について事実を元に詳細に説明します。 なお、前段階である PPP 接続についての設定は触れていません。
序文 FreeBSD によるダイアルアップ式防火壁の構築 この文書はあなたの ISP によって IP アドレスを動的に割り当てられた時、FreeBSD で防火壁をセットアップために要求される手順を扱うことをめざしたものです。 この文書を可能な限り有益で正確なものにするために努力しているので、 どうぞ意見や提案を marcs@draenor.org に送って下さい。 カーネルオプション 最初になすべきことは FreeBSD のカーネルを再コンパイルすることです。 カーネルを再コンパイルする方法についてさらに情報が必要なら、 ハンドブックのカーネルのコンフィグレーションの節 から読み始めるのが最適でしょう。 カーネルの中に以下のオプションをつけてコンパイルする必要があります: options IPFIREWALL カーネルの防火壁のコードを有効にします。 options IPFIREWALL_VERBOSE システムの logger へ記録されたパケットを送ります。 options IPFIREWALL_VERBOSE_LIMIT=100 記録されるマッチするエントリの数を制限します。 これはログファイルがたくさんの繰返しのエントリで一杯になるのを抑制します。 100 は使用上無理のない数ですが、 自分の要求に基づいて調整することができます。 options IPDIVERT divertソケット (後述) を有効にします。 更なるセキュリティーのためにカーネルの中に組み込むことのできるオプションが他にいくつかあります。 これらは防火壁を動かすためには必要ではありませんが、 セキュリティーに猛烈にこだわるユーザは有効にしてかまいません。 options TCP_DROP_SYNFIN このオプションは SYN と FIN のフラグをもった TCP パケットを無視します。 これは マシンの TCP/IP スタックを識別するので nmap などのようなツールを妨げることができます。 しかし RFC1644 拡張のサポートに違反しています。 これは現在稼働している web サーバには推奨 *しません*。 いったんカーネルを再コンパイルしたら再起動しないで下さい。 希望的にも、 防火壁の設置を完了するために一回だけ再起動する必要があります。 防火壁を搭載するように <filename>/etc/rc.conf</filename> を変更する 防火壁について /etc/rc.conf をのことを述べるために、そこにいくつかの変更を行います。 単純に以下の行を加えます: firewall_enable="YES" firewall_script="/etc/firewall/fwrules" natd_enable="YES" natd_interface="tun0" natd_flags="-dynamic" 上でしたものに関する更なる情報は /etc/defaults/rc.conf を見て、 &man.rc.conf.5; を読んで下さい。 PPP のネットワークアドレス変換を無効にする もしかすると既に PPP の組込みネットワークアドレス変換 (NAT) を利用しているかも知れません。 それを無効化しなければならない場合であるなら、 &man.natd.8; の例を使い、同じようにして下さい。 既に PPP の自動スタートのエントリのまとまりがあるなら、 多分こんなふうになっているでしょう: ppp_enable="YES" ppp_mode="auto" ppp_nat="YES" ppp_profile="profile" もしそうなら、 ppp_nat="YES" の行を削除して下さい。 また /etc/ppp/ppp.conf の中の nat enable yes または alias enable yes を削除する必要があるでしょう。 防火壁へのルールセット さて、ほとんどのことをやりおわりました。 残る最後の仕事は防火壁のルールを定義することです。 それから再起動すると、防火壁が立ち上がり稼働するはずです。 私はルールベースを定義する段階に達すると、 すべての人が若干異なる何かを求めているのだとと実感しています。 私が努力してきたのは、 ほとんどのダイアルアップユーザに適合したルールセットを書くことです。 あなたは自分の必要のために 単純に以下のルールを土台として用いることによって 自分用のルールベースに変更することができます。 まず、閉じた防火壁の基礎から始めましょう。 望むのは初期状態ですべてを拒否することです。 それからあなたが本当に必要とすることだけのために防火壁をあけましょう。 ルールはまず許可し、それから拒否するという順番であるべきです。 その前提はあなたの許可のための規則を付加するとういことで、 それから他の全ては拒否されます。:) では /etc/firewall ディレクトリを作りましょう。 ディレクトリをそこへ変更し、 rc.conf で規定した fwrules ファイルを編集します。 このファイル名を自分が望む任意のものに変更できるということに気をつけてください。 この手引きはファイル名の一例を与えるだけです。 それでは、防火壁ファイルの見本を見てみましょう。 そのすべてを詳細に説明します。 # Firewall rules # Written by Marc Silver (marcs@draenor.org) # http://draenor.org/ipfw # Freely distributable # (/etc/rc.firewall にあるように) 参照を簡単にするために防火壁のコマンドを定義します。 # 読みやすくするのに役立ちます。 fwcmd="/sbin/ipfw" # 再読込みする前に現在のルールの消去を強制します。 $fwcmd -f flush -# トンネルインターフェースを通じてすべてのパケットを divert します。 +# トンネルインタフェースを通じてすべてのパケットを divert します。 $fwcmd add divert natd all from any to any via tun0 # 自分のネットワークとローカルホストからのデータをすべて許可します。 # 再起動する前に自分のネットワークカード (私のは fxp0 です) に変更するのを確認しましょう。:) $fwcmd add allow ip from any to any via lo0 $fwcmd add allow ip from any to any via fxp0 # 自分が着手したすべての接続を許可します。 $fwcmd add allow tcp from any to any out xmit tun0 setup # 接続がいったん作成されると、それを許可して開けておきます。 $fwcmd add allow tcp from any to any via tun0 established # 以下のサービスへ接続することをインターネット上のすべての人に許可します。 # この例では人々は ssh と apache に接続してよいということを示しています。 $fwcmd add allow tcp from any to any 80 setup $fwcmd add allow tcp from any to any 22 setup # すべての ident パケットに RESET を送ります。 $fwcmd add reset log tcp from any to any 113 in recv tun0 # 規定されたサーバに対して *のみ* 外部 DNS の問い合わせを許可します。 $fwcmd add allow udp from any to x.x.x.x 53 out xmit tun0 # 応答とともに戻ってくることを許可します。:) $fwcmd add allow udp from x.x.x.x 53 to any in recv tun0 # (ping と traceroute を動作させるために) ICMP を許可します。 # これを非許可にしたいと思うかもしれませんが、 # 需要を保ちつづけるには適していると感じています。 $fwcmd add 65435 allow icmp from any to any # 残りの全てを拒否します。 $fwcmd add 65435 deny log ip from any to any あなたは 22 番と 80 番のポートへの接続を許可し、 それ以外に試みられるすべての接続を記録する十分に機能的な防火壁を手にしました。 では、あなたは安全に再起動することができて、 あなたの防火壁はうまく立ち上がるはずです。 もしこれに正しくないことを見つけたら、 もしくは任意の問題を経験したら、 さもなくばこのページを向上させるための任意の提案があるなら、 そのいずれにしても、どうか私に電子メールを下さい。 質問 組込みの ppp フィルタを使ってもよいのに、 なぜ natd と ipfw を使っているのですか? 正直に言うと、 組込みの ppp フィルタの代わりに ipfw と natd を使う決定的な理由はないと言わなければなりません。 いろいろな人と繰り返してきた議論より、 ipfw は確かに ppp フィルタよりもパワフルで設定に融通がきく一方、 それが機能的であるために作り上げたものはカスタマイズの容易さを 失っているということで意見の一致をみたようです。 私がそれを使う理由のひとつはユーザランドのプログラムでするよりも、 カーネルレベルで行う防火壁の方を好むからです。 limit 100 reached on entry 2800 のようなメッセージを受け取った後、 ログの中にそれ以上の拒否を全く見なくなりました。 防火壁はまだ動作しているのでしょうか? 単にルールのログカウントが最大値に達したということを意味しています。 ルール自身はまだ機能していますが、 ログカウンタをリセットするまでそれ以上ログを記録しません。 これは ipfw コマンドに resetlog オプションを頭につけて実行するだけでできます。 もし内部で 192.168.0.0 の範囲のようなプライベートアドレスを使用しているなら、 $fwcmd add deny all from any to 192.168.0.0:255.255.0.0 via tun0 のようなコマンドを 内部のマシンへ試みられる外部からの接続を防止するために 防火壁のルールに追加してもいいですか? 端的な答えは no です。 この問題に対するその理由は natd は tun0 デバイスを通して divert されている あらゆるもの に対してアドレス変換を行っているということです。 それが関係している限り、 入ってくるパケットは動的に割り当てられた IP アドレスに対してのみ話し、 内部ネットワークに対しては *話さない* のです。 防火壁経由で外へ出て行くホストからあなたの内部ネットワーク上のホストを制限する $fwcmd add deny all from 192.168.0.4:255.255.0.0 to any via tun0 のようなルールを追加することができるということにも気をつけてください。 何か間違っているに違いありません。 私はあなたの説明に文字通り従いましたが、 締め出されてしまいました。 このチュートリアルはあなたが userland-ppp を稼働していて、その結果 tun0 [&man.ppp.8; (またの名を user-ppp) で作られる最初の接続に相当します] - インターフェース上で供給されたルールセットが動作していることを想定しています。 + インタフェース上で供給されたルールセットが動作していることを想定しています。 さらなる接続は tun1tun2 などを用います。 &man.pppd.8; が ppp0 - インターフェースを代わりに用いるということにも注意するすべきです。 + インタフェースを代わりに用いるということにも注意するすべきです。 よって &man.pppd.8; による接続を始めるなら ppp0 の代わりに tun0 を用いて下さい。 この変更を反映する防火壁のルールを編集する早道は以下に示されています。 元のルールセットは fwrules_tun0 としてバックアップされています。 &prompt.user; cd /etc/firewall /etc/firewall&prompt.user; su Password: /etc/firewall&prompt.root; mv fwrules fwrules_tun0 /etc/firewall&prompt.root; cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules いったん接続が確立したら、 現在 &man.ppp.8; か &man.pppd.8; のどちらを利用しているかを知るために &man.ifconfig.8; の出力で検査することができます。 例として、&man.pppd.8; で作成された接続では、 このようなものが目にするでしょう (関係のあるものだけ示しています)。 &prompt.user; ifconfig (skipped...) ppp0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524 inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xff000000 (skipped...) 他方で、&man.ppp.8; (user-ppp) で作成された接続では、 あなたはこれに似たものを目にするはずです。 &prompt.user; ifconfig (skipped...) ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 (skipped...) tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1524 (IPv6 stuff skipped...) inet xxx.xxx.xxx.xxx --> xxx.xxx.xxx.xxx netmask 0xffffff00 Opened by PID xxxxx (skipped...)
diff --git a/ja_JP.eucJP/articles/zip-drive/article.sgml b/ja_JP.eucJP/articles/zip-drive/article.sgml index 4a3948043d..ffa9a0eabe 100644 --- a/ja_JP.eucJP/articles/zip-drive/article.sgml +++ b/ja_JP.eucJP/articles/zip-drive/article.sgml @@ -1,327 +1,327 @@ %man; ]>
ZIPドライブ Jason Bacon
acadix@execpc.com
ZIP ドライブの基礎 ZIP ディスクは、アイオメガ社から発売されている ZIP ディスクドライブで読み書き可能な大容量のリムーバブル磁気ディスクです。 ZIP ディスクはフロッピーディスクと似ていますが、 ZIP ディスクの方が非常に高速で比較にならないほど大容量です。 というのはフロッピーディスクの容量が大抵 1.44M バイトであるのに対し、ZIP ディスクの容量は、100M バイトか 250M バイトの二種類あります。 120M バイトの容量を持ち、 従来の 1.44M バイトのディスクも使用できる SuperDisk というフロッピーがありますが、ZIP ディスクとは混同しないでください。 アイオメガ社は、JAZZ ドライブというさらに大容量で優れた性能を持ったディスクドライブも発売しています。 JAZZ ドライブの容量は 1G バイトか 2G バイトの二種類です。 - ZIP ドライブには、以下の 3 種類のインターフェースが用意されており、 + ZIP ドライブには、以下の 3 種類のインタフェースが用意されており、 内蔵も外付けも可能です。 SCSI (Small Computer Standard Interface) は最も高速・精巧で拡張性も高く、 - そして最も高価なインターフェースです。 - SCSI インターフェースは、 + そして最も高価なインタフェースです。 + SCSI インタフェースは、 ディスクドライブ、テープドライブ、 スキャナーなどといったすべてのタイプの周辺機器と接続するために、 PC から RISC ワークステーション、 ミニコンに至るまで、ほとんどのコンピュータで使用されてきました。 SCSI 対応 ZIP ドライブは、 内蔵も (もし SCSI ホストアダプタに外付けコネクタがあれば) 外付けも可能です。 SCSI で接続された外付けの装置を使用する際、 動作中に SCSI バスからケーブルを抜き差ししないでください。 さもないと、挿入されていたディスクのファイルシステムを損傷 する恐れがあります。 最高のパフォーマンスとセットアップの手軽さを望むなら、 SCSI はベストチョイスです。 一部のハイエンドサーバを除き、多くの PC はビルトインの SCSI をサポートしていないため、 SCSI ホストアダプタを追加で購入する必要があります。 種類にもよりますが、SCSI ホストアダプタは 7 台か 15 台の SCSI デバイスを接続することができます。 それぞれの SCSI デバイスはそれ自身のコントローラを持っており、 そしてそれらは非常に賢く、よく標準化されているので (SCSI の 2 番目の "S" は "標準" を表します)、 OS は SCSI のディスクドライブをすべて同じように扱うことができ、 またそれは SCSI のテープドライブなども同様です。 SCSI デバイスを使用するためには、ホストアダプタ用のドライバと SCSI ディスクドライブ用ドライバ、 SCSI テープドライブ用ドライバといった装置に対応する標準のドライバを用意するだけで良いのです。 さらに機種に特化したドライバ (たとえば DAT ドライブなど) も存在しますが、 大抵標準のドライバを使用しても動作します。 そういった特別なドライバは、 機種特有の機能を利用するために書かれたものです。 ZIP ドライブを使用するためには、 単に /dev の中から ZIP ドライブのデバイスファイルを見つけるだけで良いのです。 ZIP ドライブのデバイスファイルは起動時に表示されるブートメッセージか、 /var/log/messages の中から da1: <IOMEGA ZIP 100 D.13> Removable Direct Access SCSI-2 Device というメッセージを見つけることで特定できます。 上の例の場合、 ZIP ドライブのデバイスファイルは /dev/da1 であるということを表しています。 - IDE (Integrated Drive Electronics) インターフェースは、 - 多くのデスクトップ PC で使用されている低価格なインターフェースです。 + IDE (Integrated Drive Electronics) インタフェースは、 + 多くのデスクトップ PC で使用されている低価格なインタフェースです。 ほとんどの IDE デバイスは必ず内蔵になっています。 IDE 接続の ZIP ドライブの性能は SCSI 接続の ZIP ドライブに匹敵します。 - (IDE インターフェースは SCSI より高速ではないのですが、 - ZIP ドライブの性能は、接続されているバスインターフェースよりも + (IDE インタフェースは SCSI より高速ではないのですが、 + ZIP ドライブの性能は、接続されているバスインタフェースよりも むしろ ZIP ドライブそのものの性能に大きく依存するためです)。 - IDE インターフェースの欠点は、 + IDE インタフェースの欠点は、 その規格が定めた制限事項そのものです。 ほとんどの IDE アダプタは 2 つのデバイスしかサポートしておらず、 大抵長い期間を経て設計されたものではありません。 - たとえば元来の IDE インターフェースは、 + たとえば元来の IDE インタフェースは、 多くの人々にアップグレードを強いた 1024 シリンダ以上のハードディスクをサポートしていません。 もし ZIP ドライブの他のディスクドライブやテープドライブ、 スキャナーなどといった装置を PC に追加することを計画しているなら、 将来起こるであろう問題を回避するためにも、 SCSI ホストアダプタと SCSI 接続用 ZIP ドライブに投資した方がよいかも知れません。 FreeBSDにおいて、IDEデバイスの先頭文字は a です。 たとえば、IDEのハードディスクドライブは /dev/ad0 で、IDE (ATAPI) のCD-ROMドライブは /dev/acd1 といった具合です。 - パラレルポートインターフェースは、 + パラレルポートインタフェースは、 実際に多くのコンピューターが標準パラレルポートを備えているため (普段はプリンタ接続に使われます) ZIP ドライブやスキャナといった、 - ポータブルな外付けデバイスの接続においてポピュラーなインターフェイスです。 + ポータブルな外付けデバイスの接続においてポピュラーなインタフェイスです。 そのため ZIP ドライブを持ち運んで、 簡単にコンピュータ間のファイルのやりとりすることができます。 一般に、パラレルポート接続の ZIP ドライブはパラレルポートの速度によって転送速度が制限されるため、 SCSI や IDE で接続された場合より低速です。 パラレルポートの速度はコンピュータによって非常にまちまちで、 また BIOS から設定することもできます。 また双方向通信を使用可能にするために BIOS の設定が必要となるマシンもあります (パラレルポートは元来、 プリンタへの出力のみを目的に設計されたものです)。 パラレルポートに接続する: <devicename>vpo</devicename> ドライバ ZIP ドライブをパラレルポートに接続して使用するには、 カーネルに vpo ドライバが設定されている必要があります。 パラレルポート接続の ZIP ドライブはビルトインの SCSI コントローラを持っており、 vpoドライバを使用するとパラレルポートを通じて ZIP ドライブの SCSI コントローラを読み込むことができます。 vpo は標準のカーネルオプションではないため (FreeBSD 3.2 現在) デバイスを使用可能にするためにカーネルを再構築する必要があります。 カーネル再構築の詳細な手順については他のセクションで説明します。 以下は、vpo ドライバを使用可能にするための大まかな手順です。 まず、/stand/sysinstall を実行し、システムにカーネルのソースコードをインストールしてください。 次に、 vpo ドライバを含むカーネルコンフィグファイルを作ります: &prompt.root; cd /sys/i386/conf &prompt.root; cp GENERIC MYKERNEL この MYKERNEL を編集し、 ident の行を MYKERNEL に変更します。 そして vpo ドライバについて書かれた行のコメントを解除してください。 もしパラレルポートが二つある場合、それに用いる ppc1 デバイスファイルを作るために ppc0 をコピーする必要がある場合があります。 二つ目のパラレルポートは普通 IRQ5 と I/O ポートアドレス 378 番を使用します。 カーネルコンフィグファイルに記述する必要があるのは IRQ だけです。 もしルートのハードディスクドライブが SCSI 接続であった場合、起動ディスクの読み込み順序に誤りが生じ、 システムが ZIP ドライブから起動しようとしてしまう場合があります。 こうなったら、あなたが ZIP ディスクに FreeBSD のルートファイルシステムでも書き込まない限り、 起動には失敗するでしょう! そうした場合は、ルートのディスクを「つなぎかえ (wire down)」、 すなわち、カーネルに特定のデバイスを SCSI ハードディスク /dev/da0 に強制的にバインドさせる必要があります。 そうすれば、ZIP ディスクドライブは二番目の SCSI デバイス、つまり /dev/da1 としてきちんと認識されます。 SCSI ハードディスクを da0 に「つなぎかえ」するには、 device da0 の行を disk da0 at scbus0 target 0 unit 0 に変更してください。 その際、ハードディスクの SCSI ID に合うように 上記の行を変更する必要があるかも知れません。 たとえば、Adaptec 15xx コントローラの載った SCSI ホストアダプタをお持ちなら、下のように scbus0 を SCSI コントローラにつなぎかえてください。 controller scbus0controller scbus0 at aha0 に変更します。 最後に、カーネルコンフィグファイルを作成したら、 不要なドライバをすべて削除することができます。 その際には細心の注意を払う必要がありますが、 あとはコンフィグファイルの更新が成功することを信用するしかありません。 不要なドライバを削除することでカーネルのサイズを小さくすることができ、 アプリケーションに割り当てられるメモリの領域を拡大することができます。 不要なドライバを特定するために、 /var/log/messages の最後の方の行で「not found」と書かれている部分を見つけ、 それらのデバイスをコメントアウトします。 カーネルのサイズを縮小し、 読み込みを早くするために他のオプションを削ることも考えられます。 カーネル再構築の際に表示されるメッセージから、 不要なオプションに関してのさらに詳しい情報が得られます。 ではカーネルを完成させましょう。 &prompt.root; /usr/sbin/config MYKERNEL &prompt.root; cd ../../compile/MYKERNEL &prompt.root; make clean depend && make all install カーネルが再構築されたら、再起動します。 起動が開始する前に、ZIP ドライブがパラレルポートに接続されているかどうか確認してください。 ブートメッセージの中で ZIP ドライブが vpo0 や vpo1 (これらは接続されているパラレルポートに依存する) として認識されているか確認してください。 これが ZIP ドライブのデバイスファイルです。 ここで表示される ZIP のデバイスファイルは、 もしシステムに他の SCSI ディスクがない場合は /dev/da0 となり、 SCSI ハードディスクドライブがルートデバイスとしてつなぎかえられているならば /dev/da1 となります。 ZIP ディスクをマウントする ZIP ディスクにアクセスするには、 他の種類のディスクと同じようにマウントするだけです。 デバイス上のファイルシステムがスライス 4 となっていて、 SCSI もしくはパラレル接続の ZIP ディスクなら、 &prompt.root; mount_msdos /dev/da1s4 /mnt IDE 接続の ZIP ドライブなら、 &prompt.root; mount_msdos /dev/ad1s4 /mnt /etc/fstab を更新すれば、 マウントはさらに簡単になります。 自分のシステムに合うように編集して、以下のような行を加えましょう。 /dev/da1s4 /zip msdos rw,noauto 0 0 そしてディレクトリ /zip を作成します。 マウントするには、 &prompt.root; mount /zip マウントを解除するには、 &prompt.root; umount /zip /etc/fstab のフォーマットに関する詳細は、&man.fstab.5; を参照してください。 また、ZIP ディスク上に FreeBSD のファイルシステムを作成するには &man.newfs.8; を参照してください。 ただし、このディスクは FreeBSD か、FreeBSD を認識するごく少数の UNIX クローンのみにおいて使用することができます (DOS や Windows 上では使用できません)。