18/05/2006
Tethereal práctico 2/2
Debido a las exigencias de un proyecto, necesitábamos tener todas las trazas de nuestro servidor (un proxy SIP en este caso) en ficheros ordenados por días, para poder realizar consultas sencillas y tener un control permanente sobre las comunicaciones que se estaban realizando. Para ello se ha usado un script que realiza el lanzamiento y parada del comando tethereal configurado en base a nuestras necesidades.
El comando exacto que se invoca es:
tethereal -i any -b filesize:31457280 -b duration:86400 -b files:14
-f "udp port 5070 or icmp" -w "/root/capturas/captura" -F libpcap
Analicemos por partes los diferentes parámetros utilizados:
Interfaz de escucha
-i any
Declaramos la interfaz a escuchar, en nuestro caso cualquiera de las que tenemos disponibles.
Modo de funcionamiento
-b filesize:31457280
Tamaño máximo del fichero (para cubrirnos las espaldas y que no superar el espacio en disco), ponemos 30 Mb.
((1 * 1024)Kb * 1024)Mb * 30 = 31457280 bytes
-b duration:86400
Periodo máximo de captura antes de crear un fichero nuevo, ponemos 1 día.
((1 * 60)min. * 60)h * 24 = 86400
-b files:14
Número máximo de ficheros a crear, una vez llegado a este número, se comenzarán a sobrescribir los ficheros antiguos por orden de creación (por lo tanto se comportará de forma cíclica), ponemos 14 ficheros.
Por lo tanto hemos indicado que se creen ficheros diarios (con un tamaño máximo de 30 Mb) hasta 14 ficheros, por lo que en condiciones normales se creará un fichero por día (durante 2 semanas). Por otro lado, al poner tamaño máximo de los ficheros, nos aseguramos que no se supere nunca el espacio disponible en disco (30 Mb * 14 ficheros).
Filtros de captura
-f "udp port 5060 or icmp"
Filtro para la captura en formato pcap, en este caso solamente capturamos tráfico udp al puerto 5060 y tráfico icmp.
Formato de la Salida
-w "/root/capturas/captura"
Nombre base para los ficheros creados, el nombre final dependerá del número de archivo que sea y de la fecha y hora de creación. En nuestro caso por ejemplo: /root/capturas/captura_00001_20050604120117. (fichero 1, 04/06/2005, 12:01:17).
-F libpcap
Indicamos el formato de los ficheros de salida.
Por último, para la gestión de forma automatizada, creamos un script para el lanzamiento y parada del capturador de paquetes:
#!/bin/sh
#
# creado por C0r3Dump 10/05/06
#
# script creado para lanzar de forma automatica tethereal
#
# parametros:
# start | stop
#
PRG_PID="/var/run/c0r3.pid"
PRG_FILE="/root/capturas/captura"
PRG_FILTER="udp port 5060 or icmp"
if [ "$#" -lt 1 ]; then
echo "faltan parametros: start|stop"
exit 1
fi
if [ "$1" = "start" ]; then
tethereal -i any -b filesize:31457280 -b duration:86400 -b files:14 -f $PRG_FILTER -w PRG_FILE -F libpcap 2>/dev/null &
echo $! > $PRG_PID
exit 1
elif [ "$1" = "stop" ] ; then
if [ ! -z "$PRG_PID" ]; then
echo "Killing: captura trazas"
kill -9 `cat $PRG_PID`
rm $PRG_PID
fi
exit 1
fi
16:06 Anotado en La Red | Permalink | Comentarios (0) | Email esto | Tags: Linux
17/05/2006
Tethereal práctico 1/2
Tethereal es un analizador de protocolos de red que permite capturar paquetes en tiempo real o leer paquetes de un archivo previamente almacenado. El formato de captura por defecto es el definido por libcap, que es el mismo formato que utilizan otras herramientas como tcpdump. La captura de paquetes se realiza mediante las librerías pcap y por lo tanto la sintaxis de los filtros son las de esta librería.
Algunas de las opciones principales son:
-a <capture autostop condition>
Especifica el criterio para detener la captura de paquetes. Un criterio (se pueden especificar varios) se establece de la forma parámetro:valor, donde los valores que puede tomar el parámetro son:
- duration: Parará de escribir en el fichero después de que hayan transcurrido valor segundos desde el comienzo de la captura.
- filesize: Parará de escribir en el fichero después de que se alcance un tamaño de valor Kilobytes. Si esta opción se usa junto con la opción -b, se parará de escribir en el fichero cuando se llegue al tamaño máximo indicado y se pasará a escribir en el siguiente fichero.
- files: Parará de escribir en el fichero después de que se hayan escrito valor ficheros.
-b <capture ring buffer option>
Hace que tethereal funcione en modo “archivos múltiples”. En este modo se escribirán varios archivos con los datos de la captura. Cuando el primer archivo de la captura esté lleno, se pasará a escribir en el siguiente fichero y así sucesivamente.
Los nombres de los ficheros creados se basan en el nombre del fichero dado mediante la opción -W, el número del archivo y la fecha y la hora de creación, por ejemplo, fichero_00001_20050604120117
Los criterios se establecen de la misma forma que para la opción anterior, parámetro:valor:
- duration: Cambiará al siguiente fichero después de que hayan transcurrido valor segundos desde el comienzo de la captura.
- filesize: Cambiará al siguiente fichero después de que se alcance un tamaño de valor Kilobytes.
- files: Volverá a reescribir el primer fichero después de que se hayan creado valor ficheros. Con esta opción es posible crear un anillo de ficheros, de modo que cuando se hayan creado el número especificado de ficheros, tethereal, desechará los datos del primer fichero creado y volverá a empezar a escribir en él, comportándose por lo tanto de forma cíclica.
Si no se especifica el parámetro files, tethereal creará nuevos ficheros hasta que se cumpla alguno de los criterios de parada (si se han especificado) o hasta que el disco duro esté lleno.
-c <capture packet count>
Especifica el número máximo de paquetes a capturar.
-d <layer type>==<selector>,<decode-as protocol>
Establece el protocolo ha emplear (para la decodificación) para cierto tipo de paquetes. Por ejemplo, -d tcp.port==8888,http, interpretará cualquier tráfico que se capture por el puerto tcp 8888 como tráfico HTTP.
-f <capture filter>
Establece el filtro de captura.
-F <file format>
Establece el formato del fichero de salida (libcap por defecto)
-i <capture interface>
Establece el nombre del interfaz que se va a usar para realizar la captura.
-R <display filter>
Aplica el filtro de visualización indicado.
-t ad|a|r|d
Establece el formato de la marca horaria de los paquetes capturados, por defecto es relativo. Los formatos posibles son:
- ad (absolute with date): se indica la fecha y hora del momento en que se ha capturado el paquete.
- a (absolute): se indica la hora en que se ha capturado el paquete.
- r (relative): se indica el tiempo que ha transcurrido entre la captura del paquete actual y la captura del primer paquete.
- d -(delta): se indica el tiempo que ha transcurrido desde la captura del paquete anterior.
-w <outfile>
Escribe los paquetes en el fichero indicado o en la salida por defecto si no se especifica ningún fichero (la salida son los paquetes capturados, no texto)
Para una información más detallada (en ingles) del resto de los parámetros, la página oficial es tethereal.
16:50 Anotado en La Red | Permalink | Comentarios (0) | Email esto | Tags: Linux
10/05/2006
Desinstalar programas en Wine
Para desinstalar programas que tengamos instalados en el wine podemos ejecutar directamente sus propios desintaladores (en el caso de que tengan) o podemos probar a invocar:
wine uninstall
Con lo que nos aparecerá una ventana como la de windows con un listado de todos los programas instalados para que indiquemos cual de ellos queremos desinstalar.
10:00 Anotado en Trucos | Permalink | Comentarios (0) | Email esto | Tags: Linux
03/05/2006
Aumentar velocidad Eclipse
Para reducir a la mitad el tiempo de arranque de Eclipse (literal, de 12 segundos pasa a unos 6) basta con añadir estos parámetros a la invocación:
-vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M -XX:MaxNewSize=32M
-XX:NewSize=32M -Xmx160m -Xms160m
Enlaces relacionados:
11:35 Anotado en Trucos | Permalink | Comentarios (0) | Email esto | Tags: Linux
07/04/2006
Para gustos ... los Ubuntu
![]() | Ubuntu (con Gnome) |
| Kubuntu (con KDE) | |
| Edubuntu (enfocado a los más pequeños) | |
| UbuntuLite (versión con requisitos mínimos) | |
| Nubuntu (enfocado a la seguridad) |
A esto debemos añadir además Xubuntu (con entorno gráfico Xfce4), Ebuntu (con manejador de ventanas Enlightenment), y sigue creciendo, ... buenas noticias para todos los usuarios.
08:55 Anotado en La Red | Permalink | Comentarios (0) | Email esto | Tags: Linux
31/03/2006
Tu propio Proxy Web en 3 pasos ...
Squid es uno de los proxy más extendidos en el mundo Linux/Unix, se distribuye bajo los términos de la Licencia Pública General GNU (GNU/GPL). Squid actúa como proxy (o como proxy-cache) para entre otros, los protocolos HTTP, FTP, Proxy de SSL, caché de consultas DNS. Permite además otra serie de servicios como la filtración de contenido y el control de acceso (por IP, por usuario, por MAC ...).
Instalación (Paso 1)
Squid se encuentra en los repositorios ubuntu, por lo que para su instalación solo será necesario:
sudo apt-get install squid squid-common
squid y squid-common son los paquetes principales, podemos además instalar otros para aumentar la funcionalidad, yo por ejemplo instalé también squidview que me permite analizar y monitorizar de forma sencilla los ficheros de logs de Squid.
Configuración (Paso 2)
No vamos a entrar en demasiados detalles, para ello se pueden consultar diversos manuales, pero si voy a explicar los cambios mínimos para poder a utilizar Squid de forma rápida y segura.
El fichero de configuración de Squid se encuentra en /etc/squid/squid.conf, lo editamos con la herramienta de las que dispongamos:
sudo vi /etc/squid/squid.conf
Puerto de escucha:
El parámetro http_port indica el puerto en el que Squid atenderá peticiones, el valor por defecto de este puerto 3128, otros valores que suelen usarse son 8080 (aunque en este caso hay que tener cuidado si tenemos un tomcat escuchando ya en este puerto) o incluso el puerto 80 directamente si queremos que actúe de forma transparente (solo habría que ponerlo como puerta de enlace en el resto de equipos, igual que antes hay que tener cuidado no tengamos ya un Apache escuchando en este puerto).
Se pueden declarar múltiples puertos de escucha, para ello solo hay que añadir varias líneas en el fichero de configuración, una por puerto. Del mismo modo, para mayor seguridad se puede asignar una interfaz de escucha además del puerto:
http_port 192.168.1.254:3128
http_port 192.168.1.254:8080
Control de acceso:
Para el correcto funcionamiento del proxy es necesario establecer una lista de control de acceso en la que podemos definir máquinas concretas o subredes que van a poder acceder a nuestro proxy. El configuración del control de acceso se hace en dos fases, primero definimos las listas de control de acceso y luego las reglas de acceso para esas listas.
-
Listas de control acl [nombre] [protocolo] [lista]
Dentro del propio fichero de configuración podremos encontrar una extensa explicación de las diferentes posibilidades, por poner un ejemplo, en el caso de querer permitir solamente una IP en concreto sería:
acl miIP src 10.95.113.40/255.255.255.255
También podríamos querer definir una lista de IP permitidas, pudiendo almacenarlas dentro un fichero, para ello pondríamos:
acl miLista src "/etc/squid/permitidos"
y dentro del fichero permitidos introduciriamos una lista de IPs (una por linea).
-
Control de acceso http_access [deny|allow] [lista]
En esta sección introduciremos los permisos de acceso (permitido o prohibido) para las diferentes listas que hayamos definido en el paso anterior. Debemos introducir las reglas en el archivo de configuración en el espacio indicado por la etiqueta:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access allow miListaPor motivos de seguridad, por defecto (gracias a la regla: http_access deny all) se prohíbe el acceso a todos aquellos a los que no se haya dado acceso explícitamente.
Manejo (Paso 3)
Los tres comandos básicos que necesitamos:
sudo /etc/init.d/squid start (arrancar)
sudo /etc/init.d/squid stop (parar)
sudo /etc/init.d/squid restart (reinicia)
Para obtener información más detallada y profundizar en el resto de los parámetros del fichero de configuración se aconseja visitar los enlaces relacionados, aunque con estos sencillos pasos podremos tener nuestro propio proxy web funcionando !!
Enlaces relacionados:
www.squid-cache.org
www.linuxparatodos.net
12:15 Anotado en La Red | Permalink | Comentarios (0) | Email esto | Tags: Linux
22/03/2006
Escuchar la radio en amaroK
Todo empezó al conocer la existencia del programa screamer que no tiene versión para linux, eso me llevo a pensar que era extraño que no hubiera nada inventado ya, para que yo pudiera escuchar la radio en mi flamante kubuntu :D. Así que después de un rato buscando, leí que con amaroK podría hacerlo, de acuerdo ... vamos a ello !!
Lo primero después de arrancar amaroK, en la pestaña Lista de reproducción, vemos una carpeta que pone Radio Streams, así que decido añadir las cadenas que suelo escuchar:
Me pide dos cosas, un nombre para identificar la cadena y una URL de donde reproducir el streaming.
Para buscar las URL de las cadenas, después de mirar varios de los foros de screamer-radio, encontré este fichero publicado por el usuario katelme, que contiene un xml con una recopilación de muchas de las URL de cadenas españolas que necesitamos.
Después de abrir ese xml, vemos que principalmente hay dos tipos de direcciones:
mms://live.c100.edgestreams.net/reflector:34743
y
http://www.cadenaser.com/player/SER-TIC.asx
Las direcciones con el protocolo mms, se pueden reproducir directamente por amaroK sin ningún tipo de problema. En cuanto a los ficheros asx, después de descargar al disco duro y abrir el fichero con un editor (o directamente), podremos obtener la dirección mms que necesitamos.
Disfrútenlo !!
Nota:
Solo como aviso, al intentar escuchar una cadena, me apareció el siguiente error:
[GStreamer Error] Could not determine type of stream
Por lo tanto (por lo menos por ahora) se debe configurar amaroK para utilizar otro motor diferente de GStreamer (Xine por ejemplo).
16:50 Anotado en Kubuntu / Debian | Permalink | Comentarios (0) | Email esto | Tags: Linux
20/03/2006
Kubuntu, wine, DVDShrink, DVDDecrypter y otras piezas del puzzle sideral
No voy a empezar mi historia con cómo se instala o configura kubuntu (Breezy en mi caso, por ahora), sino con mis andanzas actuales que me llevaron a probar varias de las herramientas que encontré para poder tratar con DVDs.Debido a que vengo del mundo Windows y que no he encontrado nada que me satisfaga completamente me decidí a probar mis antiguas herramientas en mi nuevo kubuntu:
- DVDDecrypter: que haría yo si él ... y mi pequeña de Sony ya ni os cuento...
- DVDShrink: o la respuesta a como meter un circulo de 9 en un cuadrado de 4,5...
Pues al tema, lo primero instalar el wine, actualmente con el que se encuentra en los repositorios funciona perfectamente:
sudo apt-get install wine
o mejor aún instalando este paquete :
sudo dpkg -i wine_0.9.6-0ubuntu1_i386.deb
Una vez instalado ejecutamos winecfg en un terminal (o con Alt+F2) y seleccionamos:
- Aplicaciones: Versión a imitar por defecto Windows XP
- Audio: Seleccionamos los drivers adecuados (en mi caso ALSA)
La pestaña de Unidades requiere un tratamiento “especial”, hay que montar las unidades que queramos que wine reconozca (introducimos un cd o dvd o las montamos a mano), pulsamos el botón Autodetectar o las añadimos a mano, en la unidad que os ponga el dvd, la seleccionamos y pulsamos el botón “mostrar avanzado” y nos aseguramos que el Tipo es CD-ROM (a mi por defecto me puso Local hard disk y el DVDDecrypter no me reconocía la unidad).
DVDDecrypter
Nos descargamos DVDDecrypter y procedemos a instalarlo con wine:
wine SetupDVDDecrypter_3.5.4.0.exe
Y seguimos las instrucciones del instalador.
DVDShrink
Nos descargamos DVDShrink y procedemos a instalarlo, para ello vamos a necesitar tres librerías que debemos copiar al directorio:
~/.wine/drive_c/windows/system
Para instalar DVDShrink ejecutamos:
WINEDLLOVERRIDES="riched20=n" wine dvdshrink32setup.exe
Y seguimos las instrucciones del instalador.
Por último para habilitar el preview del vídeo, en Preferences|Preview seleccionad Built-in Software Renderer en DirectX viceo renderer.
Enlaces Aplicaciones
Para crear los enlaces a las aplicaciones desde el menú (lo cierto es que DVDShrink me los creo correctamente el solo, pero DVDDecrypter :( no) los datos que usé son:
DVDShrink
[Desktop Entry]
Name=DVD Shrink 3.2
Exec=wine "C:Archivos de programaDVD ShrinkDVD Shrink 3.2.exe"
Type=Application
Icon=/$HOME/.kde/share/applnk/Wine/Programas/DVD Shrink/DVD Shrink 3.2.xpm
DVDShrink Desinstalador
[Desktop Entry]
Name=Uninstall DVD Shrink
Exec=wine "C:Archivos de programaDVD Shrinkunins000.exe"
Type=Application
Icon=/$HOME/.kde/share/applnk/Wine/Programas/DVD Shrink/Uninstall DVD Shrink.xpm
DVDDecrypter
[Desktop Entry]
Name=DVD Decrypter
Exec=wine "C:Archivos de programaDVD DecrypterDVDDecrypter.exe"
Type=Application
Icon=cdwriter_unmount
DVDDecrypter Desinstalador
[Desktop Entry]
Name=Uninstall DVD Decrypter
Exec=wine "C:Archivos de programaDVD Decrypteruninstall.exe"
Type=Application
Icon=trashcan_full
Espero que le sea de utilidad a alguien, o a mi mismo para la próxima vez que tenga que hacerlo en unos meses :D, seguro que hay muchas y mejores formas de hacerlo, pero como dice la canción, I do it my way...
23:20 Anotado en Kubuntu / Debian | Permalink | Comentarios (0) | Email esto | Tags: Linux


