Telnetセッションタイムアウトを防ぐ方法は?

Telnetセッションタイムアウトを防ぐ方法は?

Telnet を使用して Cisco ルータに接続します。

3分ごとに接続がタイムアウトします。

Telnet セッションのタイムアウトとルータの切断をどのように停止しますか?

私が知っている限り、puttyとSecureCRTは定期的にnullまたはエスケープ文字を送信してセッション(telnetまたはSSH)がタイムアウトするのを防ぎます。

第三者プログラムなしでLinuxでこれを行うにはどうすればよいですか?ターミナルを起動するときは、次のスクリプトを起動スクリプトとして使用します。

#!/usr/bin/expect -f

spawn telnet <Router IP Address>
expect -re "ogin: "
send "*******\n"
expect -re "assword:"
send "***********\n"
sleep 2
expect "Router>"
interact

答え1

interactのドアは、このドアに似たペアのパターンと操作をとるexpectことができます。expect特に、タイムアウトモードを追加してジョブを送信できます。例えば、

interact timeout 10 { send "date\r" }

入力した内容は通常通り送信されますが、10秒間入力しないと文字列とdateキャリッジリターンが送信されます。文字モードでTelnetを使用している場合は、スペースとバックスペースを順番に送信して接続をアクティブに保つことができます。これにより、入力した行のどの部分も中断されません。

interact timeout 150 { send " \b" }

答え2

telnetセキュリティ対策として、シスコ側のセッションにはデフォルトのタイムアウトがありますが、Linux側ではそうではありません。

timeoutsTCP keepaliveと混同しないことをお勧めします。これは、コンソール/オペレーターの非アクティブのレイヤー7時間超過です。

sshセキュリティ上の理由から、Ciscoルータの代わりにセッションを確立する必要があると言いたいです。telnet

必要に応じてシスコ側で実行できる設定の1つはssh次のとおりです。

ip ssh timeout 300

の場合、telnetデフォルトのタイムアウトを次のように変更できます。

r1# configure terminal
r1(config)# line vty 
r1(config-line)# exec-timeout 300

またはでタイムアウトを防ぐためにまたはexec-timeout 0を使用することもできますが、これは良いセキュリティ方法とは見なされません。 。ip ssh timeout 0telnetssh

また、ルーターの他のデフォルト設定(デフォルト)を変更することをお勧めしますhostname

関連情報