2014-08-06

Actualizar usando Proxy

A veces tenemos el servidor detrás de un PROXY y al intentar actualizarlo o descargar algún paquete no es posible realizar la acción porque el sistema nos dice que falta la autenticar en el proxy. Bueno gracias a mi compañero Luis Yesid Hernandez (@luisco100) encontré como se puede solucionar esto y como siempre es un simple comando.

La estructura del comando seria:

$ http_proxy=http://user:password@ip_proxy:puerto_proxy comando

Entonces si lo que deseas es actualizar el sistema, el comando quedaría

root@localhost:~# http_proxy=http://usuario:Tu_P4ssw0rd@10.1.1.2:3821 apt-get upgrade

Listo ya con esto se pudo actualizar



2014-07-27

Haciendo Cronogramas de Proyectos con OpenProj

Debido a mi trabajo debo presentar la planeación de los proyectos y establecer un diagrama de Grannt correctamente elaborado, para esto no existe mejor herramienta que MS Project, pero como no uso windows y como siempre existe una excelente opción en Open Source, esta vez no es la excepción.

Existe un proyecto denominado OpenProj, el cual esta en http://sourceforge.net/projects/openproj/ y de donde deben descargar el instalador de Debian que se llama openproj_1.4-2.deb, Una vez esta en la maquina se debe instalar con apt-get así

root@localhost:~# apt-get install-local openproj_1.4-2.deb

Ya con esto tienen instalado el paquete pero al intentar acceder al programa, este no funciona por un error en Java, bueno como siempre existe una solución y es modificar los archivos de ejecución del programa, los cuales están en la rutas $HOME/.openproj/run.conf y en la ruta /usr/bin/openproj

$HOME/.openproj/run.conf debe modificarse la variable JAVA_OPTS así

JAVA_OPTS="-Xms128m -Xmx768m"

por 

JAVA_OPTS="-Djava.vendor="Sun Mycrosystems Inc." -Xms128m -Xmx768m"

En el archivo /usr/bin/openproj  deben buscar el segmento llamado run_openproj y modificarlo así

run_openproj() {
if [ "$LOG_LEVEL" ] && [ "x$LOG_LEVEL" = "xDEBUG" ]; then
"$JAVA_EXE" $JAVA_OPTS -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > "$LOG_FILE"
else
"$JAVA_EXE" $JAVA_OPTS -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > /dev/null 2>&1
fi
}

Por

run_openproj() {
if [ "$LOG_LEVEL" ] && [ "x$LOG_LEVEL" = "xDEBUG" ]; then
"$JAVA_EXE" $JAVA_OPTS -Djava.vendor="Sun Microsystems Inc." -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > "$LOG_FILE"
else
"$JAVA_EXE" $JAVA_OPTS -Djava.vendor="Sun Microsystems Inc." -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > /dev/null 2>&1
fi
}

Una vez realicen esto pueden ejecutar el programa y tras aceptar la licencia y crear un proyecto deben ver algo como esto



Listo para usar y gestionar los proyectos, espero que les sirva

2014-07-21

VirtualBox Administrado por Consola

Para los que vean mi blog usualmente saben que no me gusta mucho el entorno gráfico y que todo lo administro por consola, entonces tuve que empezar a aprender a gestionar las maquinas virtuales a través de la consola. Inicialmente necesitaba cambiar el tipo y la asignación de las tarjetas de red de la maquina virtual.

Bueno empezare diciendo que la maquina base posee dos tarjetas de red, una conectada a Internet y la otra a la LAN de la empresa; la maquina virtual solo posee una tarjeta de red la cual inicialmente esta configurada en modo NAT, lo cual lo confirmamos con el siguiente comando:

usuario@localhost:~$ VBoxManage showvminfo Procesos
Name:            Procesos
Guest OS:        Red Hat (64 bit)
UUID:            3cac1663-9b0e-4d55-b062-0c80ca3277c5
Config file:     /home/usuario/VirtualBox VMs/Procesos/Procesos.vbox
Snapshot folder: /home/usuario/VirtualBox VMs/Procesos/Snapshots
Log folder:      /home/usuario/VirtualBox VMs/Procesos/Logs
Hardware UUID:   3cac1663-9b0e-4d55-b062-0c80ca3277c5
Memory size:     2048MB
Page Fusion:     off
VRAM size:       12MB
CPU exec cap:    100%
HPET:            off
Chipset:         piix3
Firmware:        BIOS
Number of CPUs:  2
Synthetic Cpu:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): HardDisk
Boot Device (2): DVD
Boot Device (3): Not Assigned
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          on
PAE:             on
Time offset:     0 ms
RTC:             UTC
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
State:           powered off (since 2014-07-21T17:09:28.988000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller Name (0):            IDE
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Bootable (0):        on
Storage Controller Name (1):            SATA
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      1
Storage Controller Bootable (1):        on
IDE (1, 0): /dev/sr0 (UUID: 00445644-0000-0000-2f64-65762f737230)
SATA (0, 0): /home/usuario/VirtualBox VMs/Procesos/Snapshots/{07adc385-9427-49c6-bb78-24607674fa53}.vdi (UUID: 07adc385-9427-49c6-bb78-24607674fa53)
NIC 1:           MAC: 0800275A8815, Attachment: NAT Interface , Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
Audio:           disabled
Clipboard Mode:  disabled
VRDE:            disabled
USB:             disabled
USB Device Filters:

Available remote USB devices:

Currently Attached USB Devices:

Shared folders:

VRDE Connection:    not active
Clients so far:     0
Guest:
Configured memory balloon size:      0 MB
OS type:                             RdHat_64
Additions run level:                 0
Guest Facilities:
No active facilities.
Snapshots:
   

Entonces para cambiar la configuración de la tarjeta usamos el comando pero con la opción modifyvm, la cual permite hacer modificaciones de a la configuración de la maquina, pero esta no puede estar ejecutándose, por lo que deben apagarla antes de ejecutar el siguiente comando:

usuario@localhost:~$ VBoxManage modifyvm Procesos --nic1 bridged --bridgeadapter1 eth1

Una vez se ejecuta este comando se usa el primero que vimos y se puede apreciar como se modifico la configuración de la maquina

NIC 1:           MAC:0800275A8815, Attachment: Bridged Interface 'eth1', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny

Se arranca la maquina, lo cual lo puedes hacer con el siguiente comando si tienes habilitado el entorno gráfico

usuario@localhost:~$  VBoxManage startvm Procesos

Para confirmar que se esta ejecutando puedes usar el siguiente comando

usuario@localhost:~$ VBoxManage list runningvms
"Asterisk" {e9e12f34-69ad-0000-00e2-0edddf34f87c}
"Kali-Linux" {f8e44db3-f31d-0000-a2de-c0c27a48d377}
"Procesos" {570e6bef-0000-40f3-9d4b-e0bda514fbfe}

Ya confirmado que la maquina subió bien, necesito sacarle un snapshot que es un respaldo para recuperar fácilmente el estado de una maquina en caso de cualquier daño. Lo primero es apagar la maquina y cuando este apagada se lanza el siguiente comando

usuario@localhost:~$ VBoxManage snapshot Procesos take BK140721-Procesos
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%


Vuelves a subir la maquina y listo. Espero que estos pocos ejemplo sirvan de guía para que administren las maquinas virtuales a través de la consola.

2014-07-17

Accediendo a una Maquina Virtual con NAT

En muchas ocasiones montamos las maquinas virtuales pero no tenemos direcciones IP para poder colocarlas en modo Bridge y así a cada maquina asignarle una dirección IP, es por esto que toca configurar el NAT, pero cuando necesitamos acceder a una a de esas maquinas desde una red externa como hacemos.

Bueno eso es lo que pretendo explicar en esta entrada, entonces se tiene una maquina virtual configurada en modo NAT en la tarjeta de red como se ve a continuación


Entonces lo que hacemos es dar click en "Reenvio de puertos" que es donde indicaremos a que puerto nos conectaremos y que puerto nos realizara el NAT a la maquina virtual, en la siguiente imagen se puede apreciar como es la configuración


Lo que se denomina puerto anfitrión, es el puerto que se va a habilitar en el servidor base. Y lo que se denomina puerto invitado, es el puerto al que se va a direccionar el tráfico en la maquina virtual.

Entonces con esta configuración desde la red externa hacer un SSH al puerto 2222 en la IP de la maquina anfitrión y esta conexión sera dirigida al puerto 22 de la maquina virtual.

2014-07-10

Arrancando las Maquinas Virtuales de VirtualBox Automaticamente

Debido a mi trabajo era necesario instalar un servidor de maquinas virtuales y por facilidad instale con VirtualBox sobre Debian7, pero se me presento el problema que cuando se reiniciaba el servidor no subían las maquinas automáticamente.

Como siempre toco investigar y encontré que existe un administrador por consola que te permite gestionar completamente el sistema de VirtualBox, como siempre la consola salva el día. Bueno el trabajo lo base en estas dos URLs http://cjenkins.wordpress.com/2010/08/21/iniciar-maquinas-virtuales-de-virtualbox-al-inicio/ https://www.virtualbox.org/manual/ch08.html#vboxmanage-startvm pero como siempre con mis modificaciones.

Bueno lo primero es aprender como arrancar las maquinas virtuales desde la consola y con que parámetros los podemos arrancar así no este activo el entorno gráfico. Eso se hace con el siguiente comando siendo root:

root@localhost:~# su - user -c "VBoxManage --nologo startvm "Maquina 1" --type headless"

Toca enviarlo así para que no arranquen como root sino con los parámetros del usuario y así proteger la seguridad del servidor. Los parámetros del comando VBoxManage son para lo siguiente:

- nologo: Suprime la información del logo de instalación, se debe usar para los scripts.
- type headless: Este indica el tipo de arranque de la maquina, con el headless aseguramos que no suba el entorno gráfico y así podemos hacer que la maquina suba sin problemas en el arranque.

Entonces aprovechando el script de arranque que según la versión de virtualbox que este instalada esta en el script /etc/init.d/virtualbox o /etc/init.d/vboxdrv y creo un nuevo segmento para arrancar las maquinas el cual llamo start_vms para seguir con el orden del script original, se ve en la siguiente imagen:


Como ven uso las variables que se crean en /etc/default/virtualbox, para poder indicarle con que usuario realizar la acción de ejecutarlo. Ahora para que suba cuando se suba el servicio se debe colocar la ejecución en otro segmento del mismo archivo y queda así



Así cuando el sistema arranque suben las maquinas virtuales sin importar si ha subido el entorno grafico. espero les sirva

2014-05-31

Instalando Viber

Por una necesidad instale Viber y revisando los parámetros de seguridad en el sitio web me encontré que se podía instalar en Linux, entonces entre al sitio oficial http://www.viber.com/products/linux/ con la grata sorpresa que me encontré el instalador de Debian directamente

Revise los requerimientos y básicamente no pide nada, funciona en cualquier versión de Linux que este basada en Debian. Entonces lo descargue directamente del sitio oficial,  solo queda instalarlo, como soy usuario asiduo de la consola lo instale por ese medio de la siguiente forma.



Cuando termina te sale la siguiente ventana


Una vez que le das el Si, te envía un código a la App móvil, la colocas y ya listo la tienes instalada, mira


Espero que te sirva

2014-05-13

ADB desde Debian para Gestionar Android

Tengo una Tablet marca AsRock (poco común) y que la conectarla a Debian el sistema de ADB no la reconoció, como siempre toco buscar mucho en Internet leer de muchos sitios y entender que sucedia y como se hacia para que el sistema lo reconociera.

Entonces después de mucho leer encontré que el problema se presenta por identificador USB, porque el sistema no sabe que hacer con ese ID. Por lo tanto lo primero es identificar cual es el ID de nuestra Tablet o dispositivo Android, para esto tenemos el comando lsusb que nos muestra algo así:


Como se dan cuenta se ve al final una linea donde no existe identificador, que dice

Bus 001 Device 002: ID 2207:0010 

Ya con esto tenemos el ID del dispositivo, ahora para que el software de ADB lo pueda ver debemos crear una regla en el sistema para que los vea como un dispositivo Andriod, eso se logra en el archivo /etc/udev/rules.d/51-android-rules


Como pueden apreciar se coloca el identificador en la linea donde piden el idvendor, ya con eso el sistema de ADB reconoce el dispositivo que le conectas, puedes crear varias lineas con cada uno de los ID de los dispositivos que usas.

2014-04-01

Sacando el Audio de los Videos de Youtube

Vi en twitter que se podía extraer el audio de los videos de youtube usando la consola de comandos de Linux, por supuesto me puse a investigar y resulta que es un comando relativamente antiguo y la mayoría de documentación esta usando Ubuntu, como este post que use de guía http://gilberto286.wordpress.com/2013/06/05/como-extraer-el-audio-de-un-video-de-youtube-utilizando-youtube-dl-en-ubuntu/

Bueno como siempre coloco como yo lo hice, porque debido a que no uso Ubuntu sino Debian 7 cambia solo en un paso, el primero que es donde toca colocar el repositorio que vamos a usar para descargar el paquete, entonces se debe adicionar (si no se tiene) la siguiente linea al archivo /etc/apt/source.list

deb http://ftp.us.debian.org/debian/ sid main

y dan el comando 

root@localhost:~# apt-get update

Listo ya de acá para adelante si es igual en Ubuntu o debian o cualquier otra distribución que se base en alguno de estos dos. Se debe dar el siguiente comando para instalar.

root@localhost:~# apt-get install youtube-dl

Este va a descargar bastantes paquetes pero es normal.

Ahora para usarlo es muy simple, yo personalmente buscaba solo extraer el audio y guardarlo en mp3, por eso solo voy a colocar este comando pero existe muchas formas de usarlo y muchos manuales de como hacerlo. Entonces el comando para extraer el audio sería el siguiente


root@localhost:~# youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=9vfJ29RJU2w

Solo necesitas colocar la URL del que desees extraer y listo. Espero les sirva.


2014-03-30

Usando IPTABLES para Detectar Escaneos con NMAP

Intentando aprender como funciona en IPTABLES el manejo de las banderas de TCP monte un pequeño laboratorio para ir creando reglas usando el tcp-flags. Para poder ver si era efectivo usaba una maquina de atacante enviando escaneos como sF, sS y sX podía generar que el iptables me hiciera un Log y si se necesita bloquearlos.

Entonces lo primero es saber que parámetro es el que debemos usar, este se llama tcp-flags y es una de las opciones del parámetro tcp, en la siguiente imagen pueden ver el segmento del man de iptables donde se hace referencia al parámetro y sus opciones.


Como pueden ver en los datos que solicita la opción de tcp-flags se pide primero una mascara que son las banderas con las que va a comparar y el segundo dato son las banderas que usted desea verificar, así el primer campo contiene los bita que desea tener de base para comparar y la segunda opción los que le interesan.

Entonces cuando lanzamos nmap con el parámetro -sX, el escaneo envía las banderas Fin, Push y Urgent activas, por lo que si deseamos generar un registro que nos permita ver cuando nos están escaneando así pues activamos el log en IPTABLES con el siguiente comando

root@localhost:~# iptables -I INPUT -i eth0 -p tcp --tcp-flags ALL FIN,PSH,URG -j LOG --log-level 4 --log-prefix "NMAP-SX: "

Este comando me permite generar un registro de cada paquete que contenga las banderas FIN,PSH,URG activas en el archivo /var/log/syslog, además lo calificara como de nivel 4 y le pondrá un prefijo que se diga NMAP-SX:. 

Entonces lanzamos el escaneo y como pueden observar en la siguiente imagen el segmento de log nos permite ver claramente el ataque


Espero que les sirva.

2014-03-16

Usando Extensiones de Gnome3

Acá jugando con mi laptop una de las cosas que extraño del antiguo Gnome es poder tener actualizado el clima de mi ciudad y de las ciudades donde viven mis primos, esto no lo había encontrado en el Debian 7 pero buscando encontré que los plugins para Gnome3 estaban en Internet, en la URL https://extensions.gnome.org 

Entonces empecemos a cuadrar lo que necesitasmos, que como todo en Linux es mucho más simple de lo que usualmente nos imaginamos. Una vez ingreso a la pagina veo el Weather que es lo que necesito, porque como ven no se ve el clima en lo que tengo


La extensión del clima en a pagina simplemente es activarla como se ve en la imagen siguiente esta apagada


Una vez se activa el sistema pegunta si quiere instalarla y pues indicamos que si


Una vez activa en la barra de menú se ve un nuevo símbolo donde como ven ya esta listo el menú del clima y es solo configurarlo


Espero que les sirva como a mi.

2014-02-28

Aprendiendo a Usar el Comando CUT

Para los que trabajamos analizando los registros del sistema o archivos que contengan información tabulada es fundamental aprender a usar comandos que nos permitan extraer información de esos archivos, por esto decidí en esta entrada mostrar algunas cosas que se pueden hacer con el comando CUT, después intentare hacer lo mismo con otros comandos.

Entonces pues primero la imagen de la ayuda que brinda el comando, la cual me parece muy valiosa y clara


Para poder realizar los ejemplos vamos a usar un fragmento de los registros de conexión por publickey a un servidor de SSH, los cuales se ven así

Feb 23 11:06:57 fr sshd[25327]: Accepted publickey for root from 190.26.49.14 port 21698 ssh2
Feb 24 08:24:39 fr sshd[26923]: Accepted publickey for root from 10.201.132.61 port 1727 ssh2
Feb 24 08:53:46 fr sshd[26936]: Accepted publickey for root from 10.201.132.61 port 3135 ssh2
Feb 25 10:16:18 fr sshd[28526]: Accepted publickey for root from 10.201.132.61 port 23819 ssh2
Feb 25 18:12:16 fr sshd[29825]: Accepted publickey for root from 10.201.132.61 port 41020 ssh2
Feb 25 18:12:47 fr sshd[29832]: Accepted publickey for root from 10.201.132.61 port 41022 ssh2
Feb 26 14:00:15 fr sshd[31463]: Accepted publickey for root from 10.201.132.61 port 63469 ssh2
Feb 26 14:12:05 fr sshd[31487]: Accepted publickey for root from 10.200.11.153 port 16539 ssh2
Feb 26 14:15:04 fr sshd[31513]: Accepted publickey for root from 200.21.240.135 port 53538 ssh2
Feb 26 14:18:11 fr sshd[31533]: Accepted publickey for root from 190.68.125.74 port 46271 ssh2
Feb 26 14:27:40 fr sshd[31557]: Accepted publickey for root from 10.201.132.61 port 65024 ssh2
Feb 27 16:45:06 fr sshd[1695]: Accepted publickey for root from 10.200.10.79 port 42335 ssh2
Feb 27 17:22:30 fr sshd[1721]: Accepted publickey for root from 10.201.132.61 port 43805 ssh2

Entonces vamos a iniciar con el más simple, que es sacar un dato usando un delimitador. El delimitador es lo que el usuario defina como separador de cada columna, para este ejemplo voy a identificar el numero de proceso que se ejecuto para cada conexión, para esto necesitamos el numero que esta entre [], lo voy a mostrar por pasos.

La primera parte usaremos como delimitador el [ y que nos muestre la segunda columna, entonces el comando quedaría

root@localhost:~# cut -d [ -f 2 logconexiones
25327]: Accepted publickey for root from 190.26.49.14 port 21698 ssh2
26923]: Accepted publickey for root from 10.201.132.61 port 1727 ssh2
26936]: Accepted publickey for root from 10.201.132.61 port 3135 ssh2
28526]: Accepted publickey for root from 10.201.132.61 port 23819 ssh2
29825]: Accepted publickey for root from 10.201.132.61 port 41020 ssh2
29832]: Accepted publickey for root from 10.201.132.61 port 41022 ssh2
31463]: Accepted publickey for root from 10.201.132.61 port 63469 ssh2
31487]: Accepted publickey for root from 10.200.11.153 port 16539 ssh2
31513]: Accepted publickey for root from 200.21.240.135 port 53538 ssh2
31533]: Accepted publickey for root from 190.68.125.74 port 46271 ssh2
31557]: Accepted publickey for root from 10.201.132.61 port 65024 ssh2
1695]: Accepted publickey for root from 10.200.10.79 port 42335 ssh2
1721]: Accepted publickey for root from 10.201.132.61 port 43805 ssh2

Como solo necesitamos el número, entonces necesitamos otro corte en el archivo, por lo que el comando final quedaría así

root@localhost:~# cut -d [ -f 2 logconexiones | cut -d ] -f 1
25327
26923
26936
28526
29825
29832
31463
31487
31513
31533
31557
1695
1721

Otro ejemplo que puede ser útil es sacar fecha e IP de conexión, para lo que podemos usar como delimitador los espacios y que nos muestre las comunas que necesitamos, que serian de la 1 a la 3 y además la 11, entonces el comando quedaría

root@localhost:~# cut -d " " -f 1-3,11 logconexiones
Feb 23 11:06:57 190.26.49.14
Feb 24 08:24:39 10.201.132.61
Feb 24 08:53:46 10.201.132.61
Feb 25 10:16:18 10.201.132.61
Feb 25 18:12:16 10.201.132.61
Feb 25 18:12:47 10.201.132.61
Feb 26 14:00:15 10.201.132.61
Feb 26 14:12:05 10.200.11.153
Feb 26 14:15:04 200.21.240.135
Feb 26 14:18:11 190.68.125.74
Feb 26 14:27:40 10.201.132.61
Feb 27 16:45:06 10.200.10.79
Feb 27 17:22:30 10.201.132.61

Cuando el archivo que estás analizando no esta tan tabulado es complicado extraer esos datos tan fácilmente o si lo que se necesita es saber cual es el valor de la columna X de un archivo el comando CUT tiene la opción C que te permite que cada letra se convierta en una columna y extraigas solo las que necesitas.

Para el ejemplo vamos a sacar el contenido de las columnas desde la 70 a la 80, por lo que el comando quedaría así

root@localhost:~# cut -c 70-80 logconexiones
190.26.49.1
10.201.132.
10.201.132.
10.201.132.
10.201.132.
10.201.132.
10.201.132.
10.200.11.1
200.21.240.
190.68.125.
10.201.132.
0.200.10.79
0.201.132.6

Ahora si lo que necesita es extraer los datos desde la columna X hasta el final de linea solo se debe retirar del comando el limite final, o sea así:

root@localhost:~# cut -c 70- logconexiones
190.26.49.14 port 21698 ssh2
10.201.132.61 port 1727 ssh2
10.201.132.61 port 3135 ssh2
10.201.132.61 port 23819 ssh2
10.201.132.61 port 41020 ssh2
10.201.132.61 port 41022 ssh2
10.201.132.61 port 63469 ssh2
10.200.11.153 port 16539 ssh2
200.21.240.135 port 53538 ssh2
190.68.125.74 port 46271 ssh2
10.201.132.61 port 65024 ssh2
0.200.10.79 port 42335 ssh2
0.201.132.61 port 43805 ssh2

Si lo que necesita es desde el principio de la linea hasta una columna X entonces solo debe retirar el limite inicial, o sea así:

root@localhost:~# cut -c -10 logconexiones
Feb 23 11:06:57 fr
Feb 24 08:24:39 fr
Feb 24 08:53:46 fr
Feb 25 10:16:18 fr
Feb 25 18:12:16 fr
Feb 25 18:12:47 fr
Feb 26 14:00:15 fr
Feb 26 14:12:05 fr
Feb 26 14:15:04 fr
Feb 26 14:18:11 fr
Feb 26 14:27:40 fr
Feb 27 16:45:06 fr
Feb 27 17:22:30 fr
Feb 27 17:23:20 fr

Espero les sea útil

2014-02-25

Instalando SDK y ADB en Debian 7

Debido a que necesitaba sacar unos datos de un Android y acceder por consola investigue que era necesario tener instalada la herramienta SDK, la cual tiene el comando adb (Android Debug Bridge) que permite comunicar al emulador con un dispositivo real. Todas estas herramientas son diseñadas por Android para los desarrolladores, el sitio web es http://developer.android.com/

Entonces lo primero es descargar las herramientas de SDK (SDK Tools Only) desde acá  http://developer.android.com/sdk/index.html , el archivo se llama android-sdk_r22.3-linux.tgz el cual debes descomprimir, como recomendación en el directorio /opt, así:

root@localhost:~# tar zxf -C /opt android-sdk_r22.3-linux.tgz

Una vez en termina de descomprimir se ingresa en el directorio y se accede a un directorio tools,  una vez en este se ejecuta el archivo llamado android, como se ve a continuación


Esto abre una ventana de donde se debe seleccionar el paquete Android SDK Platform-tools como se ve en la siguiente imagen


Una vez termina el proceso se crea el directorio platform-tools donde se ven los siguientes archivos


Y una vez conectes un dispositivo Android con el Debug USB habilitado (Tiene que estar habilitado), entonces puede usar el comando y acceder el dispositivo en modo consola, como ejemplo vemos que se en lista el conectado


Espero que les sirva

2014-02-23

Creando Reglas en OSSEC

Muchas personas que me siguen saben perfectamente que me dedico a la seguridad tanto ofensivamente como defensivamente, entonces esta entrada va para quienes instalan los HIDS y que toca afinarlos permanentemente. OSSEC es una de las herramientas de este tipo que siempre instalo porque me parece fenomenal, entonces en esta oportunidad a idea es que aprendan a crear sus propias reglas.

Para esto vamos a usar de base los logs generados por IPTABLES (datos de iptables acá), una vez tenemos activo el log este se ve en /var/log/messasges de la siguiente forma


Entonces para ver que información ve OSSEC de este log existe una herramienta que esta en el directorio /var/ossec/bin, es donde están los script de pruebas y funcionamiento, por ende el que necesitamos se llama ossec-logtest y funciona de la siguiente forma



Como ven la detección de cada incidencia se basa en tres fases, que busca identificar los siguientes datos:

Fase 1:  Usa la normalización de syslog o eventlog según corresponda para sacar tres datos,  tipo de log, nombre de la maquina y  registro de la incidencia.

Fase 2: Usa el dato de registro de la incidencia y basado en lo que esta definido en el archivo /var/ossec/etc/decoder.xml, si no identifica nada toca modificar este para obtener lo que se desee.

Fase 3: Usa los datos extraídos para usando las reglas que están en el directorio /var/ossec/rules poder determinar el tipo de incidencia.

Como se ve en la fase 3 del ejemplo anterior, el identifica que es un log de un firewall y que esta en el D 4100 de las reglas, pero nosotros necesitamos que nos identifique la IP desde la que esta haciendo la conexión, por lo que crearemos dos reglas.

La primera que saque la IP y la segunda que si esa IP genera 20 incidencias en un día entonces pone la alerta en nivel 10, como las que se ven marcadas en la siguiente imagen


Entonces volvemos al test y veremos que en la fase 3 cambia y empieza a detectar lo que necesitamos.


Espero que les sirva.

2014-01-31

Montando Particiones LVM desde un LiveCD

Como siempre coloca acá lo que voy haciendo y me parece útil para alguien o para acordarme de como lo hice, esta vez me tocaba recuperar la información de un disco duro que estaba instalado con LVM y que no arrancaba correctamente pero se necesitaba la información.

Entonces inicie el sistema con un Kali-linux, simplemente porque era el que tenia a mano pero puede ser con cualquier otro LiveCD, en esta distribución ya se encuentra instalado el paquete que necesitaba, pero si no esta tiene que instalarlo así:

root@localhost:~# apt-get install lvm2

Bueno una vez tienen el paquete instalado si empieza el montaje de las particiones, lo primero es hacer que el sistema vea los grupos de vólumenes, que se hace con el siguiente comando

root@localhost:~# vgscan

Y se ve algo así


Bueno identificamos como se llama el grupo de volúmenes, que para el ejemplo es "vg_xxx", entonces podemos ver los volúmenes lógicos, para ver su estado, esto se hace con el comando

root@localhost:~# lvdisplay 

y se ve así


Como pueden apreciar se ve como no disponible, por lo que toca cambiarle el estado con el siguiente comando

root@localhost:~# vgchange -a y

Lo que se ve así


Y después de esto ya se ven como disponibles los volúmenes lógicos, como se puede apreciar a continuación


Ya con esto se deben ver las particiones como dispositivos a usar, se identifican por un circulo verde, como se puede ver a continuación


Espero que les sirva.

2014-01-26

Particiones con LVM y Cifrado

Siempre he instalado y configurado servidores usando Logical Volumen Manager (LVM) y mi portátil usualmente he cifrado la partición de home, sin embargo nunca había instalado con estos dos atributos que te permite la instalación de Linux. Para los que no sepan bien como funcionan estas dos posibilidades les invito a leer los enlaces que coloque, donde explican bien.

Bueno antes de iniciar lo que creo va  a ser una de las entradas más largas que he hecho quiero explicar brevemente porque me parece fundamental instalar un servidor con LVM, en muchas ocasiones por falta de cuidado o simplemente por que lo hiciste a la carrera dejas una partición muy pequeña y esto hace que el servidor colapse, bueno si tienes las particiones en un LVM puedes en caliente reducir (con algunas restricciones) o ampliar el tamaño de la partición.

Bueno empecemos con como se hace, vamos a suponer que ya llegamos a la parte de la partición, donde nos da las opciones que vemos a la derecha, entonces escogemos Manual para tener todo el control del proceso.


Entonces el sistema le va a mostrar el disco, como se ve en la imagen de la izquierda, para este ejemplo es un disco relativamente pequeño. 

Ahora antes de empezar les sugiero tener muy claro como se va a hacer la partición, lo que quiere decir tener claro tamaños, formatos, y características que le van a configurar. El esquema generar que vamos a hacer en esta entrada es el siguiente:


Bueno entonces seleccionamos el disco y el sistema siempre te mandara mensaje de advertencia donde te pide que confirmes estar seguro de modificar particiones y datos en el disco, le das que si y entonces empieza realmente el proceso de crear las particiones.


Lo primero es seleccionar el espacio libre donde vamos a hacer la partición, como se ve en la imagen de la derecha.

Los siguientes pasos se hacen cada que creas una partición normal por lo que según nuestro esquema el procedimiento que sigue es para boot, raiz y swap.


Lo primero que pide el sistema es le indique como usar el espacio libre que esta seleccionando, para eso da tres opciones que dependiendo lo que necesites lo debes usar, para este caso es el de crear una nueva partición.


Lo siguiente es que le indiques el tamaño de la partición, por esto es fundamental tener claro el esquema con el que vas a hacer la partición, para el ejemplo esta es la partición de Boot, por lo que tiene un tamaño de 250 MB.



Ahora el sistema te pide si quieres que la partición sea primaria o lógica, como se ve en la imagen de la derecha, para las tres primeras serian primarias y de ese numero en adelante es mejor que sean lógicas. Si quieres más datos lee acá.

Después el sistema te pregunta donde quieres colocar la partición, si al principio o al final del espacio libre que tienes, eso debes tenerlo en cuenta, no es si le pones al principio las que ya hayas creado se corran, sino es en el espacio libre, por lo que mi recomendación es que le dejes siempre al principio.


Bueno ya en este punto es donde ves todas las características que puedes configurar en la partición, como recomendación dejarla en ext4 y las otras por defecto si no conoces datos específicos que quieras hacer sobre la partición que estás configurando. Lo que vamos a modificar nosotros es el punto de montaje, que lo que te permite es indicarle al sistema que directorio va a estar en esa partición.


Al dar click en la selección de la imagen anterior verán las opciones que les presenta el sistema y una para crear tu partición especifica, esto te ayudara a entender que por defecto contiene cada directorio del sistema y según su esquema usted define que espacio le da a cada una.

Entonces como esta es la partición para boot, que es donde está el gestor de arranque y se supone que este directorio no debe contener nada más, se deja pequeño pero con suficiente espacio para almacenar las actualizaciones del kernel.

Ya seleccionando esto hemos terminado la configuración de la partición, pero este es hasta ahora una de muchas que tenemos que hacer. Entonces seleccionas el Se ha terminado de definir la partición, como se ve en la imagen a continuación


Este procedimiento se debe repetir para crear las particiones de raiz y de swap, una vez termine el esquema de partición se debe ver así


Buen entonces ahora vamos a empezar con la LVM, en este ejemplo y para este caso es solo una LVM, pero si ustedes necesitan más no existe ningún problema, eso es muy usual cuando van a montar un server con maquinas virtuales donde a cada virtual se le crea una LVM.

Una vez damos click va a salir que creemos una partición nueva y vamos a usar todo el tamaño que se tenga libre, ya que con todo el tamaño es que vamos a crear las particiones dentro de la LVM y como es la cuarta partición esta va a ser lógica.

Ya hechos todos los pasos anteriores vamos a ver en la pantalla igual a la imagen a la derecha, donde en el Utilizar como vamos a dar click y veremos las siguientes opciones, donde seleccionaremos volumen físico para LVM

Una vez escogemos esta opción el sistema nos muestra las características de la partición, donde es evidente que cambian y realmente no necesitamos nada más, es por esto que se da por terminada la definición de la partición.

Entonces vamos a ver nuevamente el resumen de como esta particionado el disco y se encuentra que ya no existe espació libre y que la última partición tiene por característica ser lvm. Y como se puede ver en la imagen siguiente hemos seleccionado Configurar el Gestor de Volumen Lógicos (LVM), con el cual configuraremos los grupos de LVM y las particiones dentro del LVM


Una vez vas a iniciar el sistema te dice que debes guardar la tala de particiones que llevas hasta ese momento, entonces se da que si y continuas. Ahora se crea el grupo de volúmenes, para este ejemplo solo voy a crear uno pero eso depende de lo que cada uno necesite. Entonces como pueden ver en la imagen de la izquierda se selecciona el crear grupo de volúmenes y una vez ingresan el sistema pide que le coloquen un nombre al grupo, como se ve en la siguiente imagen.

Ya  con el nombre el sistema les pide que indiquen la partición donde esta el volumen físico para la LVM, en el caso del ejemplo es la última partición que se hizo y en la que la imagen no muestra como ningún tipo de formato, como se ve en la imagen a la derecha.

Ahora seguimos con la creación de volumen lógico, que es donde vamos a poder hacer las particiones, por lo que basados en nuestro esquema de particionado vamos a crear tres volúmenes lógicos.

Entonces como se ve en la imagen de la izquierda se selecciona el crear un volumen lógico, de donde nos pedirá que seleccionemos el grupo de volumen donde queremos crearlo, como solo tenemos uno para el ejemplo pues seleccionamos ese, como se ve en la siguiente imagen


Y una vez lo seleccionamos el sistema nos pedirá que le demos un nombre, como recomendación les sugiero como nombre el mismo del directorio que se le va a asignar, así para nuestro ejemplo el primer volumen será asignado al directorio /var, entonces por eso el nombre que se ve en la siguiente imagen.


Después el sistema pide el tamaño del volumen, para el ejemplo y basados en el esquema inicial del particionado esta partición es de 12GB, por lo que así se deja.


Al igual que las particiones iniciales este proceso se realiza tantas veces como particiones se hagan, en este caso del ejemplo son tres veces y una vez se termina se puede ver que en el resumen de la parte superior que ya están creados todos los volúmenes lógicos, como se ve en la imagen a la derecha.

Entonces una vez le des terminar el esquema de particionado se debe ver como la siguiente imagen, con todos los volúmenes lógicos creados


Bueno entonces falta asignar la partición a cada uno de los volúmenes que se crearon, entonces al dar click en una de ellas el sistema nos muestra que la partición no esta siendo utilizada, como se ve en la imagen de la izquierda. Por lo que damos click para poder darle formato y con esto usarla, que para el caso del ejemplo y como recomendación debe ser en ext4, como se ve en la siguiente imagen.


Ahora o que debemos es cambiar el punto de montaje, o sea indicarle cual es el directorio del sistema que vamos a configurar en dicha partición, que para el caso del ejemplo será /var, por lo que una vez asignado las características de la partición se deben ver así:


Listo como en los anteriores casos es solo repetir el proceso con cada una de las particiones a crear y al final se debe ver la tabla de particiones así


Si no quieren cifrar nada hasta acá deben llegar y ya con esto guardan la tabla de particiones y les queda el sistema listo para terminar la instalación.

Bueno para los que quieran seguir con la parte del cifrado tengo que decirles que sin importar que partición cifren la que TIENE que estar cifrada es SWAP o de intercambio, sino el sistema les mostrara un error y no permitirá que continúe, diciendo esto sigamos con la configuración.

Entonces se debe tomar la partición que ya esta asignada como de intercambio y cambiarle su uso, seleccionando Utilizar Como y se cambia a volumen físico para cifrado, como se ve en la imagen de la derecha

Una vez la seleccionas el sistema cambia las características de la partición, donde se ve claramente como se va a cifrar la partición y donde por recomendación les sugiero dejar por defecto, como se ve en la imagen a continuación


Una vez terminas de configurar las particiones como volúmenes físicos para cifrado el particionado se debe ver de la siguiente forma, acá en el ejemplo son dos las particiones a cifrar que son la de home y la swap.


Entonces así como cuando se creo los volúmenes ara el LVM, el sistema de cifrado tiene un menú aparte que se llama Configurar los volúmenes cifrados y que se puede ver en la imagen de la izquierda. Lo cual al hacer click les pedirá que confirmen la tabla de particionado que llevan, entonces toca decir que si.

Ahora como hemos visto toca decirle que una va a crear los volúmenes, como se ve en la imagen de la derecha. Después el sistema les pide que indiquen cuales particiones son las que se van a cifrar.


Entonces siguiendo nuestro esquema serian las particiones de home y la de intercambio, una vez se le indique esto y se termine el proceso, el sistema le indica que cada partición se sobrescribira con datos aleatorios y al darle que si el proceso inicia, esto se puede demorar bastante dependiendo del tamaño de la partición, visualmente esos pasos se ven así



Una vez termine de borrar el sistema les pedirá la frase de cifrado, por ser frase puede tener espacios y tengan presente que cuando arranquen el sistema esta ser la que pida por cada partición cifrada que tengan, entonces debe ser fuerte.


Listo ya con eso en cada una de las particiones cifradas el esquema de particionado debe quedar así


Solo falta que le indiquen el punto de montaje en las particiones cifradas, en la imagen de la derecha verán la asignación de home, pero se debe hacer así también con la de intercambio o SWAP.

Una vez hacen eso con ambas particiones entonces el esquema de particionado ha quedado terminado y el resumen se debe ver así:


Espero que no haya sido tan aburrida y que les sirva a los que están empezando en el mundo de las instalaciones de servidores en Linux, ya que un buen esquema de particionado les va a permitir tener servidores estables y sin tantos inconvenientes.