web-dev-qa-db-ja.com

Telnet接続が外部ホストによって閉じられました

client PC IP: 10.49.46.5/24server PC IP: 10.49.46.2/24は、同じネットワークにリンクされた2台のコンピューターです。コマンドtelnetを使用してこれらの2台のコンピューター間でインタラクティブな通信を作成しようとすると、次のようになります。

[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.

Connection closed by foreign Host.
[root@xxx:~]#

サーバーxinetd.confは次のとおりです。

    defaults
    {
            instances               = 60
            log_type                = SYSLOG authpriv
            log_on_success          = Host PID EXIT
            log_on_failure          = Host ATTEMPT
            cps                     = 25 30
    }
includedir /etc/xinetd.d

サーバーtelnet.configは次のとおりです。

service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/telnetd
        log_on_failure  += USERID
        instances       = 10
        disable         = no
}

TCPWrapper hosts.allowは次のとおりです。

telnetd: /etc/telnetd.hosts
tfdpd: /etc/tftpd.hosts
sshd: /etc/sshd.hosts

TCPWrapper hosts.denyは次のとおりです。

ALL:ALL

今:

  1. sshを確認したところ、port 22で実行されています。
  2. /var/log/messageを確認したところ、コマンドxinetdが開始され、すぐにTelnetを終了することがわかりました。
  3. 次のコマンドを使用してiptablesがtelnetパッケージを削除しないことを確認しました:iptables -L

何が問題なのか、どうすれば修正できるのかを教えてくれませんか。

2
Yuri
[root@xxx:~]# telnet 10.49.46.2
Trying 10.49.46.2...
Connected to 10.49.46.2.
Escape character is '^]'.

これは、リモートデーモンへのTCP=接続を正常に確立したことを意味します。どのデーモンですか?ハブとして機能するxinetdの1つです。接続されたので、xinetdは、特定のサービス(telnet)の起動を試みます。

Connection closed by foreign Host.

これは、telnetサービスの起動に失敗したことを意味します。 telnetdコマンドラインにデバッグオプションを追加し、xinetdログを読み取って、何が失敗したかを確認することができます。


BusyBoxバージョンのtelnetdを実行しているようです。 telnetdの従来のバージョンとは異なり、Busyboxで提供されるのはスタンドアロンのデーモンであり、inetdとのインターフェースに-iオプションが必要です(inetdスタンドアロンデーモンと互換性のない特定のインターフェース:ソケットを開いてリッスンしてはならず、stdin/stdoutを介してクライアントと通信する必要があります)。

したがって、xinetd構成は次のようになります。

service telnet
{
        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/telnetd
        server_args     = -i
        log_on_failure  += USERID
        instances       = 10
        disable         = no
}
2
xhienne

telnet 10.49.46.2 24でTelnetポートを指定します。

コグネックスのカメラマニュアルによると、「ポート番号を指定すると、Unixのユーザー名/パスワード認証が無効になり、Unixシステムがユーザー名とパスワードの入力を要求するようになります。」

0
ptoot