2

telnetlibを使用しているときに、いくつかの興味深い変数に気付きました。

AUTHENTICATION = chr(37) # Authenticate
XAUTH = chr(41) # XAUTH
PRAGMA_LOGON = chr(138) # TELOPT PRAGMA LOGON
SSPI_LOGON = chr(139) # TELOPT SSPI LOGON

また、このページAUTHENTICATIONには、オプションを詳細に記述した RFC がいくつかリストされています。

私の理解が正しければ、telnet サーバーが認証をサポートしていれば、接続時に受信するはずIAC DO AUTHENTICATIONです。ただし、Linux マシンでtelnetdに接続しようとすると、このオプションが表示されないため、送信できませんIAC WILL AUTHENTICATION

私の理解は正しいですか?サーバーに認証を依頼する方法はありますか? telnet セッションを自動的に認証することさえ可能ですか? (「ログイン:」、「ユーザー名:」、「パスワード:」などのプロンプトを聞かずに)

4

1 に答える 1

1

はい、RFC 1416を正しく理解しています。DO認証をサポートしている場合、サーバーは最初に送信する必要があります。WILLとにかく送信を試みることはできますが、それは仕様に反するため、おそらくうまくいかないでしょう。

Linux telnetd とは、おそらく netkit telnetd を意味します。そして、そのマンページで見ることができる限り:

-a authmode このオプションは、認証に使用するモードを指定するために使用できます。このオプションは、telnetd が現在のバージョンでは利用できない認証をサポートするようにコンパイルされている場合にのみ有用であることに注意してください。[...]

だから、そんなことはできないと言いたい。OpenBSD telnetd ( telnet-bsdGentoo のパッケージ) を使用しています。いくつかの認証ビットがあるようですが、まったく機能させることができませんでした。Kerberos ベースの認証のみをサポートしていると思われます。

RFC 2941の認証タイプ リストを見ると、ほとんどの認証タイプは指定されていないようです。それらを見ると、DSS/DSA はたいてい興味深いものです (SSH でも使用されています) が、準拠したサーバーとクライアントを見つけるのは非常に難しいと思います。残念ながら、単純な (平文の) 認証に関する提案はなかったようです。

要約すると、はい、誰かが実装すれば可能です。しかし、telnet は事実上死んでいるので、そのためのサーバー実装が見つかるとは思えません。たとえそうしたとしても、クライアント側を自分で書かなければならず、サポートされているスキームではそれほど簡単ではありません. だから私はそれが努力する価値があるとは思わない.

于 2012-07-31T08:31:56.363 に答える