書式
secure-mcserv [options] [-p portnum]説明
secure-mcserv は Midnight Commander vfs (バーチャルファイルシステム) の Midnight Commander (ネットワーク) ファイルシステム (mcfs) サーバである。 secure-mcserv は mirrordir パッケージに含まれている。Midnight Commander のネイティブな mcserv デーモンの代わりに動作させることができ、 mirrordir 向けにいくつかの拡張がなされている。- セキュリティと圧縮
- これは secure-mcserv の機能というよりも、 mirrordir 全体に対して実装された、透過的かつ安全な TCP 層である。 この層は、通常モード、圧縮 (gzipped) モード、暗号化モード、 圧縮+暗号化モードで動作できる。 接続のモードは TCP ストリーム先頭のマジックナンバーによって自動検知される。 Midnight Commander は secure-mcserv を、自らのネイティブなサーバである mcserv の代わりに利用できる。 mirrordir(1) の -z, --secure, -K 各オプションを見よ。
- 特定のホストからのアクセスの拒否
-
-
/etc/hosts.allow
ファイルに以下のような行を追加する。
secure-mcserv: <source-ip-address> : ALLOW secure-mcserv: 212.89.128.0/255.255.255.0 : ALLOW secure-mcserv: ALL : DENY
(この機能は Juergen Kammer <[email protected]> から寄せられました。彼のところでは動作しているそうです。)
-
/etc/hosts.allow
ファイルに以下のような行を追加する。
- ログイン
- mirrordir の配布に含まれる pslogin を用いると、安全に secure-mcserv に対するログインができる。 これは rlogin(1) が rlogind(8) に対して動作するのと同様である。 mirrordir(1) の --login-mode オプションを見よ。
- TCP ソケットのフォワード
- mirrordir の配布に含まれる forward(1) コマンドを用いると、任意の TCP ソケット接続を 安全または圧縮 (あるいはその両方の) TCP チャネルにフォワードできる。 これは通常のサービスを暗号化サービスにでき、とても便利である。 forward(1) に例がある。
オプション
- -d
- デーモンになる (同時に -q も設定される)。 通常は常にこのオプションを用いることになるだろう。 これ以外としては、 -d を指定せずに -v (後述) を指定して、失敗した接続をデバッグする場合があり得るだろう。
- -q
- 寡黙モード。これはデフォルトである。
- -f
- 通常の認証が失敗したときに ftp 認証を試みる。
- -v
- 饒舌モード。様々なデバッグ情報を表示する。
- -p port
- 待ち受けるポート番号を指定する。デフォルトは 9876。
- -s server[:port]
-
-
利用するパスワードサーバを指定する。
このパスワードサーバとは、単に他のマシンで
-s
オプション無しで動作している
secure-mcserv
のことである。
このオプションは、たくさんのマシンを用いており、 それらに対して一群のユーザ達がログインするような場合にとても便利である。 これらのユーザ全員に対するアカウントを各マシンにつくり、 /etc/password (あるいは /etc/shadow) を編集してパスワードフィールドを * にしてアカウントを無効にしておく。
ひとつのマシンをパスワードサーバとして選択する (このマシンを仮に passerv.my.doma.in としよう)。このマシンの /etc/password のパスワードフィールドには、正しいパスワードを入れておく。 このマシンで、通常のように secure-mcserv -d を起動する。他の全てのマシンでは、 secure-mcserv -d -s passerv.my.doma.in を起動する。
これらの間の接続は、全て等しく暗号化された TCP ストリームとなるので、 これらはすべて同じように安全である。この方法は passerv.my.doma.in がインターネットの向こうにあるような場合にでも利用できる。 実際、パスワードサーバに対する認証は、 以下のコマンドの終了ステータスを見ることによって行なわれている。
pslogin user@passerv.my.doma.in --test-login --read-password-from-stdin
また、パスワードサーバのカスケードを利用することも不可能では無いはずだ。 こうすることには何の利点も無いけれど。
それぞれの認証は、実行に同じ時間を必要とする。 よってパスワードサーバを用いると、 2 つめの接続がパスワードサーバになされるため、 通常のログインの 2 倍の時間がかかる。 カスケードにすると、各パスワードサーバごとに、 もっと余計な時間がかかる。
-
利用するパスワードサーバを指定する。
このパスワードサーバとは、単に他のマシンで
-s
オプション無しで動作している
secure-mcserv
のことである。
バグ
syslog にログ出力しない。Midnight Commander vfs にはバグがあり、 デバイスファイルは常に メジャー番号:マイナー番号 が 0:0 となる。 このバグは、この実装では修正されている。 デバイスファイルの転送に Midnight Commander を用いてはいけない。 ただしこれをあなたが読んだ時点の最新版の Midnight Commander では、 この問題は修正されているかもしれない。
rlogin セッションをサスペンドする特殊なエスケープ文字は認識しない。 よって screen (?) のようなコマンドは動作しない。 もしユーザからの要望があれば、この機能は追加するつもりだ。 現在のところ、^Z などは効力を持たない。