News-HOWTO Vince Skahan, March 26, 1994 さとけん, April 27, 1994 この文書では Linux で USENET ニュースを設定し、管理および配送する方法 を扱います。ローカルシステムのみで、もしくは他サイトと USENET ニュース を読み書きする予定があれば、この文書を読んで下さい。USENET ニュースを 利用しないなら、これを読んでも意味がないでしょう。 JF より:この文書は、1994年以来更新されていません。現在とは状況が異な ると思われるので、ご注意ください。 1. 始めに Linux 一般で、また特に SLS 版 Linux で USENET ニュースのソフトウェアを 使用する際によく出る質問や意見に答えるのが、この文書の目的です。 以前 comp.os.linux.announce に投稿されていた旧 UUCP-NEWS-MAIL-FAQ の続 編が、この NEWS-HOWTO や、 UUCP とメールの HOWTO 文書です。 1.1. この文書の最新版 この文書の最新版は定期的に comp.os.linux.announce, comp.answers, news.answers に投稿されます。また sunsite.unc.edu の /pub/Linux/docs/HOWTO ディレクトリをそのままコピーしている FTP サイト からも取得できます。 1.2. 感想などは この文書に関するメールでの意見はどんな物にも感心があります。間違いや追 加して欲しい事があれば私にお知らせ下さい。 私は、受け取るメールは全て読みますが、全部に返事を出す訳ではありませ ん。暇があるか、変更に価値があるか、その日の血圧はどうか :-)、等を考慮 の上で、この文書を希望に沿って改善します。 お怒りは静かに /dev/null に葬られますので、わざわざ送る意味はありませ んよ。 この文書の構成に関する意見は、HOWTO のまとめ役である Matt Welsh 氏 に送って下さい。 1.3. 著作権 News-HOWTO は Vince Skahan に著作権があります。 そのままの形であれば、いかなる媒体や電子的であろうと、複製や配布に著者 の許可は必要ありません。翻訳についても、だれが翻訳したかを明記していれ ば、同じように許可は必要ありません。 短い引用として使用するときにも、著者の同意は先でなくてもかまいません。 この文書を大幅に書き換えたり、不完全な形で配布する場合には、原本のコ ピーか、原本の在処を添付して下さい。 営利目的での再配布も、もちろん許可します。けれども、配布の際には著者に 連絡して下さい。 この情報を必要とするたくさんの人への宣伝の、促進を願っています。けれど も HOWTO 文書の著作権も保持したいと思っていますので、 HOWTO の再配布の 予定などは、連絡して下さい。 HOWTO をより良くするための情報であれば、なんでも教えて下さい。もし質問 があれば、 Linux HOWTO のまとめ役である Matt Welsh に連絡して下さい。 連絡は、電子メールであれば mdw@sunsite.unc.edu に、電話であれば +1 607 256 7372 にお願いします。 1.4. 標準の放棄 もちろん、私は本文書の内容についての責任を否認します。本文書に含まれて いる概念、例などを使用するのは、全てあなたの責任で行って下さい。 1.5. 情報源 1.5.1. USENET 内容によって以下のようにニュースグループが分かれています。 news.admin.misc : ネットワークニュース管理に関する一般的な話題 news.admin.policy : USENET の利用方針 news.admin.technical : ネットワークニュースの保全について(査読あり) news.software.b : B-News 互換ソフトウェアに関する論議 news.software.nn : nn ニュースリーダに関する論議 news.software.nntp : ネットワークニュース転送プロトコル関連 news.software.readers : ネットワークニュースリーダ関連 news.sysadmin : システム管理者向け news.announce.newusers : 新規ユーザへの説明(査読あり) news.newusers.questions : 新規ユーザのためのQ&A 1.5.2. 書籍 これが全てではありませんが、役立つ本を下に紹介します。 ・「Managing UUCP and USENET」(O'Reilly and Associates) 【訳注:日本語訳は「UUCP システム管理」(アスキー)】 USENET に接続する時に使うプログラムやプロトコルを解説し、市販されてい る本の中では最高だと思います。 ・「Unix Communications」(Waite Group) UNIX の通信について、あらゆる事柄がうまく解説されています。 ・「Practical Unix Security」(O'Reilly and Associates) 【訳注:日本語訳は「UNIX セキュリティ」(アスキー)】 一般的な UUCP の安全対策について、良く書かれています。 ・「The Internet Complete Reference」(Osborne) インターネットで利用できるさまざまなサービスや、ニュースで紹介される情 報のための素晴らしい one-stop-shopping のソースや、メール、その他のさ まざまなインターネットの資源について説明されている、良い参考書です。 1.6. 質問するべきでない所 Linux で USENET ニュースを動かすのは特別な事ではありません。ですから ニュースに関する一般的な質問は comp.os.linux.* には投稿しないで下さ い。 本当に Linux に特化した問題でない限り、上にも書いたニュースグループに 質問して下さい。Linux に特化した質問とは次の様な物です。「SLS 1.03 に 入っている bash1.12 で INN を動かすためのパッチはありますか?」 もう一度繰り返します。 ニュースに関する質問を comp.os.linux に投稿する理由はもう存在しませ ん。 Linux でのニュースシステムに関する質問も news.* で扱っています。 あなたが comp.os.linux.* に Linux に特化しない一般的な質問を投稿したな ら、答えは得られないでしょう。 USENET ニュースのエキスパートは上に書い ているニュースグループしか見ていないでしょうし、大概 Linux は動かして いません。 comp.os.linux.* に Linux に特化しない一般的な質問を投稿しても、あなた の質問の答えを得るために、しばしばあなたや他の人の時間を浪費するだけで す。 2. 必要なハードウェア Linux の USENET ニュースでは、特殊なハードウェアは必要ありません。利用 するソフトウェア、スレッドデータベース、およびニュース記事を保持するこ とができるディスク領域(最低でも10M程度)が必要なだけです。 3. USENET ニュースソフトウェアの取得 この文書で扱っている全てのソフトウェアは、インターネットの大抵の FTP サイトから入手できます。 まずは ftp.uu.net の /news を見るのがいいでしょう。 newspak-2.1.tar.z に入っている設定ファイルや解説文には、各処の自由に使 えるソースファイルから UUCP、ニュース、メールなどのソフトウェアを構築 し、 Linux で動かすための情報があります。これは大抵 sunsite.unc.edu の /pub/Linux/system/Mail ディレクトリにあります。 4. ニュース転送ソフトウェア 最近の *nix 用ニュース転送ソフトウェアには、Cnews と INN の2つがあり ます。古い Bnews は、今後バージョンアップもサポートもされないことが作 成者から公式に宣言されました。 ニュース転送ソフトウェアは、記事の投稿を受け付け、配送し、ニュースリー ダで読めるようにするソフトのことです。 UUCP の Permissions ファイルに絶対パスで rnews を記述し、ニュースリー ダから inews と mail が利用できるように設定すれば、何処に置いてもかま いません。 重要:Cnews と INN の混用は厄介なだけです。どちらか一つだけを使いま しょう。 Cnews と NNTP の Reference Release は始めから相性よく作られて いますから、両方インストールしても問題ありません。 4.1. Cnews Performance Release Cnews は現在標準的に使用されているニュースソフトウェアです。 1988 年に 公開され、改良が続けられています。 Cnews の主な利点は、その完成度にあります。文字通り世界中の幾千のシステ ムで動作していますので、知られている全ての *nix マシンで動作するでしょ う。 欠点は、モデム経由での UUCP 接続しか考えられていないために、リアルタイ ムにインターネットで配送し読むためには NNTP ソフトウェアを追加しなけれ ばならないことでしょう。 さらに各種ニュースリーダ用の外部スレッドパッケージが必要です。しかし現 在でも、少しは役に立つ NOV パッケージへの接続が可能ですし、もうすぐ公 開される Cnews cleanup release では正式に対応するという話です。 いずれにせよ、安定してる、文書が豊富、どんな質問にも答えてくれる経験豊 富な管理者が沢山いる、等の理由から、 USENET の管理を始める人はまず Cnews を動かすのが良いでしょう。 sunsite にある newspak-2.1.tar.z には、Linux で Cnews を動かすための設 定ファイルや、bash1.12 で doexplode をメイクする際に発生する問題 (Linux のアーカイブサイトに置かれている bash1.13 を使えば発生しません が ) を回避するためのパッチが含まれています。 4.1.1. Cnews のインストール ドキュメントを読めば、 Cnews Performance Release はまったく問題なくイ ンストールできます。 Cnews Performance Release のインストールはマニュ アルを読んでください。ソースファイルを入手し、展開して、マニュアルの手 順に従うだけです。 newspak に含まれている build.def は最初に build を実行し、単に /usr/include のファイルから答えを調べて、生成されたものです。 コンパイルは何回か止まるでしょう。いずれも gcc で問題になる atoi() と atol() マクロを、 doit.bin からコメントアウトしなければなりません。 また、 bash 1.12 のバグを回避するように doexplode に次のパッチが必要で す。このパッチを使わなければ下流サイトには何も送られません。 ( Steve Robbins 氏 から ) if [ ! -f $f ] ; then continue; fi # この行を追加 # case "$f" in # この行をコメントアウト # "out.master/[0-9]*") break ; # この行をコメントアウト # esac # この行をコメントアウト Cnews に詳しい Henry Spencer 氏によると、 doexplode と bash で現在問題 になっているコードについては、新しいリリースでの修正項目になっているそ うです。 Linux 用の bash 1.13 β版でもこのパッチが必要かどうかは現時点では不明 です。私は、新しい bash とライブラリでパッチ無しに切替えましたが、落ち た事はありません。 ( 何が良かったのかは分かりませんが :-) 4.1.2. Cnews の設定 少なくとも、/usr/local/lib/news にある以下のファイルは編集しなければな りません。 active : active ファイル batchparms : バッチパラメータ explist : 記事の時効の設定 mailname : メールでリプライするためのヘッダ内の名前 mailpaths : 査読のあるニュースグループへの投稿用アドレス organization : あなたの組織名 sys : ニュースグループの取捨を選択 whoami : Path: 行に設定するホスト名 4.1.3. Cnews サイトの管理 まず、専用のユーティリティがあるファイルを直接エディタなどでいじるのは 止めた方が良いでしょう。特にニュースの配送と active ファイルの設定で は、それぞれ addfeed や addgroup などのコマンドを使って下さい。迷った 時には、ソースに含まれている文書を何度も読んで下さい。 その他は全部 cron から起動します。私の crontab の news に関する部分は 下のようになっています。 # 他システムから送られてきた圧縮済みデータの取得 20 * * * * /usenet/sw/news/bin/input/newsrun # 送信用のファイルをまとめる 0 * * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite # 時効記事の削除 59 0 * * * /usenet/sw/news/bin/expire/doexpire # ニュースを監視し、必要なら報告 10 5 * * * /usenet/sw/news/bin/newsdaily 00 5 * * * /usenet/sw/new/bin/newswatch # 受信ニュースデータの処理の停止( 6:30am - 4:00pm ) 30 6 * * * /usenet/sw/news/bin/input/newsrunning off 00 16 * * * /usenet/sw/news/bin/input/newsrunning on 4.2. InterNetNews (INN) INN は比較的新しく、完成度が高まるにつれ人気が出てきました。主な利点 は、スピードと nntp パッケージを統合して含んでいることです。主な欠点 は、新しいことと、標準的な *nix でもインストールや動作が必ずしもすんな りとは行かない事でしょう。また、メモリ使用量とスピードの兼ね合いになり ますが、常に動いているデーモン(innd)と、オーバチャネルになる可能性を 秘めたスレッド用デーモンを用いて動作するのも欠点でしょう。 新しい USENET 管理者は、B-news か Cnews のどちらかを経験するまでは、 INN は止めた方がいいでしょう。Linux 上でも高速で信頼性がありますが、 ニュース管理の初心者用の文書はありません。(ただし、実際には、設定がわ かれば後は比較的簡単です。) INN はパーミッションにとても厳重ですから、それらを修正しないで下さい。 INN はまた、同時に動かされている TCP/IP の品質にとても厳格です。現在の Linux では必ずしも当てはまりませんが、 Linux の有名なアーカイブサイト から Linux 用の INN を入手される事をお勧めします。 4.2.1. INN のインストール ( Arjan de Vet 氏 <ユーザネーム> <パスワード> ニュースサーバ(上記の SERVER_FILE の中のもの)が shoop.vpizza.com で、そのマシンで投稿するためにはユーザネームが news、パスワードが floof のユーザの権限が必要だとしましょう。この場合、稿するために必要な 権限を持っているのであれば、 /usr/local/lib/news/nntppass )に、下の行 が必要です。 shoop.vpizza.com news floof 6. ファイルの安全性を高めます。inews プログラムはユーザ usenet で動か して、ニュースのディレクトリと nntppass ファイルのオーナを usenet にします。 chown usenet /usr/local/lib/news chmod 755 /usr/local/lib/news chown usenet /usr/local/lib/news/nntppass chmod 600 /usr/local/lib/news/nntppass ( nntppass ファイルに書かれている)パスワードは暗号化されていないの で、(ユーザ usenet と root 以外には)読めなくします。 7. nntp.1.5.11 のソースディレクトリに戻って、 make client を行ないま す。ここでは、 inews の NNTP バージョンを構築します。これは NNTP ク ライアントが使う唯一のファイルです。 私が inew を構築した時は、 uname.c にある uname() 関数が自分自身を 永久に呼び続けるというライブラリのバグがありました。これはもう修正 されたはずです。inews がハングしたように見えたり、システムの動きが 相当遅くなったりしたら、 uname.c にある uname() を例えば my_uname() に変更し、( inews.c の中で)代わりに my_uname() を呼ぶように変更し て下さい。この問題が発生したら、メールで知らせて下さい。 ( これは私 (VDS) ではなく :-) Matt 氏にメールして下さい。 ) 8. inews のプログラムをインストールするために、 make install_client を 行ないます。これにより、 /usr/local/lib/news/inews から /usr/local/bin/inews へのリンクも作られます。 これで、(手で)投稿することが出来るようになります。下のように、 やってみて下さい。 $ inews -h << EOF Newsgroups: misc.test From: me@foo.bar.com Subject: Testing Reply-To: my-real-address@wherever.edu This is a test. EOF 入力すると、 inews が記事を投稿し、上の Reply-To の行にあるアドレス に、 misc.test のテストレスポンダから返事が送られてきます。どうか c.o.l.* :) のような実際のグループで、投稿のテストはしないで下さい。 7.11. nntp ベースのニュースリーダ/ポスタである rrn を構築するにはど う すればいいですか? ( mdw@sunsite.unc.edu (Matt Welsh 氏) ) 1. rn のソースディレクトリに移って、 ./Configure を実行します。ほとん ど全ての質問でデフォルトを選択します。rn が利用できるように、 /lib の中に cpp (通常は /usr/lib/gcc-lib/i386-linux/2.3.3 の中)へのリ ンクがあることを確認して下さい。 o - NeXT もしくは USG システムだといわれても、落ち着いて回答を続け て下さい。 o - Do you expect to run these scripts and binaries on multiple machines? には y と答えます。 o - ドメインネームには、例えばシステムが foo.bar.com であれば bar.com と答えます。(これはドメインであって、ホストネームではあ りません) o - ニュース管理のユーザネームには usenet と答えます。 o - Where is your news library? には、上で書かれている、NNTP ファ イルが置かれているディレクトリ(私は /usr/local/lib/news )を答 えます。 o - Man page source は /usr/man/man1 です。 o - Does your /etc/passwd file keep full names in Berkeley/V7 format? には y と答えます。 o - コンパイラの名前には gcc と答えます。 o - Do you want to build the NNTP version of rn (rrn)? には y と答 えます。 o - ニュースサーバのファイル名には、上で inews を構築する時に使用 したもの(私は /usr/lcoal/lib/news/server )と同じものを答えま す。 まだ makedepend を実行しないで下さい。次のステップに進みましょう。 2. config.h を編集します。まだ直っていなければ、 #define ROOTID の行を #define ROOTID 0 に変更して下さい。 3. rrn-4.4.pl3 には、 Linux には存在しない SIGEMT に関して小さなバグが あります。rn はプロセスがまだ動いているかチェックするために SIGEMT を使用しています。POSIX.1 では代わりにシグナル 0 を送ってやるだけで す。 init.c の 243 行目が if (kill(processnum, SIGEMT)) { となっていれば if (kill(processnum, 0)) { に変更して下さい。 #ifdef で変えればいいと思われるでしょうが、 final.c の中の sigignore() で問題が発生しますので、 SIGEMT を 0 に定義してはいけません。 4. makedepend > makedepend.out を行ないます。 5. make を行ないます。これで rn のコンパイルが完了します。 6. make install を行ないます。 これでできあがりです。 rn は(いくつかのニュースリーダと同じように) ニュースグループファイルを扱うために大量のメモリを使用することを忘れな いで下さい。 rn を最初に実行する時は、ニュースグループを調査して .newsrc ファイルを作るために少し遅くなるでしょう。せっかちな人は、他の 人が使っている .newsrc ファイルをコピーして下さい。