Eu me conecto a um roteador Cisco usando telnet.
A conexão expira a cada 3 minutos.
Como impedir que minha sessão telnet seja desconectada do roteador devido a um tempo limite.
Entendo que o putty e o SecureCRT podem enviar um caractere nulo ou de escape periodicamente para interromper o tempo limite da sessão (telnet ou SSH).
Como faço isso no Linux sem um programa de terceiros? Eu uso o seguinte script como script de inicialização ao iniciar meu terminal:
#!/usr/bin/expect -f
spawn telnet <Router IP Address>
expect -re "ogin: "
send "*******\n"
expect -re "assword:"
send "***********\n"
sleep 2
expect "Router>"
interact
A
interact
declaração deexpect
pode ter pares de padrões e ações um pouco como aexpect
declaração. Em particular, você pode adicionar um padrão de tempo limite e uma ação de envio. Por exemplo,enviaria o que você digita normalmente, mas se você não digitar por 10 segundos, ele enviará a string
date
e o retorno de carro. Se você estiver usando telnet, no modo char, poderá manter a conexão ativa simplesmente enviando um espaço seguido de um backspace, o que não interromperá nenhuma linha parcial que você já digitou:Você tem o tempo limite padrão em suas
telnet
sessões no lado da Cisco, e não no lado do Linux como medida de segurança.Aconselho não confundir aqueles
timeouts
com keepalives TCP. Eles são tempos limite da camada 7 para inatividade do console/operador humano.Eu diria que você deve configurar
ssh
sessões e nãotelnet
para roteadores Cisco devido a questões de segurança.Uma das configurações que você pode fazer no lado cisco se você for
ssh
é:Quanto a
telnet
, você pode alterar o tempo limite padrão como:Você também pode usar
exec-timeout 0
ouip ssh timeout 0
para não ter timeouts emtelnet
oussh
, porém não é considerado uma boa prática de segurança. .Eu também aconselharia alterar outras configurações padrão do roteador, ou seja, o padrão
hostname
.