第四个系统组件,如果没有它,Usenet 服务器管理员不敢冒险进入公共互联网新闻提要的狂野世界,那就是pgpverify.
当您下载我们的软件发行版时,您会解压它并找到一个目录树,其中包含以下子目录和文件:
c-news:CR.G 软件版本的源代码树,其中包含我们的添加,例如pgpverify集成、我们的脚本,例如mail2news和预先创建的配置文件。
nntp-1.5.12.1:原始 NNTPd 版本的源代码树,其中包含预先配置好的头文件,以适应我们的 C-News 配置,以及我们添加的一些部分,例如 Nestor,日志分析程序。
build.sh:如果您足够幸运并且一切顺利,您可以运行此 shell 脚本来编译整个组合源代码树并将二进制文件安装在正确的位置。
毋庸置疑,我们相信我们的源代码树是一个比原始组件更好的起点,特别是如果您是在 Linux 机器上首次安装 Usenet 服务器。如果您遇到问题,我们可以通过电子邮件提供技术帮助。
nntp 119/tcp \# Network News Transfer Protocol |
nntp stream tcp nowait news path-to-tcpd path-to-nntpd |
配置控制文件:$NEWSCTL 中有很多控制文件,在开始使用新闻系统之前需要配置它们。此处提到的文件也在标题为 "运行系统的组件>" 的章节的第一部分中进行了讨论。以下详细介绍了这些控制文件。
sys:每个系统/NDN 一行,列出每个系统订阅的所有 newsgroup 层次结构。每行都以系统名称作为前缀,以
ME: |
ME:comp,news,misc,netscape |
server/server.starcomsoftware.com:all,!general/all:f |
explist:此文件包含指示哪些文章何时过期以及是否必须存档的条目。列出 newsgroup 的顺序很重要。下面是一个例子:
comp.lang.java.3d x 60 /var/spool/news/Archive |
batchparms: sendbatches是一个管理将新闻文章批量传输到其他站点的程序。为此,它会查阅batchparms文件。该文件中的每一行都指定了您的sys文件中提到的每个 NDN 的行为。每个站点需要指定五个字段。
server u 100000 100 batcher | gzip -9 | viauux -d gunzip |
第一个字段是站点名称,该名称与sys文件中的条目匹配,并在$NEWSARTS/out.going中有一个相应的目录,名称与该站点名称相同。
第二个字段是站点的类别,u 代表 UUCP,n 代表 NNTP 馈送。此字段中的 "!" 表示已禁用此站点的批处理。
第三个字段是要准备的批处理大小(以字节为单位)。
第四个字段是传输到该站点的输出队列的最大长度。
第五个字段是用于构建、压缩和传输到该站点的批处理的命令行。该togo文件的内容可在标准输入上获取。
controlperm:此文件控制新闻系统如何响应控制消息。每一行由 4-5 个字段组成,字段之间用空格分隔。控制消息已在 "第 2.4 节>" 中讨论。
comp,sci tale@uunet.uu.net nrc pv news.announce.newsgroups |
第一个字段是该行应用到的新闻组模式。
第二个字段可以是关键字 "any" 或一个电子邮件地址。后者指定该行仅适用于来自该作者的控制消息。
第三个字段是一组操作码字母,指示需要对来自第二个字段中提到的电子邮件地址的消息执行哪些控制操作。n 代表创建新组,r 代表删除新闻组,c 代表检查组。
第四个字段是一组标志字母,指示如何响应满足所有适用性测试的控制消息。
y Do it. n Don't do it. v Report it and include the entire control message in the report. q Don't report it. p Do it iff the control message carries a valid PGP signature. |
第五个字段(可选)将在第四个字段包含 p 时使用。它必须包含用于签名验证的公钥的 PGP 密钥 ID。
mailpaths:此文件描述了如何通过邮件联系各种新闻组层次结构的审核人。每一行由两个字段组成:一个新闻组模式和一个电子邮件地址。使用第一个组模式与新闻组匹配的行。例如
comp.lang.java.3d somebody@mydomain.com all %s@moderators.uu.net |
杂项文件: 其他需要修改的文件是
mailname包含新闻系统的 Internet 域名。如果您没有,请考虑获取一个。
organization包含Organization本地发布的帖子标题的默认值。
whoami包含新闻系统的名称。这是在Path标题中使用的站点名称,因此应与您的邻居在其sys文件中使用的名称一致。
active文件:此文件为您的新闻系统上的每个新闻组(而不仅仅是层次结构)指定一行。您需要从ftp://ftp.isc.org/usenet/CONFIG/active获取 active 文件的最新副本,并对其进行修剪以删除您未订阅的新闻组。为此文件中的每个新闻组运行脚本addgroup,这将在$NEWSARTS区域中创建相关目录。该addgroup脚本采用两个参数:正在创建的新闻组名称和一个标志。该标志可以是以下任何一个
y local postings are allowed n no local postings, only remote ones m postings to this group must be approved by the moderator j articles in this group are only passed and not kept x posting to this newsgroup is disallowed =foo.bar articles are locally filed in "foo.bar" group |
comp.lang.java.3d 0000003716 01346 m |
newsgroups文件:此文件包含 active 文件中找到的每个新闻组的单行描述。您需要从ftp://ftp.isc.org/usenet/CONFIG/newsgroups获取最新文件并对其进行修剪以删除不需要的信息。例如
comp.lang.java.3d 3D Graphics APIs for the Java language |
别名: 这些别名是问题报告所必需的。系统到位并运行脚本后,异常/问题将报告给/etc/aliases文件中的地址。这些条目包括newsmaster, newscrisis, news, usenet, newsmap的电子邮件地址。它们应该理想地指向定期访问的电子邮件地址。安排newsmap的电子邮件被丢弃,以尽量减少sendsys bombing的影响,这是由恶作剧者造成的。
Cron 作业: 某些脚本,例如newsrun,用于拾取传入的批处理和维护脚本,应通过新闻数据库所有者的 cron 运行,即news。理想情况下,cron 条目将用于以下内容:更详细的报告可以在 "第 9.4 节>" 中找到
newsrun此脚本处理传入的文章批次。按照您希望它们被消化的频率运行此脚本。
sendbatches此脚本将批次传输到 NDN。根据您的要求设置频率。
newsdaily理想情况下,应该每天运行一次,因为它会报告新闻系统中的错误和异常。
newswatch这会在更详细的级别查找错误/异常,因此至少每小时运行一次
doexpire此脚本会按照 explist 文件的确定删除旧文章。每天运行一次。
newslog在系统的syslog.conf文件中为nntpd中newslog喷出的日志消息创建一个条目。它应该位于$NEWSCTL中。该条目将如下所示
news.debug -/var/lib/news/newslog |
Newsboot让它在系统启动时运行(作为news新闻数据库所有者),以清除崩溃留下的碎片。
在 sendmail 中添加 Usenet 邮件程序:源代中提供的mail2news程序是一种将电子邮件发送到新闻组的便捷工具,该电子邮件将被消化为文章。您需要在您的sendmail.cf文件中添加以下规则集和邮件程序定义
在 SParse1 下,添加以下内容
R$+ . USENET < @ $=w . > $#usenet $: $1 |
在邮件程序定义下,将邮件程序 Usenet 定义为
MUsenet P=/usr/lib/newsbin/mail2news/m2nmailer, F=lsDFMmn, S=10, R=0, M=2000000, T=X-Usenet/X-Usenet/X-Unix, A=m2nmailer $u |
为了将邮件发送到新闻组,您现在必须在新闻组名称后附加 usenet,即 您的To标头将如下所示
To: misc.test.usenet@yourdomain. |
这或多或少完成了配置部分。
cnewsdo addgroup mysite.test y |
正如 "第 2.4 节>" 中提到的,验证控制消息变得必要,以保护自己免受恶作剧者的攻击。为此,您将需要配置$NEWSCTL/controlperm文件以声明您愿意接受谁的控制消息,以及针对哪些新闻组,以及他们的公钥 ID。该controlperm手册页将为您提供有关格式的详细信息。
这只有与pgpverify结合使用才能起作用,后者验证已使用signcontrol流程签名的 Usenet 控制消息。该脚本可以在ftp://ftp.isc.org/pub/pgpcontrol/pgpverify. pgpverify找到,它内部使用 PGP 二进制文件,该文件必须在默认的可执行文件目录中可用。如果您希望为您的本地新闻系统发送控制消息,您将必须使用上述signcontrol程序对其进行数字签名,该程序可在ftp://ftp.isc.org/pub/pgpcontrol/signcontrol获得。您还需要相应地配置signcontrol程序。
如果你是一个叶节点,你只需要将你的帖子回传给你的新闻提供商,以便你的帖子在公共新闻组中传播到外部世界。要启用此功能,你需要在 sys 和 batchparms 文件中各添加一行,并在 $NEWSARTS/out.going 中创建一个目录。如果你愿意将文章传输到你的邻近站点,你需要配置更多的 sys 和 batchparms 条目。$NEWSARTS/out.going 中的目录数量也应增加。请参考标题为 "运行系统组件>"的章节的前两节,以便更好地理解传出源。再次,你需要确定你希望使用哪种方式传输源:UUCP 或 NNTP。
对于通过 UUCP 传出的源,我们建议你从 Taylor UUCP 开始。事实上,这是构成 GNU 项目一部分的 UUCP 版本,也是 Linux 系统上的默认 UUCP。