図2 telnetコマンドを使ってサーバー・ソフトを調べたときのやりとり
図1のようにtelnetコマンドを実行したとき,サーバー・マシンの25番ポートに接続要求を出し,コネクションが確立されると,サーバーから応答メッセージが返信されてきた。この結果,クライアントの画面には応答メッセージが表示されたわけだ。

[画像のクリックで拡大表示]

 図1で実践したテクニックの裏側も確認しておこう(図2[拡大表示])。初めに,コマンド・プロンプトから「telnet 192.168.0.200 25」と実行した。これによってtelnetコマンドは,SMTPサーバー・ソフトへ接続要求パケットを送出する。サーバー上でSMTPサーバー・ソフトが動いていれば,この接続要求が受け入れられ,コマンドを実行したパソコンとサーバーの間でTCPコネクション*が確立される。

 画面に「220 test-server.…」のようなメッセージが表示されたのは,TCPコネクション確立後にSMTPサーバー・ソフトから応答メッセージが返信されてきたからである。telnetコマンドは,この応答メッセージを画面に表示したわけだ。

 逆に図1(2)’のように画面に表示された場合は,TCPコネクションの確立に失敗したケースだ。つまり,telnetコマンドは指定されたサーバー・ソフトへTCPコネクションの接続要求パケットを送ったが,相手から応答がないなどの理由で接続に失敗すると図1(2)’のようなメッセージが表示される。

 実は,このtelnetコマンドを使ってサーバー・ソフトへ接続できるかどうかを調べるテクニックは「ポート・スキャン」,接続してその応答からOSやサーバー・ソフトの種類やバージョンを調べるのは「バナー・スキャン」などと呼ばれる。これらポート・スキャンやバナー・スキャンは,クラッカがサーバーに不正侵入するための情報収集手段としても使われる。第三者のサーバーに対してこのテクニックを使うと,クラッカと間違われてしまうので,やめておこう。