Instalar Cisco PacktTracer en Debian/Ubuntu 64bits
por Rubén Urrieta
luego de descargar el archivo PacketTracerv5.XXX_i386_deb.bin de la pagina de cisco o de algún blog, como usuario root, procedemos a darle permisos de ejecución al archivo binario
chmod 764 PacketTracerv5.XXX_i386_deb.bin
luego podemos ejecutarlo para iniciar su instalación
/ruta_del_archivo/PacketTracerv5.XXX_i386_deb.bin
aparecerá un mensaje de bienvenida, la licencia del programa y luego intentara instalar la aplicación, pero, saldrá mostrando un error de arquitectura, no se preocupen por eso, una vez finalizada la ejecución copiamos el archivo PacketTracer-XXXXXX-u.i386.deb que se descomprimió en la carpeta temporal dentro de una carpeta que se llama selfextract.XXXXXX por ejemplo:
root@rb34:/home/ruben# cp/tmp/selfextract.A3FHdV/PacketTracer-5.3_3-u.i386.deb /home/ruben/
tambien pueden descargar este archivo desde aqui
luego de esto podemos forzar su instalación con el siguiente comando
dpkg -i —force-architecture PacketTracer-5.3_3-u.i386.deb
luego de ejecutar este comando ya tendremos la aplicación instalada, pero, si intentamos ejecutarla desde su lanzador intentara ejecutarse y se cerrara sin dar ningún mensaje, si la ejecutamos desde la consola como usuario normal con el siguiente comando:
/usr/local/PacketTracer5/bin/PacketTracer5
aparecerá un mensaje que nos dice que hace falta una librería, esta librería podemos copiarla desde un computador que tenga instalado una distribución basada en debian de 32bits que tenga instalado PacketTracer desde la carpeta /lib/ , pero también podemos descargarla desde aquí luego que tengamos la librería que necesitamos la copiamos dentro de nuestro sistema de 64bits en la carpeta /lib32/ por ejemplo
cp Dropbox/libpkt/libQtWebKit.so.4 /lib32/
si ejecutamos de nuevo la aplicación aparecerá otro mensaje pidiendo otra librería por lo cual deberemos repetir el paso anterior para esta otro librería, si queremos conocer todas las librerías que hacen falta podemos ejecutar el comando
ldd /usr/local/PacketTracer5/bin/PacketTracer5
y nos dara una salida como esta
root@rb34:/home/ruben# ldd /usr/local/PacketTracer5/bin/PacketTracer5
linux-gate.so.1 => (0xf7792000)
libQtWebKit.so.4 => not found
libQtScript.so.4 => not found
libQt3Support.so.4 => not found
libQtSql.so.4 => not found
libQtXml.so.4 => not found
libQtGui.so.4 => not found
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7760000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7643000)
libQtNetwork.so.4 => not found
libQtCore.so.4 => not found
librt.so.1 => /lib32/librt.so.1 (0xf7639000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7620000)
libdl.so.2 => /lib32/libdl.so.2 (0xf761c000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7530000)
libm.so.6 => /lib32/libm.so.6 (0xf750a000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf74ed000)
libc.so.6 => /lib32/libc.so.6 (0xf738f000)
libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7376000)
/lib/ld-linux.so.2 (0xf7793000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7373000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf736e000)
todas aquellas que aparezcan con resultado not found son las que nos hacen falta y podemos copiarlas todas juntas por ejemplo
root@rb34:/home/ruben/Dropbox/libpkt# cp libQtWebKit.so.4 libQtScript.so.4 libQt3Support.so.4 libQtSql.so.4 libQtXml.so.4 libQtGui.so.4 libQtNetwork.so.4 libQtCore.so.4 libglib-2.0.so.0 libgthread-2.0.so.0 libpcre.so.3 /lib32/
si ejecutamos de nuevo el comando ldd nos deberían aparecer todas las librerías cumplidas, si hace falta alguna que no aparecía antes la agregamos también, luego de que copiemos todas las librerías podemos ejecutar nuestra aplicación ya sea desde su lanzador o desde la linea de comandos…
Balanceo de Carga entre Gateways con un Router Linux
por Rubén Urrieta
si tienen varias conexiones a Internet y quieres usarlas todas al mismo tiempo este yuca es para ti, lo que debes tener en cuenta es que no vas a poder usarlas todas en la misma descarga, debido a que cada conexión tiene un rango de direcciones ip diferente y ningún servidor soporta una conexión desde múltiples IP’s, lo que si se puede, es descargar desde varios servidores, o varios archivos del mismo servidor.
lo primero que debemos tener es un router con Linux funcionando y eliminar (o comentar) del archivo /etc/network/interfaces las lineas gateway.
luego definir en /etc/iproute2/rt_tables una tabla de rutas por cada conexión a internet que tengas
echo 200 tabla1 » /etc/iproute2/rt_tables
echo 201 tabla2 » /etc/iproute2/rt_tables
donde 200 y 201 son identificadores internos que no deben repetirse, los desarrolladores del kernel recomiendan que este sea un numero mayor o igual a 200; y tabla1 y tabla2 es el nombre que usaremos para referirnos a esta.
luego nos valemos de un script (que esta bien comentado) para realizar el balanceo de carga.
#!/bin/bash
c=0 #dos variables que usaremos mas adelante
max=2
if1=eth0 #interface donde tenemos conectada la primera la conexión
ip1=200.20.110.194 # ip que esta configurada en esta interface
gw1=200.20.110.193 #gateway de esta conexión
net1=200.20.110.192/29 #red de esta conexión
#estos son los mismos datos pero de la otra conexión
if2=eth2
ip2=190.202.85.201
gw2=190.202.85.202
net2=190.202.85.200/29
case "$1" in
#un case para recibir un parámetro
start)
#adicionar la red publica del e1 a la tarjeta de red conectada al e1 en la tabla de enrutado con nombre tabla1
ip route add $net1 dev $if1 src $ip1 table tabla1
#gateway para la tabla tabla1
ip route add default via $gw1 table tabla1
ip route add $net1 dev $if1 src $ip1 table tabla2
#lo mismo de arriba pero para la tabla2
ip route add $net2 dev $if2 src $ip2 table tabla1
ip route add $net2 dev $if2 src $ip2 table tabla2
ip rule add from $ip1 table table1
ip rule add from $ip2 table table2
ip route add default scope global nexthop via $gw1 dev $if1 weight 1 nexthop via $gw2 dev $if2 weight 2
ip route add 172.16.0.0/24 via 172.18.197.2 #aqui agragamos una red a la que accedemos utilizando otro router (si no tenemos otra red podemos quitar esta linea)
ip route |grep proto >> ip_route_main.autotmp #agregamos en un archivo todas las rutas directamente conectadas a nuestro router
while [ "$c" -lt "$max" ]; #hacemos un ciclo cuyas iteraciones están definidas por las variables que definimos al principio del script
do
case "$c" in
0)
table=tabla1
ip route add default via $gw1 table $table
;;
1)
table=tabla2
ip route add default via $gw2 table $table
;;
*)
echo "aqui hay un error"
;;
esac
c=$(( c + 1 )) # amuntamos el valor de la variable c
ip route add 172.16.0.0/24 via 172.18.197.2 table $table # agregamos la red externa a las nuevas tablas (si no tenemos otra red podemos quitar esta linea)
echo "configurando la tabla de enrrutado para: $table" # un mensaje para saber donde esta
while read red dev eth proto kernel scope link src ip #un ciclo para agregar las rutas del main en las nuevas tablas
do
ip route add $red dev $eth src $ip table $table #agrega la red la tabla que toque segun el primer ciclo...
done < ip_route_main.autotmp #aqui definimos el archivo que usara para agregar las redes
done #fin del primer ciclo
ip rule add from 172.16.1.229 table tabla1 #aqui podemos definir si queremos que una dirección ip de la red local use una tabla de rutas especifica
ip rule add from 172.16.1.230 table tabla2
;; #fin para cuando se ingresa con el parametro start
#aqui ya el balanceador esta totalmente activo, si queremos
#detenerlo colocamos el parametro stop y se ejecutaran las
#siguientes lineas...
stop)
while [ "$c" -lt "$max" ];
do
case "$c" in
0)
table=tabla1
;;
1)
table=tabla2
;;
*)
echo "aqui hay un error"
;;
esac
c=$(( $c + 1 ))
/sbin/ip route |grep -v 169.254.0.0|grep \/ >> ip_route.autotmp #tomamos las rutas de la tabla main
while read red dev nic proto kernel escope link src ip metric metricnun
do
ip route del $red table $table #borramos las redes de las nuevas tablas
done < ip_route.autotmp
ip route del default table $table #borramos la ruta por defecto de la tabla
done
done
/sbin/ip rule |grep lookup |grep -v all >> rule.autotmp
while read nun from parametro look table2
do
ip rule del from $parametro table $table2 #borramos las reglas para las direcciones especificas
done < rule.autotmp
echo " el balanceador a sido detenido "
;;
restart)
#si hacemos algun cambio en la parte de start y queremos que
#estos cambios tengan efecto ejecutamos el script con el parametro
#restart para que se detenga y se inicie de nuevo
$0 stop
$0 start
echo "el balanceador se a reiniciado"
;;
*)
echo "parametros permitidos { start | stop | restart | status [ tabla1 | tabla2 | * ] }"
;;
esac #fin para cuando se recibe un parametro
rm -rf *.autotmp #borramos los archivos creados dentro del script
aqui les dejo unos enlaces que les pueden ser de utilidad…
primer enlace
segundo enlace
libro de enrutamiento avanzado en GNU/Linux
Instalación y Configuración tacacs+ en debian squeeze
por Rubén Urrieta
Instalar tacacs+ y sus dependencias
aptitude install tacacs+
este comando descargara e instalara tacacs+ y su única dependencia conocida libtacacs+1
Edite el archivo /etc/tacacs+/tac_plus.conf
nano /etc/tacacs+/tac_plus.conf
opciones:
accounting file = /var/log/tac_plus.acct archivo donde se guardara la actividad de los usuarios
key = bdsltd contraseña que se debe configurar en los equipos que tendrán acceso al servidor tacacs+
default authentication = file /etc/shadow archivo donde por defecto donde se guardaran las contraseñas
a partir de este punto se deben configurar diferentes parámetros en este orden:
acl: Lista de control de acceso, sigue la misma sintaxis de las acl de cisco.
host: Configuración especifica para un equipo o segmento de red.
user: Configuración de usuarios (los parámetros aquí configurados sobreescriben a la configuración de los grupos padres).
group: Configuración global para los usuarios miembros de este grupo.
Configuración de ACL
acl = acl_moron {
# permirir acceso solo a un rango de direcciones ip
permit = 10.10.10.0 /24
deny = 0
}
las configuraciones de host pueden usarse para usar un contraseña de acceso (key), contraseña enable o un mensaje de entrada diferente para un host especifico o rango de direcciones ip.
Host = 192.168.2.0/24 {
key = test
type = cisco
enable = <des|cleartext> enablepass
prompt = " \n\nUsername: ESTE EQUIPO SOLO PUEDE SER USADO POR PERSONAL AUTORIZADO"
}
Las configuraciones de usuarios deben tener declarado al menos la contraseña de acceso (el formato de las contraseñas sera descrito mas adelante en este manual) y la menbrecía de un grupo o los comandos que pueden ser usados por este usuario (sera descrito mas adelante en este manual).
user = ruben {
name = "Test User"
member = redes
login = cleartext 123
enable = cleartext 123
acl = acl_moron
}
las configuraciones de grupos deben tener declarados los permisos de usuarios
group = nombre_del_grupo {
default service = deny
acl = acl_moron
cmd = show {
permit .ip
permit .cdp
deny .*
}
cmd = copy {
permit .*
}
cmd = ping {
permit .*
}
cmd = traceroute {
permit .*
}
cmd = configure {
permit .*
}
cmd = interface {
permit .*
}
}
CONFIGURACIÓN DE CONTRASEÑAS
las contraseñas pueden ser configuradas de diferentes formas por ejemplo:
des seguido de la contraseña cifrada por el comando tac_pwd ejemplo de uso del comando tac_pwd:
root@tacacs-server:~# tac_pwd Password to be encrypted: 123456 nIeNBJ4GDjzEg
Ejemplo de uso del parámetro des
login = des nIeNBJ4GDjzEg
enable = des nIeNBJ4GDjzEg
- file seguido de la ruta absoluta de un archivo que contenga los usuarios y contraseña: Este archivo puede ser creado o modificado con el comando > htpasswd -n usuario » /etc/tacacs+/user_tacplus.txt
también puede usarse el archivo /etc/shadow que contiene las contraseñas de los usuarios del sistema
ejemplo de uso del parámetro file:
login = file /etc/tacacs+/user_tacplus.txt
enable = file /etc/shadow
- cleartext (texto limpio) seguido de la contraseña tal cual la escribira el usuario al momento de usarla ejemplo:
login = cleartext 123456 enable = cleartext 123456
**NOTA: NO RECOMENDADO**
los paquetes utilizados para el funcionamiento de este programa son:
tacacs+ libtacacs+1 apache2
los archivos utilizados por estos programas son:
/etc/tacacs+/tac_plus.conf configuraciones de equipos, usuarios,grupos de usuarios y acl
/var/log/tac_plus.log registro de acciones del programa
/var/log/tac_plus.acct registro de acceso de los usuarios y comandos ejecutados
/var/log/tac_plus.acct.*.gz tac_plus.acct semanas enteriores (usar ls -lh para ver fecha de la ultima modificación)
/etc/logrotate.d/tacacs+ archivo de configuración rotación de logs
Referencias:

