Pasar al contenido principal
Alberto Permuy Leal

Menú de navegación

  • Home
  • Blog
  • Proyectos
  • Arsenal
  • Conciertos
  • Acerca de
  • Contacto

Ruta de navegación

  1. Inicio
  2. Blog de Alberto Permuy Leal

VPN y Perl

Por Un veloz murci… (no verificado), 3 Junio, 2008

NO soy programador, con lo cual, asumo los errores y barbaridades de este post.
Supuesto: Se necesita chequear el acceso a una red, y en caso de no poder acceder a la misma, levantar el cliente de Cisco VPN para GNU/Linux.
Solucion: Script en perl que compruebe vía ICMP la disponibilidad el router remoto y en caso de no poder llegar a esta red,levantar el cliente de Cisco.He estado trasteando un poco con CPAN y demás, y esto es lo que he conseguido.

#!/usr/bin/perl
use Net::Ping;
$gateway = "192.168.1.254";
$p = Net::Ping->new();
if($p->ping($gateway))
{
print "El gateway $gateway responde\n";

}
else
{
print "El gateway no responde\n";
system ("matavpnc");
print "Lanzando conexion VPN\n";
system ("vpnc-connect miempresa");
system ("ping -c 5 192.168.1.254");
system ("route -n");

}
$p->close();

Pero esto no es todo.Como sabréis, el Cliente de Cisco crea subinterfaces del tipo tun0, tun1...por cada una de las conexiones VPN.Si sólo existe esa conexión el script anterior nos llega, pero qué sucede si existen más conexiones establecidas? Fácil. El cliente retorna un error indicando que no puede crear la interfaz tun0 por que ya está en uso.Para solucionarlo, he estado probando un script en bash que compruebe si está corriendo(muy fácil comprobando el pid o ps) ya el vpnc-connect, y en caso afirmativo, añada --local-port 0 o --local-port n+1 como parámetro a vpnc-connect..Con ps aux y awk encontré la pista para seguir adelante.
#!/bin/bash
for i in `ps aux|grep vpnc-connect| awk '{ print $2 }'`;
do
kill -9 $i
done
echo "Fin Script MataVPN"

Este ejemplo en concreto mata todos los procesos vpnc-connect, y no hace exactamente lo que queremos, pero el awk '{ print $2 }' creo que es la clave.
Salud y gnuismo para todos!

Quizá te interesen estos artículos...

Cuaderno de bitácora: migración abeancos.gal - Nota 1

Publicado el 16/06/2025

Como descargar música desde Spotify con docker en Linux

Publicado el 10/05/2025

Activar Wake On LAN (wol) al iniciar Debian 12

Publicado el 28/09/2024

Aviso legal 


Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.

Sígueme en Mastodon

Powered by Drupal