荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店