22.3. 限制 NNTP 访问

对 NNTP 资源的访问由文件nntp_access/etc/news。此文件中的行描述了授予外部主机的访问权限。每行具有以下格式
site   read|xfer|both|no    post|no      [!exceptgroups]

如果客户端连接到 NNTP 端口,nntpd 尝试使用反向查找从其 IP 地址获取主机的完全限定域名。客户端的主机名和 IP 地址将根据site字段,按照它们在文件中出现的顺序检查每个条目。匹配可以是部分匹配或完全匹配。如果条目完全匹配,则应用该条目;如果匹配是部分匹配,则仅当在其后没有至少同样好的其他匹配时才应用。site可以用以下方式之一指定

主机名

这是主机的完全限定域名。如果这与客户端的规范主机名完全匹配,则应用该条目,并且所有后续条目都将被忽略。

IP 地址

这是点分十进制表示法的 IP 地址。如果客户端的 IP 地址与此匹配,则应用该条目,并且所有后续条目都将被忽略。

域名

这是一个域名,指定为 *.。如果客户端的主机名与域名匹配,则条目匹配。

网络名

这是网络名称,如在/etc/networks。如果客户端 IP 地址的网络号与网络名称关联的网络号匹配,则条目匹配。

默认

字符串default匹配任何客户端。

具有更通用 site 规范的条目应较早指定,因为任何匹配都将被稍后更精确的匹配覆盖。

第二个和第三个字段描述了授予客户端的访问权限。第二个字段详细说明了通过拉取 (read) 检索新闻以及通过推送 (xfer) 传输新闻的权限。both 值启用两者;no 完全拒绝访问。第三个字段授予客户端发布文章的权利,即传递标题信息不完整的文章,这些信息将由新闻软件完成。如果第二个字段包含 no,则第三个字段将被忽略。

第四个字段是可选的,包含以逗号分隔的组列表,客户端将被拒绝访问这些组。

这是一个示例nntp_access文件
#
# by default, anyone may transfer news, but not read or post
default                 xfer            no
#
# public.vbrew.com offers public access via modem. We allow
# them to read and post to any but the local.* groups
public.vbrew.com        read            post    !local
#
# all other hosts at the brewery may read and post
*.vbrew.com             read            post