Plamo Linux 1.4.xで寺子屋ネットへ参加しよう
MS-DOS+JNETもいいけど、最近の高性能なパソコンではとてももったいないです。
そこで今流行のPlamo LinuxでTNCやメールサーバ、ニュースサーバを動かす奥義を公開します。
Plamo Linuxの入手方法はこちらへ。
特に指示が無ければsuでrootになってrootの権限で作業して下さい。
現在では混乱の元となっているので、ニュースについてはNNTPでの接続のみを解説し、旧来の寺子屋形式で送受する設定は該当部分は削除しました。
接続先が寺子屋形式しか扱えない場合は、最近のjnetcex+sorobanでNNTPが使用できることを伝えて下さい。
特にこだわりがなければおすすめで入れれば良い。
領域はスワップを前の方に取ろう。
HDDの前の方が速度が速いので、スワップには有利。
スワップサイズを決めるのに引き算が不要。
/dev/hda1 DOS
/dev/hda2 Linux swap
/dev/hda3 Linux Native
Linux自身の設定は巷に参考書があふれているのでここでは書かない。
サーバの動作には関係無いが、作業する上ではX-Windowが使えたほうがコピー&ペーストが出来たり、このページを見ながら作業が出来るので便利。
カーネルには普通のディストリビューションにはアマチュア無線サポートは無いので、再構築して組み込む。
su
cd /usr/src/linux
make menuconfig
以下は忘れずに設定すること。
Networking options:
[*] TCP/IP networking
<*> Amateur Radio AX.25 Level 2
Network device support:
[*] Radio network interfaces
<*> Serial port KISS driver for AX.25
他は自分のマシン環境に合わせて設定。
不要なドライバはメモリがもったいないので外す。
make dep ; make clean ; make bzlilo ; make modules ; make modules_install
再起動して動作を確認。
まずはLANのみ、もしくはLAN無しを設定。
netconfigで聞かれた通りに。
LANがなければloopbackのみでOK。
終了後、/etc/hostsに接続したい相手の記述を追加。
自分自身の行が、例えば、
172.24.1.1 je4smq.felix.or.jp je4smq
hostnameが同じになっていないと各方面、特にinnで不具合が起きるので注意。
接続先の行であれば違っていても良い。
ax25-util-2.1.42a.tar.gzを取って来て(CD-ROMにはないのでインターネットで検索して)
su
cp ax25-util-2.1.42a.tar gz
tar zxvf ax25-utils-2.1.42a
cd ax25-utils-2.1.42a
コンパイルの前処理。
make config
質問は全部yでok
終わったらコンパイル。
make
make install
make installconf
前の設定が消えると警告が出るが、初めてのインストールならそのままEnter。
/etc/ax25/axportsを書き換えればとりあえずOK
speedはRS-232Cの速度。KPC-4の場合はここは無視されて、後で出てくるmkiss -sの速度が 採用。
# name callsign speed paclen window description
radio0 JE4SMQ-2 1200 255 2 (430MHz Bell202)
radio1 JE4SMQ-1 1200 255 2 (1200MHz Bell202)
マニュアル通りkissattachとifconfigでkiss TNCを認識させればIPが無線になる。
こんな感じのシェルスクリプトを作って、chmod +xで実行属性を付けた後に/etc/rc.d/rc.inet1の最後で呼べば起動時にTNCをattachするようになる。
例はmkissを使ったKPC-4の2ポート用設定。
普通のTNCならmkissは不要、kissattachの/devは com1なら/dev/ttyS0,com2なら/dev/ttyS1に。
#!/bin/sh
#KPC-4 2port
/usr/sbin/mkiss -s 4800 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
#port attach
/usr/sbin/kissattach -i 133.93.32.4 /dev/ttyq0 radio0
/usr/sbin/kissattach -i 133.93.32.4 /dev/ttyq1 radio1
/usr/sbin/kissparms -p radio0 -t 500 -r 10 -s 10
/usr/sbin/kissparms -p radio1 -t 500 -r 10 -s 10
#network configure
/sbin/ifconfig ax0 133.93.32.4 netmask 255.255.255.0 up
/sbin/ifconfig ax0 broadcast 133.93.32.255 mtu 216
/sbin/ifconfig ax1 133.93.32.4 netmask 255.255.255.0 up
/sbin/ifconfig ax1 broadcast 133.93.32.255 mtu 216
#route set
/sbin/route add -host dwa ax1
/sbin/route add -host cwz ax1
/sbin/route add wdu gw dwa
#mheard log start
/usr/sbin/mheardd -f
mheardで見えた局の一覧が、listen -8atでパケットのモニタが可能。
後者はXを使っているなら1つktermを開いて常に見るのが良い。
CTRL+中ボタンで漢字コードをSJISにすると普通のRBBSのモニタ時に漢字も表示出来る。
おまけ
デジピートさせる場合の設定。
相手が/etc/hostsに
133.93.32.4 je4smq.felix.or.jp je4smq
とあり、コールサインがJE4SMQ-1,デジピータがJH5YNE-2経由と仮定。
/sbin/route add je4smq ax0
arp add -H ax25 -s je4smq je4smq-1
axparms -route add ax0 je4smq-1 jh5yne-2
arp addで相手のコールサインを強制的に認識させる。
axparmsでデジピータの経路を指定する。
相手側も同様な設定をしないと、片方向のみのデジピートになるので注意。
CD-ROMのcontrib/networkにある。
cdした後に
installpkg パッケージファイル名
か
pkgtool
で突っ込めばOK。
PGPも忘れずに。
/usr/local/news以下に3つシンボリックリンクがあるが、一度rmして、 以下のように張り直す。
そのままでは間違い!
cd /usr/local/news
rm db
ln -s /var/spool/news/db db
rm log
ln -s /var/log/news log
rm spool
ln -s /var/spool/news spool
ls -lの結果。
drwxr-xr-x 6 news news 2048 Mar 3 21:20 bin/
lrwxrwxrwx 1 root root 19 Mar 4 21:13 db -> /var/spool/news/db//
drwxr-xr-x 2 news news 1024 Mar 20 17:06 etc/
drwxr-xr-x 2 news news 1024 Aug 8 1998 lib/
lrwxrwxrwx 1 root root 14 Mar 4 21:13 log -> /var/log/news//
drwxr-x--- 2 news news 1024 Mar 20 21:01 run/
lrwxrwxrwx 1 root root 16 Mar 4 21:13 spool -> /var/spool/news//
drwxr-xr-x 2 news news 1024 Mar 20 21:01 tmp/
INNの設定は/usr/local/news/etcにあるinn.conf,newsfeeds,incoming.conf,nnrp.accessあたりをいじれば大体大丈夫。
inn.conf
ニュースサーバそのものの設定。
organization: SPD-NET(Sanyou Packet Doukoukai OKAYAMA)
server: localhost
pathhost: je4smq
moderatormailer: news@je4smq.spd.prug.or.jp
domain:
#fromhost:
pathalias:
complaints:
mta: /usr/sbin/sendmail -oi %s
mailcmd: /usr/local/news/bin/innmail
以下はそのまま残しておく。
もう1か所あった気もするが、後で分かるはず。
後で他の行にエラーが出たらその行の最後に不要な空白かタブがあるので削除すること。
newsfeeds
どの接続先にどのニュースグループを送るかを記述。
/の前が相手の名前(識別用)。
/の後がPath:にこれが現れたらその相手には送らない、要は逆流防止。
接続先1箇所には、1つの行のみ書くこと。
#自分自身の記述 絶対必要
ME:!*::
overview!:*:Tc,WO:/usr/local/news/bin/overchan
#nntp
jg4dwa/jg4dwa:*,!fj.*,!tnn.*,!junk,!japan.*,!local.*,!control.*,!prug.*,!zoj.*,!apg.local*,!tiki.*,tameike.*:Tf,Wnm:
incoming.conf
NNTPで自分に接続を許す相手を記述。
最後の3行を追加。peerのあとのspdは重複しなければ何でも良い。
streaming: true
# streaming allowed by default
max-connections: 8
# per feed
peer ME {
hostname: "localhost, 127.0.0.1"
}
peer spd {
hostname: "ja5cwz.sman.prug.or.jp, jg4dwa.spd.prug.or.jp"
}
nnrp.access
WinVn,Netscape Messangerやmnews等nnrpで接続を許す相手を記述。
家庭内LANのマシンを追加すれば良いだろう。
意味は見れば分かるね。
## Default is no access, no way to authentication, and no groups.
*:: -no- : -no- :!*
#接続許可する相手
stdin:Read Post:::*
localhost:Read Post:::*
127.0.0.1:Read Post:::*
*.spd.prug.or.jp:Read Post:::*
nntpsend.ctl
NNTPでニュースを送る相手のみを記述。
siteの部分はnewsfeedsの行頭と同じ。
接続先が複数の場合は接続先別に複数行に分けて書く。
NNTPで送らない相手の記述はしないこと。(2001/3/29:タイムアウトパラメータ追加)
jg4dwa:jg4dwa.spd.prug.or.jp:1m:-T1800 -t180
active
/usr/local/news/dbへ作成する。
中身はこんな感じ。
改行コードがDOSとUNIXでは違うので、 ftpのasciiモードで貰うなどしてうまく調整してほしい。
history
今まではrootの権限だったが、ここからはnewsの権限で作業する場合がある。
suしてrootになった後にsu newsでnewsになる。
必ずこの手順でnewsへなること。
こうするとsu newsの時はパスワードを聞かれないので楽。
exitするとrootに戻る。
もう一度exitで一般ユーザに戻るので覚えておく。
newsの権限で/usr/local/news/bin/makehistory -f historyを実行するとactiveと同じ/usr/local/news/dbに作成される。
起動前チェック
newsの権限で/usr/local/news/bin/inncheckを実行。
文句が出たら従うこと。
activeの属性には特に注意。
指定のモードでchmodしよう。
newsfeedsでMEに関するおせっかいな警告が出るが、それは無視して良い。
/etc/syslog.confへログを残す記述の追加。
空白に見えるのはTAB。
注意書きを見よう。
書き換えたら再起動。
# /etc/syslog.conf
# For info about the format of this file, see "man syslog.conf" (the BSD man
# page), and /usr/doc/sysklogd/README.linux
#
# NOTE: YOU HAVE TO USE TABS HERE - NOT SPACES.
# I don't know why.
#
*.=info;*.=notice /usr/adm/messages
*.=debug /usr/adm/debug *.warn /usr/adm/syslog *.err /usr/adm/syslog
#
#This might work instead to log on a remote host:
# * @hostname
news.crit /dev/console
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice /var/log/news/news.notice
mail.* /var/log/mail.notice
/var/log/news/*にニュースサーバの記録が残る。
トラブル時に見よう。
同様にメールも/var/log/mail.noticeを見ると送れたかどうか分かる。
起動実験
newsの権限で/usr/local/news/bin/rc.newsを実行。
エラーが出なければとりあえず成功。
ps ax|grep innでちゃんとinndがいれば設定に間違いは無し。
telnet localhost nntpでINNと直接話が出来る。
接続拒否されなければとりあえずはOK。
quitで終了できる。
起動時にINNを起動するために、/etc/rc.d/rc.localに以下の行を追加。
#INN start
/bin/su - news -C /usr/local/news/bin/rc.news
newsの権限でrc.newsを動かせという意味。
定期的にニュースを送るために以下の内容を/var/spool/cron/crontabs/newsへ追加(というより、ファイルを作成)
nntpsendはNNTPで送る相手へ 一斉送信開始。
1,6,11,16,21,26,31,36,41,46,51,56 * * * * /usr/local/news/bin/nntpsend
また、ニュースサーバの健康管理のために以下の行も追加。
#ニュース処理の洩れがあれば実行
39 * * * * /usr/local/news/bin/rnews -U
#古いニュースの削除と管理者への日報メール作成
6 0 * * * /usr/local/news/bin/news.daily delayrm expireover
0 5 * * 1 /usr/local/news/bin/expireover -s
メールを誰にどう送るかを定義する/etc/sendmail.cfを作る。
/usr/src/CF-3.7W/Sampleにje4smq.def,je4smq.deliverの2つのファイルを作る。
コールの部分はファイル名も含めて各自に合わせて。
例ではuucpを使う設定になっているが、使わない局はUUCPに関する記述を適宜変更すること。
je4smq.def:
# # uucp.def # # a sample definition for uucp sites
DEF_ID='@(#)uucp.def 1.3 (motonori/WIDE) 10/25/94'
# for sendmail R8s
CF_TYPE=R8V8
#
VERSION_SEPARATOR=- LOCAL_VERSION=uucp
OS_TYPE=linux
# use nomx sendmail
MX_SENDMAIL=no
#自分のホスト、ドメイン名を指定
MY_NAME='je4smq'
MY_DOMAIN='spd.prug.or.jp'
OFFICIAL_NAME='$w.$m'
# send/accept user@mydomain.co.jp
FROM_ADDRESS='$j'
ACCEPT_ADDRS='$m'
# do not put rules for BITNET
BITNET=no
# reject junet domain addresses
REJECT_JUNET=yes
# uucp gateway definition uucpを使わない場合はUUCP_GW=no,UUCP_NEIGHBORSはコメントにする
UUCP_GW=yes
UUCP_NEIGHBORS='june'
# read delivery description file
STATIC_ROUTE_FILE=je4smq.deliver
# no direct delivery
DIRECT_DELIVER_DOMAINS=none
#メールの受信チェック機能
MAIL_RELAY_RESTRICTION=yes
ALLOW_RELAY_FROM='prug.or.jp felix.or.jp'
ALLOW_RELAY_TO='prug.or.jp felix.or.jp'
# send others to relay host
#自分のホスト名の別名 このホスト名でも受け取る
MY_ALIAS='je4smq.felix.or.jp'
#誰に送れば良いか分からない場合にとりあえず送る相手
DEFAULT_RELAY='smtp:je4smq.felix.or.jp'
je4smq.deliver:
STATIC>GW>*.defのdefaultの順で送る相手を決める
例ではたくさん接続先があるので複雑だが、これは事情によっていろいろあるので考えてみよう。
VER "@(#)uucp.deliver 1.1 (motonori/WIDE) 3/10/94"
STATIC june uucp:june
STATIC jh4glg.spd.prug.or.jp smtp:jg4dwa.spd.prug.or.jp
STATIC jg4dwa.spd.prug.or.jp smtp:jg4dwa.spd.prug.or.jp
STATIC jk4wdu.spd.prug.or.jp smtp:jg4dwa.spd.prug.or.jp
STATIC jj4jtp.spd.prug.or.jp smtp:jj4jtp.spd.prug.or.jp
STATIC ra.jj4jtp.spd.prug.or.jp smtp:jj4jtp.spd.prug.or.jp
STATIC ja5cwz.sman.prug.or.jp smtp:ja5cwz.sman.prug.or.jp
GW uucp:june
DOM felix.or.jp
GW smtp:jg4dwa.spd.prug.or.jp
DOM spd.prug.or.jp
GW smtp:ja5cwz.sman.prug.or.jp
DOM sman.prug.or.jp
書けたらje4smq.cfを作成する。
rm je4smq.cf 以前の内容があると作成されないので削除
make je4smq.cf
出来たje4smq.cfの試験
sendmail -bt -C ./je4smq.cf
0 maachan@je4smq.spd.prug.or.jpでmaachan@je4smq.spd.prug.or.jp宛 のメールは誰に送るか表示される。
終了はCTRL-D。
意図した結果ではない場合は作り直し。
うまく出来ていたら
cp je4smq.cf /etc/sendmail.cf
再起動で認識される。
メールの転送やフィルタへ渡すために/etc/aliasesを書き換える。
root宛メールを特定の一般ユーザへ転送する指定を最後に追加。
普段はadduser(日本語表示に改造されている)で一般ユーザを作ってそれでログインして、rootでは決してログインしないこと!
root: maachan
応用で、
root: MAG02714@nifty.ne.jp = 別のホストへ転送
とか、
spd: maachan@je4smq.spd.prug.or.jp, masa@jk4wdu.spd.prug.or.jp, murama@jg4dwa.spd.prug.or.jp, keisan@jj4jtp.spd.prug.or.jp, kuro@jh4glg.spd.prug.or.jp = spd@je4smq.felix.or.jpへメールしたら:以下の相手へ同報
なども可能。
別のユーザへコピーを送ったり転送が可能な訳。
出来たらnewaliasesを実行。
これでsendmailが認識。
/etc/hosts.deny,/etc/hosts.allowの修正
Plamo 1.4から外部からのコネクションを全部排除する設定がデフォルトなので、接続を許すために全行をコメントにする。
これだけで最低限の運用はOK。
何もしなくてもpopサーバは動くので、外部のマシンで何でもするのであればメールも読み書き出来る。
全部自分の所のマシンでするなら、mnewsは設定が簡単なのでお勧め。
ニュースは/usr/local/lib/default-serverにlocalhost1行のファイルを作ればとりあえず接続できる。
投稿したニュースのhostnameがおかしい場合は/usr/local/lib/default-domainが間違っている場合が多い。
ホームディレクトリの.mnews_setupを書き換えると細かいことも出来る。
/usr/local/lib/jnamesにニュースグループ名などを登録するとおもしろい。
一人でも多くのハムが寺子屋ネットへ参加できるようお祈りします。