CategoríaGNU/Linux

Temas Referente a Linux

Tip: Liberar memoria ‘cacheada’, dentries e inodos

Hay veces que los programas (especialmente FF) ocupan mucha memoria y la memoria cacheada aumenta hasta quedarnos sin memoria (o con menos de lo que deberíamos tener), esta memoria se puede liberar para que quede utilizable nuevamente, basta con que le tiremos un echo al fichero /proc/sys/vm/drop_caches con los valores 1, 2 o 3 para liberar el pagecache, inodos y dentries, o los tres, respectivamente.
Esta funcionalidad fue implementada en la version 2.6.16 del kernel de linux.

¿Qué es el pagecache, inodos y dentries?
Los ficheros y directorios se representan, en la memoria, como inodos, de esta misma forma, los dentries corresponden a la representación de la información del path, directorios, etc.
Pueden leer una definición de pagecache más completa en: https://en.wikipedia.org/wiki/Pagecache.

Ejemplo:

echo -n 1 > /proc/sys/vm/drop_caches; # Libera el pagecache
echo -n 2 > /proc/sys/vm/drop_caches; # Liberamos inodos y dentries
echo -n 3 > /proc/sys/vm/drop_caches; # Libera pagecache, inodos y dentries.

Pueden ejecutar el comando free -m para ver la memoria antes y despues de liberar el caché.

Xen: Migración de discos fisicos a discos virtuales (pt3)

quantum-bigfoot La migración de discos físicos a discos virtuales para poder montar una VM en Xen es, en teoría, fácil. Es simplemente hacer una copia con dd de las particiones que deseas. Hay que tener mucho cuidado, no debemos hacer una imágen del disco completo, sólo las particiones que deseamos, sin el sector 0 (mbr), ni tabla de particiones, etc. Tampoco recomiendo migrar la swap, es mejor crearla (en teoría demoraría menos).

Cuando se trata de máquinas de producción o servidores, lo que debemos hacer para no tener conflictos con las direcciones ip, hostnames, fstab o cualquier configuración especial que tenga esa máquina que de una u otra forma pueda generar conflictos, es montarla con loop y modificar las configuraciones directamente desde la imágen que creamos.
Los pasos a seguir (recomendados por mi) son:

  1. Determinar qué particiones son las que debemos migrar.
  2. Hace las imágenes correspondientes de cada partición.
  3. Configuración de la máquina virtual (crear el .cfg).
  4. Montar las particiones que podrían generar algún tipo de conflicto y modificar los archivos necesarios.
  5. Creación de la swap.
  6. Levantar la máquina.

Seguir leyendo

Autopista Vespucio Norte no protege los datos de sus “clientes”

Así es, como el título lo dice, la empresa de autopista Sociedad Concesionaria Vespucio Norte Express S.A. (AVN) no está protegiendo la información de sus clientes y es posible mediante el sitio web obtener información tal como nombres, apellido paterno y materno, direccion de facturación, osea donde vive el cliente, patente del vehículo, información sobre partes, valores a pagar, valores pagados con sus fechas correspondientes, numero de telefono particular, direccion de correo electrónico, fecha de nacimiento, deudas a la empresa.

avn

Tal como lo explica Ivan en su blog, hay que seguir una serie de pasos para lograr el objetivo. Personalmente creo que sería muy complicado escribir un bot que sea el encargado de obtener la mayor cantidad de información posible, pero no imposible. Con un poco de imaginación y destreza podemos lograrlo.

Luego de intentar comunicarnos con la gente encargada del sitio web de esta empresa mediante los correos electrónicos seleccion@vespucionorte.cl y contacto@vespucionorte.cl y sin tener ningun tipo de respuesta, decidimos hacer publico el documento.

Documento completo: https://blog.cuack.org/2009/bug-en-sitio-de-empresa-avn-cl-avenida-vespucio-norte-tags-autopistas/

Xen: Creación y configuración de una máquina virtual (pt2)

Si la instalación y configuración de Xen resultó ser fácil, lo que mostraré a continuación es mucho más sencillo. Para instalar una máquina nueva (con Debian) debemos ejecutar el siguiente comando:

xen-create-image --hostname=xen1 --size=5Gb --swap=256Mb --ide \
--ip=192.168.0.101 --netmask=255.255.255.0 --gateway=192.168.0.1 --force \
--dir=/vm --memory=128Mb --arch=i386 --kernel=/boot/vmlinuz-2.6.26-2-xen-686 \
--debootstrap --dist=lenny --mirror=https://ftp.cl.debian.org/debian/ --passwd

Si destripamos los parámetros nos damos cuenta que le estamos asignando (en orden) el hostname, tamaño de disco duro, cantidad de swap, tipo de disco, dirección ip, netmask, gateway, el directorio donde instalarla, ram, arquitectura, kernel para usar, metodo de instalación, distribución, mirror para descargar y por último, que nos pregunte la pass de root cuando termine de instalar. Estos parametros se pueden cambiar según los requerimientos.

El archivo de configuración de las máquinas virtuales es algo como:

kernel = '/boot/vmlinuz-2.6.26-2-xen-686'
ramdisk = '/boot/initrd.img-2.6.26-2-xen-686'
maxmem = '256'
memory = '64'
root = '/dev/hda2 ro'
disk = [
'file:/vm/domains/xen01/swap.img,hda1,w',
'file:/vm/domains/xen01/disk.img,hda2,w',
]
name = 'xen01'
# Red
vif = [ 'ip=192.168.20.202,mac=00:16:3E:6F:E3:3B' ]
# Comportamiento
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'

Podemos modificar arbitrariamente las opciones segun lo que nosotros necesitemos, tambien existen más opciones que le podemos agregar, como la asignacion de X cpus, decirles que cpu usen, por ejemplo si tenemos 4 núcleos, asignarle el 1 y el 4.

vcpus = 2;
cpus = '0,3'

De esta forma le estamos asignando 2 núcleos virtuales y le estamos diciendo que use los nucleos 0 y 3.

Xen: Instalación y configuración (pt1)

Esta es la primera parte de una serie de artículos que escribiré sobre cómo configurar y usar Xen, crear y administrar máquinas virtuales, clonación y migración, asignación de procesadores, memoria y configuración de la red entre otras cosas.
Aunque soy usuario de Archlinux, los servidores que administro están bajo Debian, por lo que estos tutoriales los haré en base a esa distribución.

A continuación, una serie de instrucciones de cómo instalar y dejar corriendo Xen en la máquina servidor en sencillos pasos:

Debemos instalar el kernel correspondiente y las utilidades de xen. Lo hacemos todo con el siguiente comando:

apt-get install xm-utils-common xen-linux-system-2.6.26-2-xen-686 linux-image-2.6.26-2-xen-686

Se van a instalar automáticamente las dependencias y otras utilidades que se necesiten.
Reiniciamos y booteamos con el kernel correspondiente: Xen 3.2-1-i386 / Debian GNU/Linux, kernel 2.6.26-2-xen-686

Hay que fijarse que se instalaron dos: linux-image y xen-linux-system. El primero se usará para que las máquinas guest booteen y el segundo para el domU.

Cuando ya hayamos iniciado con xen-linux-system, debemos editar el fichero /etc/xen/xend-config.sxp. Vamos a la linea donde configuramos la red, debe aparecer algo como “(network-script network-dummy)” y debemos cambiarlo por “(network-script network-bridge)“. Cuando intentemos crear nuestra primera máquina virtual, xen nos enviará un mensaje advirtiendo que debemos configurar esa linea en el fichero de configuración.

Eso es todo.

Mis scripts

Este es un resumen de los distintos scripts y utilidades que he publicado en mi blog, con una breve descripcion y link de descarga.

  • dirhack:  Script escrito en bash que nos ayudará al momento de querer hacer auditorias en nuestro servidor web con multiples usuarios. El script buscara en los directorios especificados los ficheros con información sensible que esten legibles y/o modificables por otros usuarios. Se puede ejecutar desde el explorador web o desde algun tipo de terminal o consola.
  • password salt cracker: Tambien escrito en bash, este script será útil cuando queramos romper algun password encriptado con un salt. Sirve para cualquier tipo de encriptacion como md5, sha, shadow, etc. La forma en que trabaja es netamente fuerza bruta y se basa en un diccionario de palabras. Lee palabra por palabra y la encripta con el salt especificado, si las password coinciden entonces bingo!.
  • web login por fuerza bruta/brute force web login: Con esta utilidad podremos realizar pequeñas pruebas a nuestro sistema de autentificacion y tambien verificar la calidad de nuestras contraseñas. Consiste en realizar determinadas peticiones POST a paginas que validen el login de una sesion. Debido a que esta basada en un diccionario de palabras, podría tardar horas en dar algun resultado.
  • firewall-router: Este es otro script en bash que facilita la creacion de reglas sobre iptables. Nos puede servir para que nuestra maquina sea un router y tambien firewall. Permite el routeo de paquetes, redireccionamiento de puertos, bloqueo de puertos, etc. Es bastante util y facil de usar, ademas permite el uso de ficheros externos para definir redirecciones de puertos, direcciones ip para bloquear, etc.
  • twitsh/twitbash: Lo desarrolle pensando en facilitar el uso te twitter en fluxbox. Esta herramienta no nos servira para leer los twits de otra gente pero si para enviar nuestros updates.