11

ネットワーク経由でシリアルポートを利用できるようにしたいのですが。RFC-2217は、速度、データビット、ストップビット、ハードウェアハンドシェイクラインなどの追加のシリアルポート情報を転送するためのTelnetの拡張機能を提供します。

ただし、ネットワーク上の誰もが自由にアクセスできないようにしたいので、認証と暗号化を行いたいと思います。Telnetは認証に弱く、暗号化を提供しません。SSHは一般的にTelnetよりも優先されます。

RFC-2217のように、SSHを介したシリアルポートトランスポートを可能にするプロトコルはありますか?

1つのオプションは、SSHトンネルを介してTelnet+ RFC-2217をトンネリングすることである可能性があることを認識しています。これは技術的には達成可能ですが、実際には少し厄介です。

Zeroconf

もう1つの質問は、そのようなポートをZeroconfDNS-SDでどのようにアドバタイズできるかということです。たとえば、SSHを介してトンネリングされるTelnet + RFC-2217シリアルポートをZeroconfでアドバタイズするにはどうすればよいですか?(プレーンなTelnet + RFC-2217は_telnetcpcd._tcp、私が言えることから宣伝されている可能性があります。)

4

3 に答える 3

4

SSHトンネリングがあなたが思うほど厄介であるかどうかはわかりません:

-W host:port
クライアントの標準入出力を、セキュリティで保護されたチャネルを介してポートのホストに転送するように要求します。-N-T、ExitOnForwardFailure 、およびClearAllForwardingsを意味し、プロトコルバージョン2でのみ機能します。

短いSMTPセッションのトンネリングは次のようになります(太字で入力された入力)。

$ ssh -W mail.server.com:25 blahdiblah@server.com
220 mail.server.com ESMTP 
Postfix
ehlo foo.com
250-mail.server.com
250-PIPELINING
250-SIZE
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye

トンネルを個別に設定してからそのポートに接続する必要はありません。sshプロセスからの入力と出力をパイプするだけです。

于 2012-07-28T02:34:52.927 に答える
3

必要なのは、セキュリティで保護されたシリアルオーバーLAN接続です。

これを行う無料のプロジェクトが見つからない理由は単純です。ほとんどのオープンソースプロジェクトは、トランスポート層のセキュリティをプロトコルから分離しています(正当な理由があります)。アプリケーションごとに車輪の再発明を行う代わりに、セキュリティコンポーネント(この場合はSSH)を再利用して、セキュリティで保護されていないプロトコル(RFC-2217互換など)に適用できます。

SSHトンネルまたはstunnelを使用して接続を保護するだけです。Windowsクライアントの場合はcom2comを使用でき、*nixシステムの場合はttydのようなものを使用できます。

たとえば、 com2comは、初期設定後に手動で起動する必要がないため、ユーザーはSSHトンネルを確立するだけで済みます(たとえば、PuTTYを介して)。

  • com2com
  • socat、を使用してptyopenssl-listenあなたが望むことをほぼ正確に行うことができます(実際にトランスポート層のセキュリティを実装しているため、上記で書いたものとは少し矛盾します)
于 2012-07-29T21:53:50.910 に答える
0

SSHは、「疑似端末でエンコードされた端末モード」を使用した「疑似端末の要求」を提供します。ボーレート、ビット、パリティ、ストップビット構成の設定を提供します。フレーミングエラーやブレーク状態を受信するように設定することが可能です。ただし、SSHプロトコルには現在、ブレーク条件を設定したり、DTRおよびRTSモデムハードウェアラインを設定したり、DSR、CTS、DCD、およびRINGモデムハードウェアラインを取得したりするコマンドがないようです。PARMRK

見る:

于 2016-08-01T02:18:44.977 に答える