BBS水木清华站∶精华区

发信人: chen@cc.nctu.edu.tw (C.S.Chen), 信区: Config 
标  题: [NNTP] spamcancel 与 news filter - 理论与实务 
 
 
[NNTP] spamcancel 与 news filter - 理论与实务 
============================================ 
 
问题说明: 
 
         这□想谈, 在 NetNews 上, 目前常会碰上的某一些问题, 
这一类的东西, 通常有个特质, 是很容易形成多数人的反感. 
-- 像广告信, 像到处乱丢, 一些"昭告天下" 的东西,... 等等. 
 
目前一般网路上的通行处理方式与经验,  大概可以分成 
 
  a) 事前的 filtering - 防□於未然. 
  b) 事後的 cancelling - 清除 garbage 的动作. 
 
两类作法, 各有优劣, 在此仅提供出来给大家, 做为处理类似事情的参考. 
-------------------------------------------------------------------- 
..林昱仁. (helios.bbs@bbs.cis.nctu.edu.tw) 提到: 
 ==> 在 Shuo.bbs@BBS.me.nctu.edu.tw (一年3000篇的硕硕 的文章中提到: 
 > ==> 在 bv3co@ctarl.org.tw (Lee's) 的文章中提到: 
 > :  若有恶劣使用者,也使用此种方式大量送出 cancel message 时,如何处 
 > :  置?总不能说只允许州官放火,不许百姓点灯吧! 
 > 那些不管的 News Server 一样会照那些 cancel message 砍啊~~ 
 > 只要稍为懂一点 NNTP 架构的人一样可以做这种事.... 
 > 绝对不会有"只许州官放火,不许百姓点灯"这档子事... 
 
          我想 bv3co 的一个意思应该是指, 像有时後一些系统由於设计上 
      的 bug, 我们可以利用 bug 送一些指令过去让那机器执行, 可能那指 
      令就把那系统毁了, 是否可称为该机器自己愿意收, 自己愿意执行,和 
      那送指令者无关. 
 
这两类的东西, 应该不能, 如此简单类比. 
 
对於 bug 的处理态度, 系统管理者, 自然是发现後, 就想法补起来. 
 
对於 NNTP cancel 的处理方式, 第一个前题, 是准备将某一篇先前发出, 但可能有些 
不适当的问题, 事後发出一个补救 cancel message 加以删除, 以避免其後续的影响. 
 
当年这个 protocol 的简单假定, 只有 user 本人, or 系统管理者, 会有这 
种需求. 当然以现今来看, 这种假设的, 在很多情况下, 不能适用. 
 
 纯就技术的观点, 就个人了解, 迄今, 仍没有一个简单有效, 而且多数人都 
 能接受的作法, 因为这本质上是类似於一种逻辑诡辨的问题. 
 
 a) 只有原作者, 可以送出 cancel message. 
 b) 除了原做者, 还有一个(or 以上) 的 superuser 可以送出 cancel message. 
 c) 除了原做者, 该站台的 administrator(s), 还有其他 第三者, 可以送出 
    cancel message. 
 
其实, 不管选那一种, 都有问题. 都有一些无法让人满意的情形. 
 
像这种情况, 只好从事件本身来想办法因应. 
 
如果, 经常有在注意(or 曾经) news.admin.net-abuse.* 系列 newsgroups, 
应该可以发现一些可供参考的经验: 
 
  1) 有一些 newsgroups/board, 绝对不能碰. 
     -- 大概就是讲 politics, sex 之类的话题区. 
        许多属於, 个人好恶不同, 又是民生相关的东西, 很容易没完没了. 
 
        只要是跟 newsgroups/boards, 名称相关, 这几类民生相关, 的话题 
        区, 即始再乱, 也不能管. 解决这类的争端, 要靠舆论的参与, 
        ( 当然如果, 有违反法律或善良风俗情状, 自然有人会出面治裁 ) 
 
        所以, 你可以看一些 spamcanceller 之类的程式, 都很识趣的不理会 
        alt.sex.* 等这类的讨论区, 要是真的太离谱了, 那就根本不收. 
 
------------------------------------------------------------------- 
  2) Internet 太自由了, 也正因为其 open 特性, user 随时加入太容意了. 
     网路上的 gargage 充斥, 当然对很多人而言, 是赚到了,(有这个"好康"的) 
     随便乱丢广告, 乱丢 email bomb, ... (消遣消遣..) 
 
     但是对其它多数的 user, 这无疑是莫大的干扰与伤害. 
     -- 难道, email bomb 把他炸回去吗 ? 
 
     其实, 这不一定解决的了问题, (通常是根本解决不了的), 有一些 email 
     From address 本来就是假的, 一个普通的 user, 大多数的人, 通常都 
     不太会去分辨这些, 如果在 reply 回去, 或许刚好又"中计", 陷害到 
     另一个人. 
 
    那一般 user 怎麽办 ? 多数人, 很直觉的又会觉得, 应该有人出来 do something. 
 
    通常故事情节就是这样: 
    -------------------- 
 
    有能力的 good guy, 出来对付 bad guy. 代为清除, 防赌这一类 network 
    garbage. 於是, 这些 user 们, 终於有了一个 "乾静舒适" 的网路空间. 
 
    然而, 许多时候, 事情可能不是这样就算了, 有一些当事人, 不免会抗议, 
    为什麽将我的 post "处理掉" ? 有什麽权力, ... 
 
    几年前, 另有一段故事情节: 
    ------------------------ 
     ( sorry, 有一些人物与细节, 可能与事件的真象, 有一些出入) 
 
    当年 alt.chinese.text 和 alt.chinse.test.big5, 为世界各地的 
    华人提供一个话题交换的空间. a.c.t 是以 HZ 码 为主, 成立在先. 
    然後, NCTU CSIE 的 skhuang 申请成立 a.c.t.big5, 并且著手, 设计 
    转码系统, 设计转信 gateway, 在跟 a.c.t 的 常用者沟通後, 终於将 
    a.c.t 和 a.c.t.big5 两者互转起来, 於是熟稀 HZ 码的人, 可以利用 
    HZ code 的环境, 看一些世界华人共同关心的问题, 某人用 HZ 码, post 
    一篇 articles, 经过 gateway 程式後, 在 a.c.t.big5 也可以看到, 
    反之, 亦然. 
 
    於是, 当年, 两岸的网路人士(其实, 多数是大陆在海外的华人, 大陆的 
    网路建设当时还太差), 透过网路, 使用各自熟悉的中文环境, 大谈两岸 
    的统独问题, .... ( 比三通跑得还快 ) 
 
    记得, 当时许多人, 每天必做的一件事, 就是上 a.c.t.big5 找找看, 有哪 
    些有趣, 那些火药味的刺激话题, .. 
 
    很可惜, a.c.t.big5 和 a.c.t 互转, 大概 run 了两年多. 就栽在彼此 
    薄弱的互信的基础下. 当年的, 一个导火线的大事之一, 就是有一个 bad 
    guy, 专门来捣蛋, 胡乱地漫骂, 刻意的胡乱 cancel 别人的 article. 
 
    事後, 当然有找到该家伙, 但是, 这也成为 a.c.t 和 a.c.t.big5 断网的肇因. 
    ... 
------------------------------------------------------------------- 
 
 3.) 经过, 这麽多年的经验□积, 对於, 前者的 case. 发展出的 spam cancel, 
     的技术, 与一些相关的一套作法.  通常已经形成一些参考的准则, 
     ( 有兴趣者了解详情者, 可自行参考相关的 news.admin.net-abuse.* FAQ) 
 
     ECP - Excessive Cross Post 
     EMP - Excessive Multi-Post 
     MMF - Make Money Fast 
 
  对於这一些, spamcancel, 现代的 News server, 并不一定要照单全收. 
 
  *** 如果你刚好是 News 管理者, 而这一方面, 又不太有概念, 不能再 
      偷懒了 , 该学点新东西  **** 
 
  以 INN 1.5.1 ( INN 1.4 unoff2 以後的版本, 就有这类完备的功能), 
  就可以设定成几种不同的作法: 
 
   a) 最简单的 default 选项, 照单全收. ( 避著眼睛 compile ) 
 
   b) 对於 ISP, 如果因 user 反应的需求, 可以完全不处理 cancel. 
      innd 起动时, 加 "-C" 的参数. 
      rc.news 中的 FLAGS="-i0 -C" ( default "-i0" ) 
 
       --  因为不理 cancel 这样也可以增加 performance. 
 
   c) 如果想要维持 cancel, 但不愿意接受某特定 spamcancel 
      可以利用 INN 的 bad-site filter. 
 
      假设某程式将 spamcancel 当程 sitename, 放进 pathname 
      中, 那麽这一行 
 
          ME/spamcancel,xyz-cancel    ( 有几个加几个 ) 
 
      便可以完全忽略, 这一些 cancel message. 
 
      这也就是, 现在一些 good guy 的 spamcanceller 的建议作法. 
 
 
 在网路上, 目前比较有名的 autocancel robot, 有好几个持续再运作. 
 -- 有一些曾经捣蛋过的家伙, 已经见识过. 
 
底下是 INN 1.5.1 的 相关实例, 与说明. 
---------------------------------------------------------- 
##  You can also have ME/bad.site: to refuse articles from a particular 
##  site (by matching the Path: entry).  Other pseudo-sites may be put 
##  in here, to REFUSE certain types of 3rd-party cancel messages 
##  (See the "Cancel FAQ" news.admin.net-abuse.misc): 
##      cyberspam       Spam cancels, munged articles, binary postings 
##      spewcancel      just munged articles from runaway gateways 
##      bincancel       just binary postings to non-binaries groups 
## 
##  Note that refusing articles means you won't offer them to sites you feed 
 
---------------------------------------------------------- 
 
对於上述的第 2 类, 故意捣蛋的 bad-buy, 将其"绳之以法", 找出来. 
本来就是系统管理者, 责无旁贷的任务. 
 
或许有人会问, cancel 再 cancel 找得到吗 ? 
-- 对於 honor cancel message 的 site, 可能很难. 
   但是, 不要忘了, 有很多 site, 并不是这样. 
   ## 各种 cancel message 我都收, 但是实际 cancel 动作, 我不作. 
      所有的证据, 反而一目了然. 
 
------------------------------------------------------------------- 
4) 有键於, 部份人士对於 spamcancel 的反弹, 现在也有许多人, 发展 
   News filter 的技术. 针对, 几类 ECP, EMP, MMF 的问题, 找出一些共同 
   的 filtering algorithm, 然後透过 innd 所提供的 hook 可以发展出, 
   一些 news filtering program, 将这类可能让人生厌的东西, 拒收. 
 
   inn-1.5.1 有提供两种选择 TCL  和 PERL filtering hook. 只要系统 
   管理者有心, 可以很容易的发展一些简单实用的 filtering program. 
   ( 事实上, 功力强, 有兴趣的的人, 大可自己动手, 写自己的 proram. ) 
 
   -- check config/config.data ( 倒数几个 section 的选项 ) 
 
    INND 本身, 有附几个 sample template. 
   -- /usr/local/news/bin/control/filter_innd.pl 
      /usr/local/news/bin/control/filter_nnrpd.pl 
   -- /usr/local/news/bin/control/filter.tcl 
 
 
 当然, 这样作, 也有人可能会有意见, 分明 "违反言论自由" 嘛 ? 
 
 就像前面的讨论一样, 有时後立场与身份不同, 本来就很难. 对看法与作法, 
 完全一样. 
 
 如果, user 真得有不同看法, 那不得已, 就只好仅量想办法, 去说服管理者. 
 再不然, 就可能得换个地方用了喔 ! 
 
-- 
Joe. C.S.Chen,  chen@cc.nctu.edu.tw 
 
*******  Knowledge is of two kinds.  We know a subject ourselves,  ******** 
         or we know where we can find information upon it. 

BBS水木清华站∶精华区