Telnet サーバには inetd などのインターネットスーパーサーバを必要としない utelnetd を使うことにした。つまりはスタンドアローンの Telnet デーモンである。

ネットの情報では「あらかじめ root のパスワードを外しておく必要がある」という記述を見かけたが、そんなことはなかった。そもそもログイン認証を経由しないので Telnet 接続時にいきなりプロンプトが返される(苦笑)。プレーンテキスト認証でもないよりはあったほうがマシだと思うのだが、起動オプションがマズイんだろうか・・・。ちなみにハックマニュアルを参考に /etc/init.d 下に作成した起動スクリプト telnet の内容は以下の通り。

#!/bin/sh

/sbin/utelnetd -l /bin/bash &

一応 usage をチェックしてみた(最初確認方法がわからなかったのでソースを参照したが、その後、シェル上で適当なオプションを付けて実行したら invalid option エラーで usage が出てきた)。

Usage: telnetd [-p port] [-i interface] [-l loginprogram] [-d]

  -p port          specify the tcp port to connect to
  -i interface     specify the network interface to listen on
                   (default: all interfaces)
  -l loginprogram  program started by the server
  -d               daemonize

うーん、何となくわかった気がする・・・。色々と試した結果、loginprogram を /bin/login に切り替えることでログイン認証を経由することが確認できた。まずはあらかじめ root に設定されていたパスワードを無効にする。これは /etc/shadow を開き、root ユーザの暗号化されたパスワードを削除すればよい。

root:Yx976tFwkdj5W:14121:0:99999:7:::

となっていれば、Yx976tFwkdj5W の部分がパスワード。

root::14121:0:99999:7:::

ただこのままだとログイン認証する意味がないので passwd コマンドで新規にパスワードを作成する。続いて /etc/init.d/telnet を開き、起動コマンドを以下のように修正。

/sbin/utelnetd -l /bin/login &

一応これでセキュリティがほんの少しだけ上がった(苦笑)。







タグ:

LinkStation
最終更新:2008年08月30日 19:33