• Publicidad

SSH 2 con CISCO

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Notapor TELCO71 » 2008-02-10 18:11 @799

Estimado Explorer, :lol:

¿Cómo es eso de programar un protocolo de intercambio de datos? :oops:
Yo pensaba utilizar los módulos de SSH2 y telnet de Perl. Los 3 servidores están corriendo SSH2 y puedo realizar el telnet a los equipos sin problemas desde el SERVER_C.

¿Los podría realizar con los módulos estándares de Perl? :roll:

Saludos y gracias, :wink:
Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Publicidad

Notapor TELCO71 » 2008-02-16 16:40 @736

Explorer,

¿Cómo es eso de programar un protocolo de intercambio de datos?
Yo pensaba utilizar los módulos de SSH2 y telnet de Perl. Los 3 servidores están corriendo SSH2 y puedo realizar el telnet a los equipos sin problemas desde el SERVER_C.

¿Los podría realizar con los módulos estándares de Perl?

Saludos y gracias,
Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2008-02-16 16:52 @744

Con lo de protocolo me refiero a que eres tu el que decide cómo intercambiar los datos entre los servidores.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2008-02-17 12:44 @572

Explorer,

¿Ves factible que utilizando los módulos de Perl SSH2 y Telnet desde el server_A pueda seguir realizando los backup de los routers?

Digamos el Server_A es en donde se encuentra corriendo el script de Perl y que usa 2 archivos de texto plano que son los input en donde se encuentran las IP a telnetearse y el otro tiene los comandos que les manda a los equipos.

Digamos eso se lo tendría que pasar al tercer server (Server_C) que es de donde se pueden realizar los telnet a los routers. Y que me siga guardando los archivos con las configuraciones de los equipos en el Server_A.

¿Con tu amplia experiencia en programación lo ves posible de realizar?

Saludos y gracias por tu ayuda.
Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2008-02-17 18:07 @796

Yo sí lo veo posible, pero hay que tener en cuenta algunos detalles.

Desde el Server_A puedes ejecutar comandos en el Server_C. Básicamente hay tres formas:
* El Server_A ejecuta una petición a un programa servidor en el Server_C
* Desde el Server_A se entra con un determinado nombre de usuario y contraseña y se ejecuta alguno de los comandos permitidos para ese usuario. Es el mismo caso que el anterior, siendo el programa servidor el sshd del Server_C. En el lado del cliente, bastaría con usar un comando ssh. Por ejemplo: ssh usuario@Server_C comando.
* Usar un sistema de intercambio de información, como puede ser un fichero, que incluya órdenes y/o datos. Los programas servidores se limitarán a ver la llegada de esos ficheros (viendo un directorio, por ejemplo, y procesando los que llevan X segundos de antigüedad allí).

Tu problema incluye:
* Pasar la información (ficheros) desde el Server_A al Server_C, o que los programas del Server_C tengan accesos a ellos de alguna manera
* Desde el Server_A, manda ejecutar los programas del Server_C. O por medio de un comando SSH de un usuario o de un programa que esté escuchando.
* El Server_C los ejecuta. El problema ahora es al revés: cómo pasar la información al Server_A. Pero se puede resolver de la misma manera.

Y sí, se puede hacer en Perl :wink:
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2008-02-20 20:22 @890

¡¡ Estimado Explorer !! :lol:

¿Qué tal?

Para realizar el primer salto de SSH no tuve mayores problemas. Lo que no estoy pudieron realizar es el segundo salto dentro del primer server de SSH. :oops:
¿Hay algún ejemplo de conexiones recursivas de SSH?

Y otra pregunta... ¿el Net::Appliance es mejor que el módulo de Net::SSH::Perl?

Saludos y gracias,
:wink: Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2008-02-20 21:32 @939

En el segundo servidor tienes que hacer lo mismo que en el primero: colocar unos scripts que se conecten al tercero de la misma manera que los scripts que están en el primero. Y serán ejecutados por los scripts del primer servidor, claro.

Otra posibilidad podría ser hacer túneles SSH para conectar las distintas máquinas.

Y sobre los módulos, pues Net::Appliance parece dar un entorno más cómodo para la ejecución de comandos en otros servidores, sí. Pero esto es para conectar de un ordenador a otro. No te va a librar del hecho de tener que ejecutar distintos scripts en máquinas distintas.

Sobre el tema de conexiones recursivas... se podría con el tunneling comentado antes... o con reglas de filtrado en el kernel que instruyan a redirigir las peticiones SSH de un servidor hacia otro (pero esto, realmente, ya es un tunneling)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2008-02-21 13:23 @599

Estimado Explorer , :lol:

Al primer server de SSH2 me conecto sin problemas... lo que no estoy logrando es conectarme al segundo I para luego correr el script en el 2º server de SSH2. :cry:

Estoy realizando pruebas con este script modelo... y estoy notando que solo me muestra la salida del último comando que le mando y los está ejecutando en el primer server de SSH. Lo que creo que sería interesante es en una única sentencia enviarle los datos para que se conecte al segundo server de SSH... porque estoy sospechando que establece un canal independiente por cada comando que le estoy enviando. :oops:
¿Esto es así?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

use Net::SSH::Perl;
$host = '192.168.10.4';
$username = "pepe";
$login_password= "linux";

$ssh = Net::SSH::Perl->new($host,port=>6666,debug=>"1",protocol=>2);
$ssh->login($username,$login_password);

$host_2 = '172.20.10.3';
$username_2 = "pepe";
$login_password_2= "linux";

$ssh = Net::SSH::Perl->new($host_2,debug=>"1",protocol=>2);
$ssh->login($username_2,$login_password_2);

my($stdout, $stderr, $exit) = $ssh->cmd('ls -la');
my($stdout, $stderr, $exit) = $ssh->cmd('hostname');

print "output: $stdout\n";
print "Error: $stderr\n";
print "status: $exit\n";

$ssh->cmd('exit');

$ssh->cmd('exit');
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4



Saludos y muchas gracias , :wink:
Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2008-02-21 15:07 @672

A ver... es que no sé si me explico mal...

De la misma manera que tu mandas ejecutar un 'ls' en el segundo servidor, puedes mandar ejecutar un script que haga la conexión al tercer servidor:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$ssh->cmd('conexion_al_tercer-servidor.pl argumentos');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2008-02-21 15:34 @690

Estimado Explorer , :lol:

Lo probé pero no me funciona :(

Ahora sí entiendo lo que me intentabas explicar... pero me parece que yo en algo me expliqué mal y es lo siguiente:

Todos los script están y deben correr en el server principal llamado "Server_A" que es mío y tengo administración sobre el mismo. En el "server_B" y "Server_C" no poseo administración y solo tengo un usuario para conectarme y poder acceder a los routers con ese doble salto de SSH2 que abarca a esos 2 servidores de los cuales no tengo permitido instalar nada :( :cry: :oops:

Según tu ejemplo veo que el segundo script para acceder al "Server_C" tendría que estar en el "Server_B" porque cuando ejecuté mi script me salió el error de que no encontraba el script en el "server_B".

Código: Seleccionar todo
Server_A   ------ SSH2 ----->>>  Server_B   ------ SSH2 ----->>> Server_C

(solo desde acá se accede por telnet a los routers)

Coméntame si es así como lo estoy interpretando.

Saludos y muchas gracias, :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron