kazmax - Linux で自宅サーバー

forward - コマンド (プログラム) の説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. オプション
  5. テスト済みサービスのリスト
  6. バグ
  7. ファイル
  8. 標準
  9. 入手方法
  10. 著者
  11. 関連項目

名前

forward - 任意のソケットを安全で圧縮された経路にフォワードする

書式

forward
[-h , --help ]
[-v , --verbose ]
[-V , --version ]
[-p , --password password ]
[--netrc ]
[--no-netrc ]
[--secure ]
[-z , --gzip ]
[-K , --key-size bits ]
[user @ ]machine1 [: port1 ]
machine2 : port2
listen_port

説明

forward はローカルマシンの listen_port で待ち受ける。接続を受信すると、その接続を   secure-mcserv (1) デーモンが既に動作しているはずの machine1 ヘとフォワードする。すると secure-mcserv デーモンは machine2 のポート port2 に接続する。そしてすべてのトラフィックは、 透過的に listen_portmachine2port2 の間をフォワードされる。
ローカルマシンの listen_portmachine2port2 との間の接続は、 --secure オプションと --gzip オプションで変更できる。このように、 forward はあらゆるサービスに対して、安全性あるいは圧縮を付加できる。

オプション

すべてのオプションは mirrordir と同様である。詳細は   mirrordir (1) を見てほしい。ただし --debugforward がバックグラウンドのデーモンへフォークするのを妨げる意味しか持たない。

私はこれらを試していないが、論理的には正しいと思う。 どこかでタイプミスをしていたら、私に知らせてほしい。

プリントサーバ A が LAN にある。 この LAN にはマスカレードサーバ B があり、 LAN をインターネットにつないでいる。 B はインターネットと A の両方を見ることができる。 ある別のサイトで、JohnD というマシンを持っており、 これはマスカレードサーバ C を通してインターネットにつながっている。 BD は、インターネット越しでしかお互いを見ることはできない。 John は lpr を D で起動し、 印刷を A に出力させたい。 また BC の間の経路を圧縮させ、 (1024 ビットの鍵交換で) 暗号化させたい。

手順は以下のようになる (515 はプリンタのポート):
    A# lpd &
    B# secure-mcserv -d -p 12345
~/.netrc に john の B におけるパスワードのエントリを追加する。そして
    C# forward john@B:12345 A:515 515 --secure -K 1024 -z
/etc/printcap に C のプリンタ x のエントリを追加する。そして
    D# lpr -Px mydocument

同僚の John が嫌いな Jill が、 X セッションのスクリーンダンプを表示する場合を考える。 彼女は安全な X セッションを、サーバ A と メインフレーム B の間に作りたい。

手順は以下のようになる (6010 は display 10.0 に対応する):
    A# X &
    A# secure-mcserv -d -p 12345
~/.netrc に jill の A におけるパスワードのエントリを追加する。そして
    B# forward jill@A:12345 A:6000 6010 --secure -K 1024
    B# export DISPLAY=localhost:10.0
    B# fvwm &

テスト済みサービスのリスト

telnet ログイン、X セッション、プリンタ (lpr) サービス、 http、pop3 接続はテストされ、動作が確認されている。 ftp はソケットのバインドが妙 (?) なのでフォワードできない。 他に動作したものがあったら知らせてほしい。 ほとんどのものは動作するはずだが。

バグ

  mirrordir (1) の バグ セクションも見てほしい。 帯域外データ ( recv (2) と send (2)の MSG_OOB )は暗号化も圧縮もされない。修正されず、プレインテキストで送信される。 これをセキュリティ上のリスクだと考える方は、 私に知らせてほしい。何らかの対応をしたいと思う。

  rlogin (1) での画面サイズ変更 (の検知?) は動作しないようだ。しかし   telnet (1) では問題ない。これは OOB データが正しく送られないことと関連しているに違いない。 しかし問題点を発見するために rlogin, rlogind, forward, secure-mcserv を同時にデバッグするのは、私は気がすすまない。 チャレンジしてみたい人は、どうか頑張ってほしい。

ファイル

~/.netrc
マシンとそのパスワードのリスト。

標準

mirrordir は作成者の発明であり、 いかなる OS の標準にも従っていない。

入手方法

このプログラムの最新版は、 ftp://metalab.unc.edu/pub/Linux/system/backup または ftp://lava.obsidian.co.za/pub/linux/mirrordir から入手できる。

著者

Paul Sheer <psheer@obsidian.co.za> <psheer@icon.co.za>

関連項目

mirrordir (1), pslogin (1), ssh (1)