node は Tomi Manninen が PMS プログ ラム (訳注:後の章で説明があります) を元にして開発しました。 このプログラムは簡単な設定で完璧かつ柔軟な動作のノードを作ることができ ます。 この node にユーザーはひとたび接続すると Telnet, NET/ROM, ROSE, AX.25 などを使ってさらに他のサイトへ接続を試みたり、Finger, Nodes, Heard list などの便利な情報を得ることができます。 node にお望みのコマンドを実行させるように設定することも極めて簡単です。
node プログラムは通常 ax25d から呼出されます。 一方で、あなたのマシンに telnet でアクセスしてきたユーザーが node を使 えるよう TCP/IP の inetd プログラムから起動するこ ともできます。 またコマンドラインから実行させることもできます。
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 |
node はユーザーに与えるパーミッションの設定ができ ます。 例えば (T)elnet や (C)onnect といったコマンドを、どのユーザーには許可 し、どのユーザーには許可しない、というようなことが決められます。 こういった情報は node.perms ファイルに保存されます。 このファイルには五つの項目があり、どの項目も任意の値とマッチする文字 「*」が使えます。 デフォルトのルールを決めるのに便利でしょう。
最初の項目は、このパーミッションが適用されるコールサインまたはユーザー 名です。 SSID は指定しても無視されますので、コールサインだけを書くようにしてく ださい。
プロトコルやアクセス方法もまた、それぞれにパーミッションが与えられます。 例えば、AX.25 や NET/ROM 経由で接続してきたユーザーには (C)onnect オプ ションが使えるようにしたいけど、ローカル以外のノードから telnet などに よって接続してきたユーザーには (C)onnect を使わせたくない、という場合 もあるでしょう。 そこで、この二つ目の項目は、このパーミッションが適用されるアクセス方法 を決めます。 ここで指定されるアクセス方法は以下の通りです。
アクセス方法 | 説明 |
---|---|
ampr | amprnet の IP アドレス (44.0.0.0) から telnet による接続 |
ax25 | AX.25 による接続 |
host | その node をコマンドラインから起動したホスト自身 |
inet | ローカルホストでもなく ampr の IP アドレスでもないホストからの telnet による接続 |
local | ローカルホストからの telnet による接続 |
netrom | NET/ROM による接続 |
rose | ROSE による接続 |
* | 方法によらず全ての接続 |
必要であれば AX.25 経由のユーザーについてはポート毎のパーミッションの 設定も可能です。 つまり、どの AX.25 ポートから接続したかによって何を許可するかを決める ことができるのです。 この機能を使うときは、三つ目の項目にポート名を記入します。 AX.25 経由の接続についてのみ意味を持ちます。
ユーザーが接続してきたときに node がパスワード入力を促すように設定する こともできます。 この機能は特別なユーザーの権限を保護するのに役立つことでしょう。 四つ目の項目に書込んだものが受付けるべきパスワードとなります。
各行の最後はパーミッションの項目になります。 この項目はビットフィールドによる指定になります。 各機能に対応するビットがあり、それがセットされると許可を表し、セットさ れていなければ不許可を表します。 ここで制御可能な機能とそのビットの意味は以下の通りです。
値 | 説明 |
---|---|
1 | ログイン許可 |
2 | AX.25 の (C)onnects を許可 |
4 | NET/ROM の (C)onnects を許可 |
8 | ローカルホストへの (T)elnet を許可 |
16 | amprnet (44.0.0.0) のホストへの (T)elnet を許可 |
32 | ローカル以外のホスト、amprnet 以外のホストへの (T)elnet を許可 |
64 | AX.25 の隠しポートでの (C)onnects を許可 |
128 | ROSE の (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 |
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 プログラムを実行することになります。
ユーザーがあなたのマシンに 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 に接続することになります。