さて、Linux等のUNIX系OSは、telnetなどを使って遠隔から操作したりするのが得意です。また、すぐ横にあったとしても、Windowsなどから操作できればとても楽ですね。また、ネットワークの実験にもなりますので、telnetサーバーを導入してみましょう。
自分で導入しましょうとか言っていてなんなんですが、telnetは手軽な分、とても危険で無防備なものです。あくまでもローカルでの初期設定時だけに使用すべきです。外に接続するようになったら、一番に引っこ抜いておかなくてはいけません
telnetサーバーのパッケージは、「telnet-server_0.17.6x-23vl1_i386.rpm」です。しかし、CD-ROM内をいくら探しても見つかりません。
telnet-serverは、かつては定番のソフトでしたが、いまではセキュリティの問題からあまり使われなくなっています。そのため、Vineの標準的なCDからは、もう外されています
しかし、ちゃんと Vine Plus という追加ソフト集には収録されていますので、aptがちゃんとしていてネットワークが通っていれば、すぐに導入できます。
まず、apt で最新の情報に更新します。
# apt-get update
そして、検索してみます。
# apt-cache search telnet curl - A utility for getting files from remote servers (FTP, HTTP, and others). screen - スクリーンマネージャ - 一つの端末で多重ログイン tcp_wrappers - TCP デーモンのラッパとして働くセキュリティツール telnet - The client program for the telnet remote login protocol. curl-devel - Files needed for building applications with libcurl. delegate - delegate expect - Tcl/Tk 開発環境: expect httptunnel - HTTP プロトコル上に接続をトンネル化するプログラム perl-URI - URI module for perl telnet-server - The server program for the telnet remote login protocol. w3c-libwww - General-purpose Web API written in C zebedee - 暗号と圧縮を備えたシンプルで安全な TCP/IP, UDP/IP トンネル
お?ありましたね。パッケージ名は、「telnet-server」です。では、早速導入してみましょう。
# apt-get install telnet-server
おそらく、これを実行すると、[Y/n] と質問されることでしょう。これはようするに、「 telnet-server を導入するには、 inetd も導入しないといけないよ。いい?」っとまあ、こういう意味です。telnet-serverは、inetdというソフトなしには意味がない!と。 こういうのを、ソフトの依存関係といいます。
ま、そんなわけで、「Y」を押してください。
telnet-server と inetd が自動的にダウンロードされ、インストールされます。
動かす前に・・・
telnetサーバーを動かす前に、ちょっと前準備があります。
まず、telnetサーバーは、 inetd というデーモン(常駐ソフトと考えてください)によって管理され、動作します。いわば、inetdは受付。受付に、telnetの通信を許可するように頼んでおかなくてはいけません。(おそらくセキュリティ上の理由でしょう。標準では許可されていません。)
viで、 /etc/inetd.conf というファイルを開いてください。なにやら、やたらとコメントアウトが多いファイルですね。ずーっと下の方をみていくと・・・・・ ほら! あった。ここが、telnetサーバーの許可をする部分です。
# These are standard services. # #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd #gopher stream tcp nowait root /usr/sbin/tcpd gn # do not uncomment smtp unless you *really* know what you are doing. # smtp is handled by the sendmail daemon now, not smtpd. It does NOT # run from here, it is started at boot time from /etc/rc.d/rc#.d.
ここのコメントアウトを外しておきます。
さて、次は、最低限のセキュリティです。
このサーバーはリーター越しのローカルネットワーク上にあります。普通はルーターが外からの変なアクセスを制限するものなんですが、設定をミスッていたりなども起こりえます。
そこで、telnetサーバーに対しての通信を、許可したホストとだけ行えるようにしておきます。
そのための設定は、/etc/hosts.allow と、 /etc/hosts.deny で行います。
基本的な考え方は、 hosts.deny で、一旦全ての接続を禁止し、hosts.allow で特定の接続だけを許可するというパターンになります。Vineの標準の状態では、両ファイルとも、中身は全てコメント行なので、からっぽと同じ状態です。
では、実際に設定してみましょう。
host.denyで全ての接続を拒否
# # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! ALL : ALL
これで、全ての接続は禁止されます。
そして、特定の接続だけを許可します。 この場合、おそらくはルーター(外との出入り口)もローカルアドレスでしょう。なので、このサーバーにtelnetするマシンのみを許可します。(つまり、ネットワークまるまる許可とかをしない)
hosts.allowで接続を許可
# # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # in.telnetd: 192.168.1.11 192.168.1.12 ← 許可するWindowsマシンなどのIP
お解りになると思いますが、スペースで区切れば複数書くことができます。
tenletサーバー起動
さあ、これで準備できました。telnetサーバーを起動してみましょう。 先にも説明しましたが、telnetサーバーは、inetd という受付によって案内されて動きます。つまり、inetd を動かせば、telnetサーバーが動き出します。
inetd を起動します。
# /etc/init.d/inetd start Starting INET services: [ OK ] #
さあ、あとは、Windowsなどからtelnetで接続してみます。画面も広いし、使い慣れたキーボードが使えるので、快適です。
ちなみに、私は、telnet用のWindowsソフトは、Putty というのを使っています。これはSSHなどにも使えるのでお勧めです。