服务器应用:搭建Linux新闻组服务器

间隙填充
正睿科技  发布时间:2008-11-17 09:21:36  浏览数:3250

新闻组服务是Internet上与WWW(HTTP)、E-Mail(SMTP、POP3)与FTP(FTP)齐名的四大网络信息服务系统之一,其对应的英文名称是Newsgroups,该服务使用的网络协议是NNTP(Network News Transfer Protocol),逻辑端口号为119。新闻组服务的作用是向网络用户提供分类的专题讨论组,供人们在网络上就自己关心的问题进行交流、讨论,相关讨论专题包括人类社会中的政治、经济、军事、科技、艺术、教育、生活、休闲等各类话题。

    简单的说新闻组是一个可以离线浏览的论坛,当在线时候可以把新闻组里面的帖子先接收到自己的电脑中,断线后仍旧可以阅读。新闻组出现于1980年美国北卡罗来纳州。它是一个基于网络的计算机的组合,这些计算机就是新闻服务器,新闻组用户通过新闻组客户端软件就可以连接到新闻服务器上,下载阅读其他人发上去的帖子并可以进行回复和讨论。它和我们现在使用的论坛差不多,不过它是不需要进行注册的,是任何一个网络用户都能进行相互交流的平台。

     新闻组服务器与客户端程序是采用NNTP网络新闻传送协议(Network News Transfer Protocol),使用的端口号是119。新闻组服客户端程序是按分类组织各个新闻分组的,接收由用户直接发送到服务器上的帖子,发送的帖子可以带有背景图案或音频,还可以附加各类文档、程序,以及图形、图像和多媒体内容等。新闻组还可以周期性地与相邻的其他新闻组服务器交换内容,采用这种接力传送的方法就可以获得各个新闻组服务器上的内容,再将所获得的内容定期保存于相应的新闻分组中,过期的帖子则由系统自动删除掉。在国外,该技术被广泛用于提供免费资源,中国通过该技术提供收费资源则相对较少。NNTP需要设置一台或多台中心新闻服务器,用来保留所有的新闻文章,服务器端可以设置不同的新闻组对新闻信息加以分类,用户端根据所订阅的新闻组与服务器端进行数据同步,接收到的稿件根据新闻组的分类规则对所属信息进行层次化展示,便于信息查找。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。

    新闻组的实时性没有 bbs论坛好,但是客户端不必登录到服务器,安全性相对要好; 新闻组和电子邮件相比:Email 保存在客户端,只有收件人能够查看和保存,而 新闻组存储在服务器端,可以随时查阅。新闻组和文档相比,新闻组的优越性在于时效性和便于沟通,文档的优越性在于条理性和归档保存。

    在 RFC 中和 新闻组相关的信息标准如下:NNTP : Network to Network Transfer Protocol (RFC 977),Stard for Interchange of USENET Messages (RFC 1036)。

1. 查看新闻组文章流程
  1) 客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,要求提供新闻组文章列表。
    2)新闻组服务器对客户端用户进行身份认证,确定客户端是否有阅读新闻组文章列表权限。
    3)通过身份认证后客户端就可以登录新闻组服务器。
    4)新闻组服务器向客户端转送新闻组文章列表。
    5)客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,从新闻组文章列表中列出希望查看的文章。
    6)新闻组服务器对客户端用户进行二次身份认证,确定客户端是否有阅读文章的权限。
    7)通过身份认证后客户端就可以登录新闻组服务器。
    8)新闻组服务器向客户端转送允许阅读新闻组文章。

2.发布新闻组文章流程

  1)客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,要求发布新闻组文章列表。
    2)新闻组服务器对客户端用户进行身份认证,确定客户端是否有发布新闻组文章权限。
    3) 通过身份认证后客户端就可以登录新闻组服务器。
    4)新闻组服务器的新闻发布控制端检查文章,新闻发布控制端拒绝的文章将丢弃,新闻发布控制端接受的文章将发布和存储。

    服务器端有四种存储方法可供选择。

    tradspool :在INN 2.0之前就已经使用的存储方式。文章以单独的文件存储,并分布在基于新闻组名的目录中。这种存储方式非常简单,并且很多第三方的INN插件依赖这种存储方式。缺点是效率不高。
    timehash :文章也是以单独的文件存储,但是目录名依据文章的时间而确定。这就保障了一个目录下不会存在有过多的文件。缺点是依旧没有解决过多文件操作造成的效率地下,而且文件的存储方式决定了难以像 tradspool 方式那样确定某个新闻组的文章数量和手工修改之。
    timecaf :类似于 timehash,文章根据时间分类。不同点是,不再每篇文章一个文件,取而代之的是使用一个文件来存储。缺点是更难以理解和手工修改服务器端的存储结构,而且作为一种新的存储方式,并没有被广泛使用和测试。
    cnfs :文章存储在预先定义好的文件缓冲区中,循环使用文件缓冲区,缓冲区满则覆盖前面的文章,因而对于 cnfs 存储方式,文章的过期设置比较特殊,且没有那么重要。

  1. 安装软件  

  可以通过Rat Het Enterprise Linux图形界面下的“添加/删除应用程序”工具进行安装。具体方法是,选择“主选单”→“系统设置”→“添加/删除应用程序”,在弹出的界面中选中“服务器”→“新闻组服务器”→“标准软件包”

  2. 服务器系统配置

    (1) 设置 news 用户帐号
    确认系统中包含 news 用户和 news 组,如果没有,需要添加:
    $ groupadd news
    $ useradd -g news -d /usr/local/news

    (2) 创建news用户密码
    使用passwd命令为news用户建立密码,操作如下:
    # passwd
    Changing password for user news.
    Changing password for news
    (current) UNIX password:
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens d successfully.

    (3) 检测修改配置文件
    首先使用login out 命令注销,然后使用news用户重新登录系统,使用inncheck命令检测配置文件.

 inncheck 检查的文件有: active、control.ctl、expire.ctl、incoming.conf、inn.conf、moderators、newsfeeds
    overview.fmt、nntpsend.ctl、passwd.nntp。请根据检测结果的提示修改文件权限:
    $ chmod 664 /var/lib/news/active

    (3)建立相关文件
    重新以超级用户权限登录系统,在/var/lib/news目录下产生历史(history)的文件,
    #/usr/lib/news/bin/makehistory
    在/var/lib/news目录下建立history.dir history.hash history.index
    #/usr/lib/news/bin/makedbz -i -o
    说明:-o 选项指生成新的 overview 数据库。如果使用了buffindexed方式的数据库,在调用 makehistory -O 重新生成 overview 前,先清除现有的 overview 数据。注意只有需要提供客户端服务的新闻组服务器才有必要建立 overview 数据库,对于只提供新闻中转的,无需建立和维护 overview 数据库。 
    把下面的三个目录及所有的文件和目录的属主改为news
# chown -R news.news /var/lib/news /etc/news /var/spool/news
 (4)使用命令启动INN新闻组服务器:
    #server innd start

    (5)检查INN新闻组服务器允许情况,和端口使用情况:
分别使用netstat和ps命令检查INN新闻组服务器允许情况,和端口使用情况.

 (6)使用 telnet 连接服务器 nntp(119) 端口:
    通常使用telnet连接INN服务器本地端口119查看其运行情况.

  打开窗口,在innd服务选项加上*(用空格键),然后重新启动系统,这样系统会启动innd服务。

    这里INN新闻组服务器设定就完成了,下面将介绍服务器主要配置文件和新闻组管理。