diff --git a/ja_JP.eucJP/articles/dialup-firewall/article.sgml b/ja_JP.eucJP/articles/dialup-firewall/article.sgml index 7abd142705..4cbea8fcca 100644 --- a/ja_JP.eucJP/articles/dialup-firewall/article.sgml +++ b/ja_JP.eucJP/articles/dialup-firewall/article.sgml @@ -1,424 +1,443 @@ %man; ]>
- FreeBSD によるダイアルアップ式防火壁の構築 + FreeBSD によるダイアルアップ式ファイアウォールの構築 Marc Silver
marcs@draenor.org
$FreeBSD$ この記事は FreeBSD の PPP ダイアルアップと IPFW - を用いながらどのように防火壁をセットアップするか、 - 特に動的に割り当てられた IP - アドレスによるダイアルアップ上の防火壁について事実を元に詳細に説明します。 + を用いながらどのようにファイアウォールをセットアップするか、 + 特に動的に割り当てられた + IP アドレスによるダイアルアップ上のファイアウォールについて、 + 事実を元に詳細に説明します。 なお、前段階である PPP 接続についての設定は触れていません。
序文 - - FreeBSD によるダイアルアップ式防火壁の構築 + + FreeBSD によるダイアルアップ式ファイアウォールの構築 この文書はあなたの ISP によって - IP アドレスを動的に割り当てられた時、FreeBSD - で防火壁をセットアップために要求される手順を扱うことをめざしたものです。 + 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 サーバには推奨 *しません*。 + これは現在稼働している + web サーバには推奨しません いったんカーネルを再コンパイルしたら再起動しないで下さい。 希望的にも、 - 防火壁の設置を完了するために一回だけ再起動する必要があります。 + ファイアウォールの設置を完了するために一回だけ再起動する必要があります。 - 防火壁を搭載するように + <title>ファイアウォールを搭載するように <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 を見て、 + 上記の設定に関するより詳しい情報は + /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/rc.conf に + (訳注: /etc/defaults/rc.conf で定義されている + ppp_nat の初期値は YES なので) + ppp_nat="NO" + を明示的に設定して無効にする必要があります。 また /etc/ppp/ppp.conf の中の nat enable yes または alias enable yes を削除する必要があるでしょう。 - 防火壁へのルールセット - + ファイアウォールへのルールセット + さて、ほとんどのことをやりおわりました。 - 残る最後の仕事は防火壁のルールを定義することです。 - それから再起動すると、防火壁が立ち上がり稼働するはずです。 + 残る最後の仕事はファイアウォールのルールを定義することです。 + それから再起動すると、ファイアウォールが立ち上がり稼働するはずです。 私はルールベースを定義する段階に達すると、 すべての人が若干異なる何かを求めているのだとと実感しています。 私が努力してきたのは、 ほとんどのダイアルアップユーザに適合したルールセットを書くことです。 - あなたは自分の必要のために - 単純に以下のルールを土台として用いることによって + あなたは自分の必要のために以下のルールを土台として用いることによって 自分用のルールベースに変更することができます。 - まず、閉じた防火壁の基礎から始めましょう。 + まず、閉じたファイアウォールの基礎から始めましょう。 望むのは初期状態ですべてを拒否することです。 - それからあなたが本当に必要とすることだけのために防火壁をあけましょう。 + それからあなたが本当に必要とすることだけのためにファイアウォールをあけましょう。 ルールはまず許可し、それから拒否するという順番であるべきです。 その前提はあなたの許可のための規則を付加するとういことで、 それから他の全ては拒否されます。:) - では /etc/firewall ディレクトリを作りましょう。 + では /etc/firewall + ディレクトリを作成しましょう。 ディレクトリをそこへ変更し、 rc.conf で規定した fwrules ファイルを編集します。 このファイル名を自分が望む任意のものに変更できるということに気をつけてください。 この手引きはファイル名の一例を与えるだけです。 - それでは、防火壁ファイルの見本を見てみましょう。 - そのすべてを詳細に説明します。 + それでは、ファイアウォールファイルの設定例を見てみましょう。 + 注釈も参考にしてください。 # Firewall rules # Written by Marc Silver (marcs@draenor.org) # http://draenor.org/ipfw -# Freely distributable +# Freely distributable -# (/etc/rc.firewall にあるように) 参照を簡単にするために防火壁のコマンドを定義します。 -# 読みやすくするのに役立ちます。 +# (/etc/rc.firewall にあるように) 参照を簡単にするためにファイアウォールの +# コマンドを定義します。読みやすくするのに役立ちます。 fwcmd="/sbin/ipfw" # 再読込みする前に現在のルールの消去を強制します。 $fwcmd -f flush # トンネルインタフェースを通じてすべてのパケットを 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 に接続してよいということを示しています。 +# この例では 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 allow icmp from any to any # 残りの全てを拒否します。 -$fwcmd add 65435 deny log ip from any to any +$fwcmd add deny log ip from any to any あなたは 22 番と 80 番のポートへの接続を許可し、 - それ以外に試みられるすべての接続を記録する十分に機能的な防火壁を手にしました。 + それ以外に試みられるすべての接続を記録する + 十分に機能的なファイアウォールを手にしました。 では、あなたは安全に再起動することができて、 - あなたの防火壁はうまく立ち上がるはずです。 + あなたのファイアウォールはうまく立ち上がるはずです。 もしこれに正しくないことを見つけたら、 もしくは任意の問題を経験したら、 さもなくばこのページを向上させるための任意の提案があるなら、 そのいずれにしても、どうか私に電子メールを下さい。 質問 - + - 組込みの ppp フィルタを使ってもよいのに、 - なぜ natd と ipfw を使っているのですか? + 組込みの &man.ppp.8; フィルタを使ってもよいのに、 + なぜ &man.natd.8; と &man.ipfw.8 を使っているのですか? 正直に言うと、 - 組込みの ppp フィルタの代わりに - ipfw と natd を使う決定的な理由はないと言わなければなりません。 + 組込みの ppp フィルタの代わりに + ipfwnatd + を使う決定的な理由はないと言わなければなりません。 いろいろな人と繰り返してきた議論より、 - ipfw は確かに ppp フィルタよりもパワフルで設定に融通がきく一方、 + ipfw は確かに + ppp フィルタよりもパワフルで設定に融通がきく一方、 それが機能的であるために作り上げたものはカスタマイズの容易さを 失っているということで意見の一致をみたようです。 私がそれを使う理由のひとつはユーザランドのプログラムでするよりも、 - カーネルレベルで行う防火壁の方を好むからです。 + カーネルレベルで行うファイアウォールの方を好むからです。 limit 100 reached on entry 2800 のようなメッセージを受け取った後、 ログの中にそれ以上の拒否を全く見なくなりました。 - 防火壁はまだ動作しているのでしょうか? + ファイアウォールはまだ動作しているのでしょうか? 単にルールのログカウントが最大値に達したということを意味しています。 ルール自身はまだ機能していますが、 ログカウンタをリセットするまでそれ以上ログを記録しません。 - これは ipfw コマンドに resetlog - オプションを頭につけて実行するだけでできます。 + + ipfw resetlog コマンドにより、 + ログカウンタをリセットすることができます。 + また、この限界値を上述の + オプションで + 変更することもできます。 + さらに、この値は (カーネルを再構築して再起動せずに) + net.inet.ip.fw.verbose_limit を + &man.sysctl.8; で変更することができます。 もし内部で 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 されている + 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/diskless-x/article.sgml b/ja_JP.eucJP/articles/diskless-x/article.sgml index 937dac7c7b..3353cf3487 100644 --- a/ja_JP.eucJP/articles/diskless-x/article.sgml +++ b/ja_JP.eucJP/articles/diskless-x/article.sgml @@ -1,381 +1,383 @@ %man; ]>
ディスク無しの X サーバ: 一つのガイド Jerry Kendall
jerry@kcis.com
1996/12/28 1996 Jerry Kendall FreeBSD-hackers メーリングリストの友人たちの助けによって、 わたしはディスクの無い X 端末を作ることができました。 X 端末の作成には、NFS によってマウントされた最小のユーティリティを持つ ディスク無しのシステムを作らなくてはなりませんでした。 同じ方法を使って 2 つの別々なディスク無しのシステムを作りました。 一つ目は altair.example.com です。 それは 340M のハードディスクが付いていますが、交換したくありませんでした。 そのため、そのマシンは antares.example.com からイーサネットを通じてブートするようになっています。 2 つ目のシステムは 486DX2-66 です。 わたしは全くローカルディスクのないディスク無しの FreeBSD を (完璧に) セットアップしました。 その場合のサーバは SunOS 4.1.3 が動いている Sun 670MP です。 セットアップの設定は両方に同じものが必要でした。 わたしはこの文書に加えなくてはならない内容がまだあると思っています。 どんなことでもご意見がありましたら送ってください。
ブートフロッピーを作る (ディスク無しのシステム上で) ネットワークローダは TSR などの MS-DOS が使うものがあるとうまく働かないことがあるので、 最も良い方法は専用のブートフロッピーを作るか、 もしできれば、MS-DOS のメニューを作ってシステムが起動するときにどの設定を有効にするかを聞いてくるようにすることです。 (config.sys/autoexec.bat ファイルによって) 次に挙げるのはわたしが使っているもので、ちゃんと動作しているものです。 わたしの MS-DOS (6.x) メニューを下に載せます。 <filename>config.sys</filename> [menu] menuitem=normal, normal menuitem=unix, unix [normal] .... normal config.sys stuff ... [unix] <filename>autoexec.bat</filename> @ECHO OFF goto %config% :normal ... normal autoexec.bat stuff ... goto end :unix cd \netboot nb8390.com :end ネットワークブートのプログラムを手に入れる (サーバ上で) /usr/src/sys/i386/boot/netboot にある net-boot プログラムをコンパイルしてください。 そのときには Makefile の先頭にあるコメントを読んでおきましょう。 要求されるように調整してください。 オリジナルのファイルはどこかにバックアップを取っておいてください。 ビルドが終わったら、2 つの MS-DOS の実行ファイル nb8390.comnb3c509.com ができているはずです。 これらの 2 つのプログラムの 1 つはディスク無しのサーバ上で動かすのに必要になるものです。 それはブートサーバからカーネルをロードするものです。 ここでは両方のプログラムを先程作った MS-DOS のブートフロッピーに入れておきます。 どのプログラムを実行するかを調べる (ディスク無しのシステム上で) もしあなたのイーサネットアダプタが使っているチップセットを知っているなら、 これは簡単なことです。もしそれが NS8390 チップセットか、 NS8390 をベースとするチップセットであれば、nb8390.com を使ってください。もし 3Com 509 をベースとするチップセットなら、 nb3C509.com ブートプログラムを使ってください。 もしあなたの持っているものがよくわからなければ、一つ試してみて、そこで No adapter found と言われたらまた他のを試してみてください。それでもだめだったら、 あなたのものはとても珍しいということです。 ネットワークと通じてブートする config.sys/autoexec.bat ファイルも使わずにディスク無しのシステムを立ち上げてみてください。 あなたのイーサネットアダプタのためのブートプログラムを実行してみましょう。 わたしのイーサネットアダプタは WD8013 16bit モードで動いているので nb8390.com を実行します。 C:> cd \netboot C:> nb8390 Boot from Network (Y/N) ? Y BOOTP/TFTP/NFS bootstrap loader ESC for menu Searching for adapter.. WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66 Searching for server... ここでは、 わたしのディスク無しのシステムはブートサーバとして振る舞うようなマシンを探しにいこうとします。 上の addr 行を記録しておいてください。 あとからその数が必要になります。ディスク無しのシステムを再起動して、 あなたの config.sysautoexec.bat ファイルを修正して これらの操作が自動で行われるようにしてください。 おそらくメニューの部分になるでしょう。 もし nb3c509.comnb8390.com の代わりに使わなくてはいけなかったとしても、出力は上と同じです。 もし Searching for adapter.. というメッセージが出るときに No adapter found ということを言われたら、 Makefile で定義されているコンパイル時間が正しくセットされているかどうかを確認してみてください。 システムがネットワーク越しにブートすることを許可する (サーバ上で) /etc/inetd.conf ファイルが tftp や bootps についてのエントリを持っているかどうかを確認してください。 わたしのは次のようになっています。 tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot # # Additions by who ever you are bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab もし /etc/inetd.conf ファイルを変更したときには、 inetd に HUP シグナルを送ってください。 これをするには、inetd のプロセス ID を ps -ax | grep inetd | grep -v grep して 取得してください。プロセス ID がわかったら、 それに向けて HUP シグナルを送ってください。 これは kill -HUP <pid> として行います。 これによって inetd はその設定ファイルを読み直します。 ディスク無しシステム上でブートローダが出力した addr の出力を覚えているでしょうか? ここでそれが必要となるのです。 /etc/bootptab (おそらくファイルを作成して) に エントリを加えてください。それはこれと同様の書式で書きましょう。 altair:\ :ht=ether:\ :ha=004001432666:\ :sm=255.255.255.0:\ :hn:\ :ds=199.246.76.1:\ :ip=199.246.76.2:\ :gw=199.246.76.1:\ :vm=rfc1048: これらの行は次のような意味です。 altair ドメイン名を除いたディスク無しのシステムの名前 ht=ether イーサネットハードウェアタイプ ha=004001432666 (先に記録した) ハードウェアのアドレス sm=255.255.255.0 サブネットマスク hn クライアントにクライアントのホスト名を送るよう、 サーバに伝えます ds=199.246.76.1 ドメインサーバがどれなのかをクライアントに伝えます ip=199.246.76.2 クライアントの IP アドレスが何なのかを クライアントに伝えます gw=199.246.76.1 デフォルトゲートウェイがどれなのかを クライアントに伝えます vm=... これはそのままにしておいてください IP アドレスは正しく設定してください。 上のアドレスはわたしだけのものです。 /tftpboot ディレクトリをサーバに作成して、 サーバがサービスを行うディスク無しのシステムのための設定ファイルをこのディレクトリに入れておきます。 これらのファイルは cfg.ip という名前になっていて、ip はディスク無しシステムの IP アドレスを表しています。 altair の設定ファイルは /tftpboot/cfg.199.246.76.2 となります。この中身は次のようになっています: rootfs 199.246.76.1:/DiskLess/rootfs/altair hostname altair.example.com hostname altair.example.com の行は単にディスク無しのシステムがどのような完全なドメイン名を持っているのかを表しています。 rootfs 199.246.76.1:/DiskLess/rootfs/altair の行はディスク無しのシステムが NFS でマウントできるルートファイルシステムの場所を表しています。 NFS でマウントされたルートファイルシステムは 読み出し許可だけで マウントされます。 ディスク無しのシステムの階層は要求されれば読み書き可能にして、 マウントし直すことができます。 わたしは予備の 386DX-40 を専用の X 端末として使用しています。 altair の階層は次の通りです。 / /bin /etc /tmp /sbin /dev /dev/fd /usr /var /var/run 実際のファイルのリストは次の通りです。 -r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel -r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh -rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc -rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys -rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts -rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair -r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init -r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig -r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs -r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot -r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount -r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local -r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV - dev ディレクトリで MAKEDEV all + (FreeBSD 5.X において初期状態で有効になっている) &man.devfs.5; + を利用していないのであれば、dev ディレクトリで + MAKEDEV all するのを忘れずに。 altair/etc/rc は 次の通りです。 #!/bin/sh # PATH=/bin:/ export PATH # # localhost の設定 /sbin/ifconfig lo0 127.0.0.1 # # イーサネットカードの設定 /sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00 # # NFS で root ファイルシステムをマウントする /sbin/mount antares:/DiskLess/rootfs/altair / # # NFS で /usr ファイルシステムをマウントする /sbin/mount antares:/DiskLess/usr /usr # /usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1 # # X を終了すると再起動 /sbin/reboot # # うまく行かないときには.... exit 1 コメントや質問はどんなものでも歓迎します。