jumpanbc
部门经理

UID 12701
精华
9
积分 257
帖子 85
经验 257 点
CPW 242 钱
阅读权限 30
注册 2007-10-9
状态 离线
|
|
|
服务器应用:搭建Linux新闻组服务器
新闻组服务是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),Standard for Interchange of USENET Messages (RFC 1036)。
1. 查看新闻组文章流程
 | | 图1新闻组应用流程 | 1) 客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,要求提供新闻组文章列表。
2)新闻组服务器对客户端用户进行身份认证,确定客户端是否有阅读新闻组文章列表权限。
3)通过身份认证后客户端就可以登录新闻组服务器。
4)新闻组服务器向客户端转送新闻组文章列表。
5)客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,从新闻组文章列表中列出希望查看的文章。
6)新闻组服务器对客户端用户进行二次身份认证,确定客户端是否有阅读文章的权限。
7)通过身份认证后客户端就可以登录新闻组服务器。
8)新闻组服务器向客户端转送允许阅读新闻组文章。
2.发布新闻组文章流程
 | | 图2新闻组发布流程 | 1)客户端使用新闻组软件通过TCP 119端口向服务器组服务器发送请求,要求发布新闻组文章列表。
2)新闻组服务器对客户端用户进行身份认证,确定客户端是否有发布新闻组文章权限。
3) 通过身份认证后客户端就可以登录新闻组服务器。
4)新闻组服务器的新闻发布控制端检查文章,新闻发布控制端拒绝的文章将丢弃,新闻发布控制端接受的文章将发布和存储。
服务器端有四种存储方法可供选择。
tradspool :在INN 2.0之前就已经使用的存储方式。文章以单独的文件存储,并分布在基于新闻组名的目录中。这种存储方式非常简单,并且很多第三方的INN插件依赖这种存储方式。缺点是效率不高。
timehash :文章也是以单独的文件存储,但是目录名依据文章的时间而确定。这就保障了一个目录下不会存在有过多的文件。缺点是依旧没有解决过多文件操作造成的效率地下,而且文件的存储方式决定了难以像 tradspool 方式那样确定某个新闻组的文章数量和手工修改之。
timecaf :类似于 timehash,文章根据时间分类。不同点是,不再每篇文章一个文件,取而代之的是使用一个文件来存储。缺点是更难以理解和手工修改服务器端的存储结构,而且作为一种新的存储方式,并没有被广泛使用和测试。
cnfs :文章存储在预先定义好的文件缓冲区中,循环使用文件缓冲区,缓冲区满则覆盖前面的文章,因而对于 cnfs 存储方式,文章的过期设置比较特殊,且没有那么重要。
本文介绍的INN(InterNetNews)新闻组服务系统诞生于1990年底,是由Rich Salz(rsalz@bbn.com)等27位网络高手联合研制、开发并不断完善和维护的,可运行于Linux操作系统与UNIX操作系统中,目前该软件的最高版本为inn-2.3.5-6。有关INN新闻组服务系统的详细背景资料,可参阅INN系统的官方网站http://www.isc.org/inn.html。下面介绍在Linux系统中建立INN(InterNetNews)新闻组服务系统的方法。
1. 安装软件
可以通过Rat Het Enterprise Linux图形界面下的“添加/删除应用程序”工具进行安装。具体方法是,选择“主选单”→“系统设置”→“添加/删除应用程序”,在弹出的界面中选中“服务器”→“新闻组服务器”→“标准软件包”,见图3。  | | 图3 INN及其相关软件包的安装 | 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 updated successfully.
(3) 检测修改配置文件
首先使用login out 命令注销,然后使用news用户重新登录系统,使用inncheck命令检测配置文件,操作见图4:  | | 图4 检测结果 | 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新闻组服务器允许情况,和端口使用情况,见图5。  | | 图5检查INN新闻组服务器允许情况,和端口使用情况 | (6)使用 telnet 连接服务器 nntp(119) 端口:
通常使用telnet连接INN服务器本地端口119查看其运行情况,见图6。  | | 图6 使用telnet连接INN服务器本地端口119 | 测试INN新闻组服务器是否正常启动。如果出現ready 的情況,則表示设定正确。
(7)如果希望INN服务器每次启动都能自动运行,可以用ntsysv设置。以root权限运行命令:#ntsysv  | | 图7 启动INN服务器自动加载 | 打开如图7所示的窗口,在innd服务选项加上*(用空格键),然后重新启动系统,这样系统会启动innd服务。
这里INN新闻组服务器设定就完成了,下面将介绍服务器主要配置文件和新闻组管理。
|
|
|