13. node の設定

nodeTomi Manninen が PMS プログ ラム (訳注:後の章で説明があります) を元にして開発しました。 このプログラムは簡単な設定で完璧かつ柔軟な動作のノードを作ることができ ます。 この node にユーザーはひとたび接続すると Telnet, NET/ROM, ROSE, AX.25 などを使ってさらに他のサイトへ接続を試みたり、Finger, Nodes, Heard list などの便利な情報を得ることができます。 node にお望みのコマンドを実行させるように設定することも極めて簡単です。

node プログラムは通常 ax25d から呼出されます。 一方で、あなたのマシンに telnet でアクセスしてきたユーザーが node を使 えるよう TCP/IP の inetd プログラムから起動するこ ともできます。 またコマンドラインから実行させることもできます。

13.1. /etc/ax25/node.conf ファイルを作る

node.conf ファイルは node プログラムについての主な 設定がなされるところです。 このファイルは単純なテキストファイルで、書式は以下の通りです。

# /etc/ax25/node.conf
# node(8) プログラムの設定ファイル
#
# #で始まる行はコメント、無視される

# ホスト名
# ノードマシンのホスト名を指定する
hostname	radio.gw.vk2ktj.ampr.org

# ローカルネットワーク
# nodes.perms を使う上でどのサイトをローカルと見なすか指定する
localnet	44.136.8.96/29

# 隠すポート
# ユーザーには見せないポートを指定する ここで指定したポートは (P)orts
# コマンドで表示されない
hiddenports	rose netrom

# ノードの ID
# node プログラムのプロンプトに表示される
NodeId		LINUX:VK2KTJ-9

# NET/ROM ポート
# このノードから他のノードへ向けてのNET/ROM接続に使うポートの名前
NrPort		netrom

# ノードの Idle Timeout
# このノードに対する接続のタイムアウト時間 単位は秒
idletimout	1800

# 接続の Idle Timeout
# このノードを経由しての接続のタイムアウト時間 単位は秒
conntimeout	1800

# 再接続要求
# リモートの接続が切断されたときにノードに再接続させるか、または切断す
# るかを指定する
reconnect	on

# コマンドエイリアス
# 複雑なコマンドを簡単にする
alias		CONV	"telnet vk1xwt.ampr.org 3600"
alias		BBS	"connect radio vk2xsb"

# 外部コマンドのエイリアス
# ノードから外部コマンドを実行する 書式は
# extcmd <コマンド名(エイリアス)> <フラッグ> <ユーザーID> <実行されるコマンド>
# フラッグは1のみ <実行されるコマンド>の書式は ax25d.confに同じ
extcmd		PMS	1	root	/usr/sbin/pms pms -u %U -o VK2KTJ

# ロギング
# system.log への書込みの設定 3が最も詳細 0は書込みしない
loglevel	3

# エスケープ文字
# 20はControl-Tに相当
EscapeChar      20

13.2. /etc/ax25/node.perms ファイルを作る

node はユーザーに与えるパーミッションの設定ができ ます。 例えば (T)elnet や (C)onnect といったコマンドを、どのユーザーには許可 し、どのユーザーには許可しない、というようなことが決められます。 こういった情報は node.perms ファイルに保存されます。 このファイルには五つの項目があり、どの項目も任意の値とマッチする文字 「*」が使えます。 デフォルトのルールを決めるのに便利でしょう。

user

最初の項目は、このパーミッションが適用されるコールサインまたはユーザー 名です。 SSID は指定しても無視されますので、コールサインだけを書くようにしてく ださい。

method

プロトコルやアクセス方法もまた、それぞれにパーミッションが与えられます。 例えば、AX.25 や NET/ROM 経由で接続してきたユーザーには (C)onnect オプ ションが使えるようにしたいけど、ローカル以外のノードから telnet などに よって接続してきたユーザーには (C)onnect を使わせたくない、という場合 もあるでしょう。 そこで、この二つ目の項目は、このパーミッションが適用されるアクセス方法 を決めます。 ここで指定されるアクセス方法は以下の通りです。

アクセス方法説明
ampramprnet の IP アドレス (44.0.0.0) から telnet による接続
ax25AX.25 による接続
hostその node をコマンドラインから起動したホスト自身
inetローカルホストでもなく ampr の IP アドレスでもないホストからの telnet による接続
localローカルホストからの telnet による接続
netromNET/ROM による接続
roseROSE による接続
*方法によらず全ての接続

port

必要であれば AX.25 経由のユーザーについてはポート毎のパーミッションの 設定も可能です。 つまり、どの AX.25 ポートから接続したかによって何を許可するかを決める ことができるのです。 この機能を使うときは、三つ目の項目にポート名を記入します。 AX.25 経由の接続についてのみ意味を持ちます。

password

ユーザーが接続してきたときに node がパスワード入力を促すように設定する こともできます。 この機能は特別なユーザーの権限を保護するのに役立つことでしょう。 四つ目の項目に書込んだものが受付けるべきパスワードとなります。

permissions

各行の最後はパーミッションの項目になります。 この項目はビットフィールドによる指定になります。 各機能に対応するビットがあり、それがセットされると許可を表し、セットさ れていなければ不許可を表します。 ここで制御可能な機能とそのビットの意味は以下の通りです。

説明
1ログイン許可
2AX.25 の (C)onnects を許可
4NET/ROM の (C)onnects を許可
8ローカルホストへの (T)elnet を許可
16amprnet (44.0.0.0) のホストへの (T)elnet を許可
32ローカル以外のホスト、amprnet 以外のホストへの (T)elnet を許可
64AX.25 の隠しポートでの (C)onnects を許可
128ROSE の (C)onnects を許可

希望の条件に対応するパーミッション値を得るには、それぞれの値を足し算す ればよいです。計算結果を五つ目の項目に記入してください。

nodes.perms のサンプルはこんな感じです。

# /etc/ax25/node.perms
#
# この node の管理者は VK2KTJ, パスワード「secret」を設定して
# 全ての接続に対して全ての許可を与える
vk2ktj	*	*	secret	255

# 以下のユーザーは接続を許可しない
NOCALL	*	*	*	0
PK232	*	*	*	0
PMS	*	*	*	0

# インターネット経由のユーザーは接続を許可しない
*	inet	*	*	0

# AX.25, NET/ROM, ローカル, 自ホスト, AMPR のユーザーはローカルおよび
# ampr のホストへの (C)onnect, (T)elnet を許可  ただしローカルおよび ampr
# 以外のホストへは許可しない
*	ax25	*	*	159
*	netrom	*	*	159
*	local	*	*	159
*	host	*	*	159
*	ampr	*	*	159

13.3. nodeax25d から起動する

node は通常 ax25d から呼出さ れます。 このようにするには /etc/ax25/ax25d.conf ファイルに 適切なルールを追加する必要があります。 私が行った設定では node に接続するか、それ以外の サービスに接続するかをユーザーに選択できるようにしたかったのです。 ポートのエイリアスを設定すれば ax25d にこのような 動作を行わせることが可能です。 例えば ax25d の設定が前章において説明したものとし て、私は VK2KTJ-1 に接続したユーザー全員が node プログラムを使えるような設定にしたいのです。 このため以下のような行を /etc/ax25/ax25d.conf ファ イルに追加しました。

[vk2ktj-1 via radio]
default    *     *    *   *   *   0    root /usr/sbin/node node

この設定では radio という AX.25 ポートでコールサイ ン VK2KTJ-1 に対する接続要求を Linux カーネルは全て 受付けて node プログラムを実行することになります。

13.4. nodeinetd から起動する

ユーザーがあなたのマシンに telnet などで接続し node にアクセスできるようにするのは、とても簡単で す。 まずはどのポートに接続させるかを決めます。 Tomi は node の付属文書の中でどうやって telnet デー モンの代わりに node を起動させるかについて詳細に 説明しています。 以下の例で私は適当に3694というポートを選んでいます。

以下の二つのファイルを書換えておく必要があります。

/etc/services に以下の行を追加します。

node	3694/tcp	#OH2BNS's node software

/etc/inetd.conf には以下の行を追加します。

node	stream	tcp	nowait	root	/usr/sbin/node node

ファイルの変更が済んで inetd プログラムを再起動し たなら、あなたのマシンのポート 3694 に接続したユーザーは全員、ログインの プロンプトが表示され、もし設定していればパスワードが聞かれ、そして node に接続することになります。