viernes, 11 de marzo de 2011
Modificar capturas pcap con tcprewrite y un poco de zenity.
#!/bin/bash
FILE=`zenity --file-selection --title="SELECCIONA LA CAPTURA ORIGINAL"`
wireshark "$FILE" & sleep 5
ORIG=`zenity --entry --title="IP ORIGINAL" --text="Introduce la IP original" --entry-text "10.0.0.0"`
NEW=`zenity --entry --title="IP NUEVA" --text="Introduce la IP nueva" --entry-text "10.10.10.100"`
MOD=$(zenity --file-selection --save --title="SELECCIONA DONDE GUARDARLA" --confirm-overwrite)
tcprewrite --pnat=$ORIG/32:$NEW/32 --infile="$FILE" --outfile="$MOD" --skipbroadcast
killall wireshark
exit
El flujo seria: Nos pide la traza original, nos la abre con el wireshark, nos pide la ip original, nos pide la ip nueva, nos pide donde guardar la nueva traza, modifica el pcap, cierra el wireshark, y chapa.
La cuestión es utilizar la opción de nat que ofrece tcprewrite poniéndole una mascara 32. De esta manera solo cambiara la ip que le digamos.
Sencillo, rápido, bonito, en 527 bytes y 9 lineas de bash. ¿Alguien da mas?
P.d: De momento solo le he encontrado un bug (seguro que tiene otros mil), al sobreescribir la captura elimina paquetes ¿?
domingo, 13 de febrero de 2011
Virtualbox + Phpvirtualbox en opensuse 11.2
Empezamos con una instalación limpia y por defecto, actualizaremos e instalaremos los repositorios Packman (must have):
# /etc/zypp/repos.d/
# wget -c http://mirror.geht-schon.de/packman.links2linux.de/suse/11.2/packman.repo
# zypper up
Instalaremos las dependencias que necesitamos:
# zypper in kernel-source kernel-devel kernel-desktop-devel kernel-default-devel apache2 libapache2-mod-php5
Para instalar el Virtualbox tenemos dos opciones, bajar el rpm o instalar el repositorio.
Opcion 1, bajar el paqute:
Bajaremos el Virtualbox de su pagina y lo instalaremos:
# cd /tmp
# wget -c http://download.virtualbox.org/virtualbox/4.0.2/VirtualBox-4.0-4.0.2_69518_openSUSE112-1.i586.rpm
# zypper in VirtualBox-4.0-4.0.2_69518_openSUSE112-1.i586.rpm
Opcion 2, instalar el repositorio e instalar el paquete:
# cd /etc/zypp/repos.d/ # wget http://download.virtualbox.org/virtualbox/rpm/opensuse/11.2/virtualbox.repo # zypper up # zypper in virtualbox
Una vez instalado, añadiremos nuestro usuario normal al grupo vboxusers:
# usermod -G vboxusers huskerdu
# id huskerdu
En este ejemplo hemos añadido al usuario "huskerdu" al grupo. El comando id lo utilizaremos para comprobar que lo hemos hecho bien...
Despues bajamos el extension pack y lo instalamos:
# cd /tmp
# wget -c http://download.virtualbox.org/virtualbox/4.0.2/Oracle_VM_VirtualBox_Extension_Pack-4.0.2-69518.vbox-extpack
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.2-69518.vbox-extpack
Ahora bajaremos el phpvirtualbox y lo pondremos en su carpeta correspondiente:
# cd /srv/www/htdocs
# rm -r *
# wget -c http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.0-3.zip
# unzip phpvirtualbox-4.0-3.zip
# cd phpvirtualbox-4.0-3
# mv * ..
# cd ..
# rmdir phpvirtualbox-4.0-3
# rm phpvirtualbox-4.0-3.zip
Reiniciamos el apache:
# service apache2 restart
A partir de este punto ya tendremos phpvirtualbox corriendo si vamos a http://localhost, pero solo veremos un bonito cartel de error:

Vamos a configurarlo un poco... Hacemos copia y editamos el archivo de configuración:
# cp /srv/www/htdocs/config.php-example /srv/www/htdocs/config.php
# nano /srv/www/htdocs/config.php
Cambiamos el usuario y password en el fichero mas o menos así:
/* Username / Password for system user that runs VirtualBox */
var $username = 'huskerdu';
var $password = 'felipe';
var $location = 'http://127.0.0.1:18083/';
VBoxManage setproperty websrvauthlibrary default
VBoxManage setproperty websrvauthlibrary null
To be continued...


miércoles, 9 de febrero de 2011
Creacion de certificados con openssl.
Creamos un certificado de CA o entidad certificadora:
#
openssl req -x509 -newkey rsa:2048 -keyout cakey.pem -days 3650 -out cacert.pem
Creamos la key para los certificados:
#
openssl genrsa -des3 -out serv-priv.pem -passout pass:[password] 2048
Generamos una petición con los datos del propietario del certificado:
# openssl req -new -subj "/DC=dominio.com/OU=com/CN=dominio" -key
serv-priv.pem -passin pass:[password] -out petic-certificado-serv.pem
Editamos un fichero que se llame config.txt (por ejemplo) con lo siguiente:
basicConstraints = critical,CA:FALSE
extendedKeyUsage = serverAuth
Y creamos el certificado:
# openssl x509 -CA cacert.pem -CAkey cakey.pem -req -in petic-certificado-serv.pem -days 15 -extfile config.txt -sha1 -CAcreateserial -out servidor-cert.pem
domingo, 6 de febrero de 2011
Host inaccesible desde Vcenter.
# service mgmt-vmware restart
Si se nos queda colgado en el reinicio, entramos por otra consola y buscamos el proceso hostd:
# ps -ef | grep
hostd
Buscamos el proceso vmware-watchdog y lo matamos directamente:
# kill -9 [numero
de proceso]
Y nos vamos a tomar una caña fresquita...
Edito:
Dejo la caña en la barra y vuelvo al tajo, esto no soluciono mi problema...
Despues de leer varios articulos en la kb de vmware, el problema esta en los keepalive (mas o menos) que el esx lanza al vcenter, y que en mi caso, estos se encuentran en dos redes distintas... El nat en el firewall con una ip virtual no funciono, ya que al volver a reconectar se "pispa" de que le has cambiado el valor y lo machaca. ¿La solucion? aumentar el timeout de los keepalive.
Esto se hace editando (en el vcenter) el archivo:
C:/Documents and Settings/All Users/Application Data/VMware/VMware VirtualCenter/vpxd.cfg
E insertando, en la seccion vpxd esto:
600
El valor a 600 lo he puesto a ojo, ya veremos como se comporta...
Despues reiniciamos el servicio VirtualCenter Service y arreando.
jueves, 3 de febrero de 2011
Shit happens, o como quitar las tarjetas de red residuales.
Cuando virtualizas una maquina o la mueves de un sistema de virtualizacion a otro, se van creando nuevas tarjetas de red dejando las anteriores como rémoras en el sistema (he dicho rémoras?), para eliminarlas:
1. Abrir una línea de comandos ejecutando cmd.exe.
2. Escribir: set devmgr_show_nonpresent_devices=1 y presionar ENTRAR.
3. Abrir el administrador de dispositivos escribiendo en la línea de comandos: DEVMGMT.MSC y pulsar ENTRAR.
4. En el Administrador de dispositivos pulsar en el menú Ver y marcar Mostrar dispositivos ocultos.
5. Expandir el ítem Adaptadores de red.
6. Seleccionar los adaptadores que aparecen en color atenuado, clic con el botón secundario del ratón y Desinstalar.
Siempre y cuando te molesten...
miércoles, 26 de enero de 2011
Encriptar archivos y/o carpetas bajo linux y complicarlo poco a poco.
Instalamos encfs:
sudo apt-get install encfs
Creamos en el home dos carpetas, por ejemplo enc y noenc. El contenido encriptado se guardara en enc y se montara desencriptado en noenc:
mkdir ~/enc ~/noenc
Encriptamos el contenido de la carpeta enc y lo montamos en noenc:
encfs ~/enc ~/noenc
Nos preguntara que nivel de seguridad queremos, si le damos al enter pondra el "por defecto" y nos preguntara el password para la carpeta encriptada.
A partir de este punto ya tenemos la carpeta enc encriptada y su contenido montado en noenc. Si queremos desmontar la carpeta y dejar solo lo encriptado lo hacemos con:
fusermount -u ~/noenc
Y si queremos volver a montarla usariamos otra vez:
encfs ~/enc ~/noenc
¿El problema? Nos pide el pass. Si queremos que se monte tras el login del usuario, por ejemplo, metiendo una linea en el .bashrc tenemos que pasarle el pass a enfs. Hasta donde yo se no se puede pasar el pass como parametro, asi que lei a un tipo habilidoso que creo un programa en C que lo hacia, ya que si existe el parametro --extpass. El codigo del programa llamado, por ejemplo, pass.cc seria:
#includeCambiando "my password" por el password que pusimos antes, y ojo, dejando las comillas.
int main()
{
//Put your password retreival functions here
std::cout << "my password" <<>
return 0;
//PD: All cout will be interpreted as password.
}
Una vez creado el codigo lo compilamos con:
g++ pass.cc -o pass
Lo cual nos dara un ejecutable llamado pass que le podremos pasar como parametro al encfs con la sentencia:
encfs ~/enc ~/noenc --extpass=~/pass
Pondria las fuentes, pero ocuparian mas que el post, y tampoco recuerdo todo lo que he leido.
domingo, 23 de enero de 2011
Login, sudo y gksudo con autenticador biometrico en Lenovo (Ouyea!)
Añadimos los repositorios y actualizamos:
sudo add-apt-repository ppa:fingerprint/fingerprint-gui
sudo apt-get update
Instalamos los paquetes:
sudo apt-get install fingerprint-gui policykit-1-fingerprint-gui libbsapi
Una vez instalado, hacemos un logout y nos escaneamos las huellas en:
Sistema > Preferencias > Fingerprint GUI
Y a disfrutar de la vida que son dos dias.
Fuente: https://launchpad.net/~fingerprint/+archive/fingerprint-gui