荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Lg (创造人生的传奇), 信区: InstallBBS
标  题: BBS 安装精简手册 -1
发信站: BBS 荔园晨风站 (Sun Dec  6 19:28:12 1998), 站内信件

发信人: Bodyguard (Peggy~我忘不了您), 信区: InstallBBS
标  题: BBS 安装精简手册 -1 [六次放送] (转载)
发信站: Hong Kong Internet BBS (Mon Nov  9 22:19:10 1998), 转信

                    BBS 安  装  精  简  手  册
                                                      整理:duba
20/3/1997
                      目                 录
         [前言]
      一 E-MAIL POST
      二 Internet E-mail(mail2bbs)
      三 BM post
      四 转信(转进,转出),bbs两站互转
      五 自动回信身分确认
      六 定期砍信
      七 utmp问题
      八 排行榜,十大热门话题,及bbsnet等外部程式
      九 如何增加pty至256?(for linux,for SunOs)
      十 cna news加进活动看板
      十一 bbs系统安全漏洞
             A,Internet mail 安全漏洞
             B,精华区漏洞
      十二 bbs_src档案说明(firebirdbbs)
      十三 附录

                 [      前            言          ]

    此份文件集各家精华之大成(适合phoenix
bbs系列)....希望对于新手有所帮助
      安装bbs时的问题:
            在你取得bbs的原始程式后,当然得先解压缩,这基本步骤
            不在赘述,解压缩后你会于根目录的到一个/bbs_src的子目录

详细说明请看内附的说明档,这里只说明重要部骤,及可能遇到的问题

如果你觉的内附文件太过冗长,抓不到重点,或仍不得要领,此份文件

将是你最好的选择,请不要怀疑本手册的说明,照者做将会使save你许多
            宝贵时间,欢迎大家指正错误之处,也欢迎大家一起maintain

         第一步, 于bbs_src/CONFIG/configure 按照说明文件来做,
                 相信大家应该都没问题

         第二步, bbs_src/make之后接著make install时,请先修改
                 Install.sh,Makefile档中 INSTALL=/?/bin/install -c
                 可用whereis install找,在linux中一般而言应在
                 /usr/bin/install中.....

         第三步,有些人可能碰到下列问题:
                 cna't open /etc/utmp ....
                 请按此法修改 cat /dev/null > /var/adm/utmp
                 or chown bbs.root /var/run/utmp
                 cd /bbs/bin
                 chmod 4755 bbsrf

         ps: firebirdbbs 2.31版,movie 的bug会造成系统踢人,甚至系统死当

请物乱改movie档,不小心动到,从系统登录,把/home/bbs/etc/movie
             改回来即可

   以下摘至 Asd L. Chen mailto: asdchen@pc2.hinet.net ]
 ----------------------------------------------------------------
  花了两天的时间穷举搜寻 installbbs 版上的 post 将 mail2bbs 等等
  功能架设起来,再次证明”答案就在板子上”:)
  希望不要有人做同样的傻事(很累的),所以我把安装过程及的注意事项
  post  出来,但愿对你(你)有帮助。                            O
  ----------------------------------------------------------X--
                                                              O
  透过 BBS  与外界交换讯息的方式目前主要可以分为两种,其一是收发
  Internet E-mail 的功能,另外一种是与 News 或其它 BBS  交换讨论
  区文章(其它 ExecBBSNet, ExecTin 一类的方式暂时不管)。

  转信问题比较复杂一点,以下仅先就第一种方式说明。相关的主题包括
  E-mail post, mail2bbs 以及 bmpost 三项。

  系统: Linux 1.2.8(from Slackware 2.3.0)
        sendmail 8.6.11
        PhoenixBBS 4.0,Firebirdbbs
   以下说明都假设是对这个系统而言,不过各种 Unix 以及 BBS  系统在
   这方面的差异应该不大,也可以参考一下。(此外假设 BBS 系统安装在
   预设目录并且以 bbsroot 的身分签入进行安装与设定)。
   [※  请先确定你的系统收发mail完全正常 ]

  一、E-mail post

          E-mail post 就是将文章寄给 BBS  系统请系统帮忙 post 到
      讨论区去。对于长篇大论或连线速度很慢的情况颇有帮助 (在家里
      使用习惯的 Editor 编辑好再当成信件寄出去) 。这种贴 post 的
      方式不会检查 user 是否有在板子上 post 的权力,所以常常用来
      作为身分确认的途径之一。

          相关的程式都摆在 ~/bbs_src/innd 底下 (非 P4 者可以自行
      取得  ftp://ftp.csie.nctu.edu.tw/pub/bbs/bbsinnd.tar.gz 该
      档案解开使用)。 在这个目录里除了 mailpost 以外还有转信程式
      等等。虽然 E-mail post  的运作跟其它程式'无关' (不须要转信
      或者是安装 mail2bbs 就可以提供 E-mail post 功能),但是似乎
      会参用到其它程式,所以还是建议依照该目录里的 README 档案来
      进行安装。
        P.S.  bbsinnd 部份程式使用 yacc 写成,所以若要安装 bbsinnd
            则系统必须要安装有 yacc 或是 bison  才行。而其它程式
            多以 perl (包括 mailpost 在内)写成,所以系统必须安装
            有 perl 才能使用下述功能。

      [节录 bbsinnd 安装说明](如果懒得看 README 档案:)

          cd ~/bbs_src/innd
          make
          make 过程若出现 structure has no member named 'tm_gmtoff'
          那么请改用:
          make CFLAGS=-DDONT_HAVE_TM_GMTOFF
 现 src/bbspost.c:16: bbs.h No such file or directory
          可以 cp ~/bbs_src/*.h src 试试看,或者到 src  下面修改
          bbspost.c ,将其中的

          #include "bbs.h"  改为:
          #include "/home/bbsroot/bbs_src/bbs.h"
          (这点很奇怪,Makefile 里有给 -II 的 path)
          还有来源的字样部份,改成自己站台名称
          make 完成后 su 成为 bbsuser 以便存取 /home/bbs  目录:

          mkdir ~/innd
          cp * ~/innd
   第一个地方是 mailpost 程式
      的第一行,看看其参考的 perl 位置跟自己系统的是否一致,该行
      应该是:

          #!/usr/local/bin/perl

      但是目前 Slackware Linux  套件似乎都在 /usr/bin 下链结一个
      perl 到 perlxxxxx 去(可以用 whereis 找) 。若 perl 所在位置
      与 mailpost 里参考的不一样请自行修改该行,或是 link 另一个
      perl 过去试试。(因为很多程式参考这个地方,所以建 link 可能
      比较方便)。

      另外一个需要检查的地方是 /etc/shells  档案,看看这个档案里
      是否有包括 bbs 所使用的 shell(bbsrf)。如果没有请自行加上。
      (e.g. /home/bbs/bin/bbsrf,;31m需加在第一行0m)

          接著设定 bbs 的 .forward 档案: (注意: 包含前后的引号!)



      当bbs  收到信件后就会转向给 mailpost 处理。OK!  已经完成!
      现在可以测试一下,寄一封信给 BBS  系统,开头包括下列四行:

          #name: who_are_you
          #password: what's_your_password
          #board: which_board_you_want_post_to
          #title: what's_the_title_of_the_post

          ...message body...
          ......................................

      然后将该信件寄给 bbs@bbs.host.domain  试试看。当然以上信件
      开头的资料以及 BBS  的 domain name 须改填用于该 BBS 系统的
      资料。E-mail post 的其它设定请参考 bbsinnd 的 README 。


  二、mail2bbs

      [节录 InternetEmail 部份说明](建议将原版文件拿回来看看:)
      file://ftp.csie.nctu.edu.tw/pub/bbs/doc/InternetEmail

          早期的 BBS  系票送服务。Phoenix BBS 则首先开放以如下的
      E-mail  位址形式代表 BBS  使用者的 E-mail address:

          uid.bbs@bbs.host.domain

      这使得 BBS user 可以透过 BBS  系统拥有与一般主机帐号无异的
      电子邮递服务

          这项服务必须修改邮件递送程式的设定,使其能够认识上述的
      E-mail address  格式。此外还须安装转换 mail header  的程式
      以便将 Internet mail folder 资料转换成 BBS mail 储存格式。
         目前使用最广的 mail transport program 大概是  sendmail
      系列。Sendmail  可以说是世界上最复杂,最难以设定的程式其中
      之一。也许是这个缘故,有关修改设定的方法都写得很清楚,修改
      者也特别小心进行以至于特别没问题。修改之前需要先确定的是:

          . 系统使用 sendmail 系列的 mail transport program
          . 使用 sendmail 8.6.9 以上的版本(不确定)
            (不知哪个版本的 sendmail 有 security hole, 需要
            sendmail security patch?)
          . 没有 xxx.bbs 之类的 alias
          . 检查 /etc/inetd.conf 里面的 smtp 设定是否为 sendmail
            或者是以 hash('#') 符号 mark 起来,如果不是 sendmail
            而且没被 mark 起来的话那么先将它 mark 起来。若有修改
           到 inetd.conf 的内容则需重新启动 inetd  程式。
      无论如何,修改 mail transport program 设定的部份将留在最后
      介绍,先介绍 mail2bbs 等等相关程式的安装。 (假设以 bbsroot
      签入系统)

         该 mail2bbs.c 程式放在 ~/bbs_src/local_utl  目录,大概
      可以算是工具程式之一 (不妨 make 看看 PhoenixBBS 4.0 提供有
      哪些'管理'工具程式) 。单单只靠 mail2bbs 程式并不能提供完整
      的 Internet Email 服务(至少下面要介绍的 mail2bbs 版本不行)
      所以无论是否使用 PhoenixBBS 都请到 ftp.csie.nctu.edu.tw 将
      /pub/bbs/misc/mail2bbs/ 目录下的所有程式取回。
     [※  firebirdbbs不需要另外抓这些档案,而且好处是当你装好
       mail2bbs时,也就完成你身分确认的安装,所以不考虑系统资源,
     及系统load,就安装的简便性,与使用的便利性firebirdbbs是你最好的选择
        (非广告) ]

          Internet E-mail <-> BBS mail  之间的信件转寄过程大致上
      是这样子的:

          1 Phoenix BBS 4.0 安装完成后即具有寄信到 Internet 上的
            功能,当然,架设 BBS  的主机原本就必须具备有可以正常
            收发 E-mail 的能力才行。我们所要处理的是如何从外面将
            信件寄送到 BBS  信箱的问题。

          2 首先 mail transport program 必须要能够认识上面所述的
            BBS E-mail address  格式,并且须将这些信件交由不同的
            local mail deliver (下面介绍的是 bbsmail 程式)处理。

          3 bbsmail 接到信件后会做记录,取出 Subject header 并且
            将信件转交给能够将 Internet mail folder 资料转换成为
            BBS mail  的程式来处理(下面介绍的是 mail2bbs) 。因为
            所要介绍的 mail2bbs 程式没有自行剖析 mail header  的
            功能,所以 bbsmail  必须处理这个问题。

          4 mail2bbs 的功能很单纯,它接受三个参数:
            sender from, rcpt to user 以及 subject。

            例如:

            mail2bbs your_id your_bbs_id mail_subject

            接著它会从 stdin  读取信件内容(类似一般的 mail 操作)
            然后转换信件格式并且送到 BBB  的信箱里(filter?)。

      P.S.  以上程式大多以 perl 写成,所以系统必须安装 perl 才能
            使用。

          安装这些程式的过程有点烦杂,主要是权限以及路径的问题。
      其实应该可以写个比较完整的 Makefile 来做,但弹性较小。所以
      请自己手动安装。假设原始程式摆在 ~/mail2bbs 底下。

          1 安装 mail2bbs:

            首先修改 Makefile 里的 BBS_SRC  设定,改为 BBS  原始
            程式所在路径。(e.g. BBS_SRC=/home/bbsroot/bbs_src)

            然后修改 mail2bbs.c 里的 #define 叙述:

            #define     DOMAIN_NAME     "csie.nctu.edu.tw"
            #define     BBSHOME         /home/bbs
            #define     BBSGID          9999
            #define     BBSUID          99

            主要是 DOMAIN_NAME  必须修改成 BBS  所在的领域,另外
            mail2bbs.c ,
bbspost.c中有关"...中正大学..."的字样可以自行改变。
            其馀请参考安装 BBS  时的设定。

            执行 make mail2bbs  造出 mail2bbs 执行档

            su 成为 root 以便存取 /usr/local 目录。(以下所有路径
            设定都尽量依照 InternetEmail 文件以及程式码的预设值)
            执行 make install_mail2bbs。这会将 mail2bbs 的执行档
            放到 /usr/local/etc/bbs/  下并设定存取权利(way II;如
            果对此途径不满意可以不改,将Makefile中的INSTALLDIR=
            /home/bbs/bin不变,其实这才是预设值)。但此设定对于 bbsmail
            来说似乎有问题,必须加以修改。如下:

            chown bbs.bbs /usr/local/etc/bbs/mail2bbs
            chmod 4750 /usr/local/etc/bbs/mail2bbs

         2 安装其它程式:
            (way II;此步骤可略过)
            mkdir /usr/adm/bbs
            chown bbs.bbs /usr/adm/bbs
            mkdir /usr/local/sendmail
            chown bbs.bbs /usr/local/sendmail

            su 成为 bbsuser
            mkdir /usr/local/sendmail/bbs
            并将 bbsmail, mailgate.pl, rfc931.pl  这些程式 cp 到
            /usr/local/sendmail/bbs 目录里
           (way II :cp 到/home/bbs/bin中)
           [ ※其中mailgate.pl需修改其中$from,$Hstname改成自己的domain
name,
                perl的路径记的也要改]
            cd /usr/local/sendmail/bbs
           chmod 755 *


        3 修改路径设定
            编辑 bbsmail  其中的
            require "mailgate.pl";
            必须改用绝对路径名称
           (i.e. require "/usr/local/sendmail/bbs/mailgate.pl";)
           (way II; "/home/bbs/bin/mailgate.pl")
            编辑 mailgate.pl  其中的
            require "/usr/local/menu/rfc931.pl";
            请改为 rfc931.pl  所在的位置
            (i.e. require "/usr/local/sendmail/bbs/rfc931.pl";)
            (way II; "/home/bbs/bin/rfc931.pl")

        安装完成后与 E-mail post 介绍相同,请检查一下这些 perl
      程式的第一行是否参考到正确的 perl 所在位置。否则的话请依照
      E-mail post 说明的部份自行修改。

          以下介绍修改 mail transport program 设定的方法。当然只
      有 root 能够为之。 Sendmail 的设定档是 /etc/sendmail.cf 。
      虽然 mail2bbs 已经随附 sendmail.cf.8.6.9 以及给 SunOS 使用
      的 sendmail.cf.sunos  档案。但是似乎有点问题,所以还是建议
      自行修改 sendmail.cf 档。

          **首先加入新的 mailer 定义,新增下列设定**

 A)slack96版本之前的改法

  ##################################################
  ###   Local and Program Mailer specification   ###
  ##################################################

  #####  @(#)local.m4     8.6 (Berkeley) 10/24/93  ####

  Mbbsmail,       P=/usr/local/sendmail/bbs/bbsmail, F=lsSDFMuhP,
S=10, R=20,
                 A=bbsmail -d $u $s

          **然后更改 rule set 0 的部份,增加下列规则**:
  ######################################
  ###   Ruleset 0 -- Parse Address   ###
  ######################################

  S0
 R$+.bbs<@>$*            $#bbsmail $:$1                  bbs mail
gateway
  ....
 ....

 # short circuit local delivery so forwarded email works
  R$+ < @ $=w . >         $: $1 < @ $2 . @ $H >           first try
hub

  R$+.bbs< $+ @ $+ >$*    $#bbsmail $: $1                 bbs mail
  gateway
  R$+.bbs< $+ @ >$*       $#bbsmail $: $1                 bbs mail
  gateway
  ....
  ....

  # handle locally delivered names
  R$+.bbs                 $#bbsmail $:$1                  bbs mail
  gateway
  ....
 ....

  B) slackware95版本的改法

  Ruleset 0 的地方:

# handle local hacks
R$+.bbs<@>$*            $#bbsmail $:$1          bbs mail gateway
R$*                     $: $>98 $1

# short circuit local delivery so forwarded email works
R$+.bbs< $+ @ $+ >$*    $#bbsmail $: $1         bbs mail gateway
R$+.bbs< $+ @ >$*       $#bbsmail $: $1         bbs mail gateway
R$+.bbs< @ $=w . >      $#bbsmail $: $1         bbs mail gateway
R$=L < @ $=w . >        $#local $: @ $1         special local names
R$+ < @ $=w . >         $#local $: $1           regular local name

# handle locally delivered names
R$+.bbs                 $#bbsmail $: $1                 bbs mail
gateway
R$=L                    $#local $: @ $1                 special local
names
R$+                     $#local $: $1                   regular local
names


          必须注意的一点是: rule 两端必须以 Tab 隔开,不能用空白
      间隔。另外,建议先以空白隔开一格,再使用 Tab  隔开。关于此
      问题原因不明....。

          修改 sendmail.cf  后必须重新执行 sendmail 程式。同时还
      建议重新执行 inetd  程式。关于此问题原因不明....。

          Now 万事具备,可以寄信给 BBS user 试试。万一失败请参考
      原版 InternetEmail 的 debug 程序 。
      [※  debug的方法]


        4.测试改好的 sendmal.cf

          执行 sendmail -C/etc/sendmail.cf -bt
            > 0 xxx.bbs
            rewrite: ruleset  0   input: xxx . bbs
            rewrite: ruleset 98   input: xxx . bbs
            rewrite: ruleset 98 returns: xxx . bbs
            rewrite: ruleset  0 returns: $# bbsmail $: xxx . bbs

            若不会 refer 到 bbsmail, 捡查是否如上所示加入所属 rule,
            并以 tab 区隔 LHS, RHS.

        5.重跑 sendmail.

          修改完 /etc/sendmail.cf 后, kill -9 (sendmail's pid)
          然后执行 sendmail -C/etc/sendmail -bd -q10m
          请 ps -ax 看看,如果有看到 sendmail:accepting connections
          就代表你 mail2bbs 已经装好了
          赶快寄一封信给 xxx.bbs@xxx.xxx.xxx.xxx 看看吧

        6.其他debug 方法:
          (1): 使用说明文件的方法测试确定 sendmail pharser 正确
          (2): su bbsuser; cd /home/bbs/usr/local/bbs/
             mail2bbs 'from' 'userid' 'subject' <textfile
             看回应为何.(already chroot 代表的是 chroot 失败, 你的
             mail2bbs属性有问题)
          (3): 进 bbs 确定刚刚 mail2bbs 的东东有收到
          (4): su root; cd /usr/local/sendmail/bbs/
             假造一个 email档,( 用 mail save 随便一封信后改 To:
             为 :userid.bbs@host.domain.
             bbsmail -d userid <emailfile
             确定 bbsmail 能正确的呼叫 mail2bbs
             (BBS User xxxx Unknown 代表的是无法正常呼叫 mail2bbs )
          (5): 进 bbs 确定刚刚 bbsmail 的东东有收到
          (6): 由 internet 写封 email 到 bbs 吧...观察观察
/var/adm/bbs/log
             档是否正确动作
          (7): 当 bbs 收到这封 email 时记得 post 封感谢函上来吧...
呵呵

          . 检查从 BBS  寄出的信件其 From: 或是 Reply-To: header
            是否正确,否则对方回信无法送达。
          . 定时 flush mail queue
           例如使用 cron job
           0,30 * * * * /usr/lib/sendmail
-oQ/home/bbs/var/spool/mqueue -q
      P.S.  以上各程式所在路径以及属性请务必自行留意,也可以自行
           更改(注意其对应关系)。留意本文所说是否过期....。


  三、bmpost

          对于各版主来说 BM-post  相当便于整理精华区内容。只要将
      信件(或者是讨论区文章)寄到各版的 .bm  帐号即可使用精华区的
      i 功能将信件收录进来。看到这种格式的 E-mail address 就大概
      可以猜出是怎么一回事。没错,跟 Internet E-mail  服务所采用
      的方式很类似,也需要修改 mail transport program 的设定。

          首先必须安装 bmpost 程式将这种形式的信件转送到某个地方
      以方便各版版主读取。这个程式是一个简单的 shell script 所以
      就直接在这里列出,请自行输入即可。 (在此我们将这个程式置于
      /usr/local/etc/bbs/ 下,也就 mail2bbs 方才安装的地方,所以
      假设以 root 签入以便存取该目录)

          #!/bin/sh
          umask 077
          /bin/cat >> /home/bbs/tmp/bm.$1
          /bin/chown bbs.bbs /home/bbs/tmp/bm.$1
          # END

      记得将其属性改为可执行档(i.e. chmod 4750 bmpost)

          然后必须修改 sendmail.cf 使其能够认识此种形式的 E-mail
      并转给 bmpost 程式来处理。在这里列出比较完整的 sendmail.cf
      以供参考(包括 Internet E-mail 服务的部份)。如下:


  ######################################
  ###   Ruleset 0 -- Parse Address   ###
  ######################################

  S0
  R$+.bbs<@>$*            $#bbsmail $:$1                  bbs mail
gateway
  R$+.bm<@>$*             $#bbsbm $:$1                    bbs bm post
  ....
  ....

  # short circuit local delivery so forwarded email works
  R$+ < @ $=w . >         $: $1 < @ $2 . @ $H >           first try
hub

  R$+.bbs< $+ @ $+ >$*    $#bbsmail $: $1                 bbs mail
gateway
  R$+.bbs< $+ @ >$*       $#bbsmail $: $1                 bbs mail
ateway
  R$+.bm< $+ @ $+ >$*     $#bbsbm $:$1                    bbs bm post
  R$+.bm< $+ @ >$*        $#bbsbm $:$1                    bbs bm post
  ....
  ....

  # handle locally delivered names
  R$+.bbs                 $#bbsmail $:$1                  bbs mail
gateway
  R$+.bm                  $#bbsbm $:$1                    bbs bm post
  ....
  ....

  ##################################################
  ###   Local and Program Mailer specification   ###
  ##################################################

  #####  @(#)local.m4     8.6 (Berkeley) 10/24/93  #####

  Mbbsmail,       P=/usr/local/sendmail/bbs/bbsmail, F=lsSDFMuhP,
S=10, R=20,
                  A=bbsmail -d $u $s
  Mbbsbm,         P=/usr/local/etc/bbs/bmpost, F=lsSDFMuhP, S=10,
R=20/40,
                  A=bmpost $u


          请记得这份文件是在 Linux  系统下测试的,其它系统可能会
      有一些差别。修改完 sendmail.cf  以后必须重新执行  sendmail
      才行。现在可以测试一下,随便寄一封信给 .bm  帐号,例如:

          mail -v -s test-bmpost test.bm@your-bbs-server

      然后进入 test 版的精华区内使用 i  功能看看能不能收录信件。
      当然,必须使用具有 test 版版主身分的帐号。

      P.S.  如果上述过程中有任何遗漏或造成任何 security hole  请
            不吝修正。




□舰□P E-mail post  相同的方式来处理与
      外界电子邮件之间的□          安装完成后建议检查两个地方: 啊? 还是我少了什
么?)
          (可把bbs.h改用<>代替"",即可用 -
          若因此出

--
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□          深圳大学荔园晨风 BBS 站为大家提供以下服务:          □
□    BBS: bbs.szu.edu.cn               FTP: bbs.szu.edu.cn     □
□    MUD: bbs.szu.edu.cn 5000          WWW: bbs.szu.edu.cn     □
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.1]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店