2009-12-23

Revisar Listas Negras de Spam desde Consola

Como en esta época el trabajo "disminuye" tengo mas tiempo para leer y estudiar, uno de los blog que leo es blog.segu-info.com.ar, donde me encontré una entrada super interesante y que para mi trabajo es ideal y nos permite revisar mas de 90 listas negras de spam desde consola con un script realizado en perl que esta muy bien echo, este script lo puedes descargar de aquí, la idea original es de What Is My IP Address? y ese es el entrono web de la aplicación.

bueno una vez descargado el archivo los descomprimes y colocas el ejecutable en /usr/sbin para guardar el orden así

root@locahost:~#mv amISpammer.pl /usr/sbin

Bueno el tiene un modulo para enviarte automáticamente un correo que se llama Mailer::Sender, al verdad no se bien como se compila ni configura por defecto no viene instalado por lo que para que me funcionara simplemente le modifique la linea 104 del script (si ven por que es genial poder manejar el código fuente de las cosas y no que nos oculten todo), esa linea quedo así

if ($from && $to) #Just in case of optional mailing needed
{
#use Mail::Sender;
$sender = new Mail::Sender{smtp => $smtp, from => $from};
$sender->MailMsg({to => $to, subject => $subjemail, msg => $messemail});

Listo después debes identificar cual es el registro MX de tu dominio de correo, ya que no siempre es la misma IP por la que navegas, eso lo haces así

root@locahost:~# dig mx dominio.com
; <<>> DiG 9.6.1-P2 <<>> mx pruebas.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64262
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:
;pruebas.com. IN MX

;; ANSWER SECTION:
pruebas.com. 3600 IN MX 10 brown.cow.com.au.

;; AUTHORITY SECTION:
pruebas.com. 3600 IN NS ns1.telstra.net.
pruebas.com. 3600 IN NS ns0.telstra.net.

;; ADDITIONAL SECTION:
brown.cow.com.au. 172799 IN A 39.174.420.5

;; Query time: 692 msec
;; SERVER: 192.168.5.1#53(192.168.5.1)
;; WHEN: Wed Dec 23 11:36:54 2009
;; MSG SIZE rcvd: 124



Los datos importantes son los que están en resaltados, ya tenemos la IP, ahora si podemos ejecutar el script, le cual lo hacemos así

root@locahost:~#amISpamer.pl -i 39.174.420.5

con esto nos dice si estamos o no reportados en alguna de las lista de las que revisa, marcando con la palabra red si estamos reportados en dicha lista, si queremos ver el resultado de cada una ejecutamos así

root@locahost:~#amISpamer.pl -i 39.174.420.5 -v2


Acá te muestra el resultado con todas las listas entonces hay 4 opciones que son:

red : Estas reportado en esa lista
green : No estas reportado en esa lista
blue : La lista emitió un error o se demoro mucho para contestar
gray : La lista no esta disponible


Ahora la intensión es colocarlo automático, entonces lo colocamos en el crontab la siguiente linea para que se ejecute todos los días a las 4 am y nos envié un correo así

0 4 * * * /usr/sbin/amISpamer.pl -i 39.174.420.5 -v2 | mail -s "reporte spamer" tu.cuenta@dominio.com


espero les sirva.

2009-12-18

Instalar chromium-browser

Lo primero que voy a explicar es por que no instalo chrome, la respuesta es sencilla odio que me espien y hagan cosas in mi autorización en mi maquina, chrome instala un repositorio con un cron que evita que una persona que no sabe como cambiar los repositorios lo logre eliminar, y creanme si para uno que medio sabe de esto es mamon, por eso instale chromium de la siguiente forma

root@localhost:~# add-apt-repository ppa:chromium-daily/ppa

con eso tenemos el repositorio de donde bajarlo, mas no el que se queda pegado y con cron, listo entonces ahora actualizamos nuestra lista de repositorios

root@localhost:~# apt-get update

Una vez hecho esto podemos proceder a instalarlo así

root@localhost:~# apt-get install chromium-browser

Listo ahora para que te sincronicen los marcadores y demás, para esto modificas una pequeña linea en el archivo de configuración así


root@localhost:~# vi /etc/chromium-browser/default

# Default settings for chromium-browser. This file is sourced by /bin/sh from
# /usr/bin/chromium-browser

# Options to pass to chromium-browser
CHROMIUM_FLAGS="--enable-sync"


listo mira como se ve, el te toma Java y adobe y demás asi que de una a usarlo



2009-12-14

Medir Ancho de Banda desde Consola

Debido a mi trabajo en muchas ocasiones los problemas de disponibilidad de servicios es problemas en el ancho de banda del canal, debido a esto es fundamental poder demostrar que el inconveniente esta en que el ancho de banda del canal no es suficiente o que prácticamente no hay canal.

Leyendo en internet me encontré con un buen dato de Linux para Todos sobre un medidor desde consola llamado iperf, por lo que me puse a investigar encontrando que es un desarrollo de la universidad de Central Florida y que la URL del proyecto es esta http://www.noc.ucf.edu/Tools/Iperf/ , decidi entonces montarla en uno de nuestros servidores y hacer pruebas, el montaje es muy sencillo

root@localhost:~# apt-get install iperf

o si deseas de la pagina puedes bajar el tar.gz y lo compilas, bueno una vez instalado entonces subimos el servicio así

root@localhost:~# iperf -s

ese mismo lo puedes colocar en /etc/rc.local para que cuando inicie el sistema inicie también el servicio, y si tiene configurado un FW le debes habilitar el tráfico entrante al puerto 5001.

Ya con esto solo debes instalar el sistema en el cliente y hacer las pruebas, para manejarlo me encontré esta pagina en ingles donde explica muchas funcionalidades de la herramienta, que desde el cliente es así

Prueba básica

samuel@samuel:~$ iperf -c 274.132.23.1
------------------------------------------------------------
Client connecting to 274.132.23.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.5.214 port 33007 connected with 274.132.23.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-11.1 sec 688 KBytes 506 Kbits/sec

Cambiando la escala de medida

Puede ser (M) Mega o (K) kilo (por defecto) o (b) bits

samuel@samuel:~$ iperf -c 274.132.23.1 -f M
------------------------------------------------------------
Client connecting to 274.132.23.1, TCP port 5001
TCP window size: 0.02 MByte (default)
------------------------------------------------------------
[ 3] local 192.168.5.214 port 53517 connected with 274.132.23.1 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.6 sec 0.37 MBytes 0.03 MBytes/sec


Hacer el test de forma bidireccional


samuel@samuel:~$ iperf -c 192.168.5.1 -d
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.5.1, TCP port 5001
TCP window size: 117 KByte (default)
------------------------------------------------------------
[ 5] local 192.168.5.214 port 59015 connected with 192.168.5.1 port 5001
[ 4] local 192.168.5.214 port 5001 connected with 192.168.5.1 port 53947
[ ID] Interval Transfer Bandwidth
[ 5] 0.0-10.0 sec 100 MBytes 84.0 Mbits/sec
[ 4] 0.0-10.0 sec 77.2 MBytes 64.8 Mbits/sec


Pruebas de respuesta sobre puertos específicos


samuel@samuel:~$ iperf -c 174.132.243.162 -p 53 -t 20 -i 5 -f M
------------------------------------------------------------
Client connecting to 274.132.23.1, TCP port 53
TCP window size: 0.02 MByte (default)
------------------------------------------------------------
[ 3] local 192.168.5.214 port 39986 connected with 274.132.23.1 port 53
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 5.0 sec 17592186044416 MBytes 3518437208883 MBytes/sec
[ 3] 5.0-10.0 sec 17592186044416 MBytes 3518437208883 MBytes/sec
[ 3] 10.0-15.0 sec 17592186044416 MBytes 3518437208883 MBytes/sec
[ 3] 0.0-20.0 sec 17592186044415 MBytes 879445989101 MBytes/sec


Espero les sirva me pareció muy interesante la herramienta

2009-12-01

Uso Basico de OpenVAS

Bueno como en la anterior entrada coloque como se instala en esta voy a explicar muy básicamente como se usa, básicamente por dos razones la primera es que no lo uso 100% y la segunda por que tiene tantas cosas que me imagino que habrá libros de como usarlo, bueno pues lo primero es repetir la imagen de la pantalla inicial que es


bueno le das conectar que es el botón que es así esto te abrirá la siguiente ventana donde le darás la contraseña y el usuario que creaste en la instalacion


Una vez le des el OK el inicia la conexión descarga todos los plugins, por defecto vienen configurados con un poco mas de lo básico pero siempre que los puedas ayudar para un análisis sera mejor.

Bueno después de eso podemos usar la ayuda para ejecutar el escaneo deseado, esta ayuda es el botón esto te generara el siguiente procedimiento





El nombre que le vas a colocar a la tarea, puede ser cualquiera pero que sea representativo














Nombre que le vas a colocar a la rutina, a igual que el anterior puede ser uno cualquiera pero representativo, por ejemplo red completa o equipo del jefe, algo que sepas que fue











Aca es el objetivo, puede ser una IP, un nombre de host o una red, como se ve en el ejemplo con esa IP por supuesto falsa












Por ultimo lo ejecutas y esperas con paciencia








El sistema abre otra ventana donde te muestra el avance el cual no es muy certero pero sirve de guía, cuando acaba cierra la ventana y en la primera ventana de la explicación sale el reporte el cual verlo hay es como aburridor, por lo que lo puedes exportar a PDF lo cual se hace en Report -> Export y guardas donde desees como se ve en las siguientes imágenes


















Bueno espero que les sirva la guía

2009-11-30

Instalación y Configuración de OpenVAS en Ubuntu 9.10

Debido a mi trabajo es fundamental para mi contar con una herramienta de análisis de vulnerabilidades, siempre use Nessus pero esta ya la descontinuaron y ahora se llama OpenVAS, esta es una versión mejoro en una serie de cosas pero realmente el usarlo cada día es mas enredado, pero sin lugar a duda lo han mejorado bastante.

Como siempre coloco de donde estudie las cosas para hacerlas esta no va a ser la excepción, primero lo probe con backtrack4 y después me leí el blog de lanelson.ca (en ingles) donde termine de entender el funcionamiento y los pasos para la configuración, los cuales fueron así, primero instalo los paquetes que necesito para el

root@localhost:~# apt-get install build-essential libgnutls-dev libcap0.8-dev bison libgtk2.0-dev libglib2.0-dev libgpgmell-dev libssl-dev htmldoc

Como no me gusta instalar las cosas sin saber que son, entonces busque que es cada paquete o por lo menos una breve explicación de que hacen, para los que son como yo esta es como la explicación

build-essential -> Lista informativa que el sistema de Debian identifica como esenciales para la creación de paquetes.

libgnutls-dev -> Libreria de TLS y SSL de Linux

libcap0.8-dev -> Libreria que permite un marco de bajo nivel para el análisis de redes

bison -> Es un generador de filtros que permite convertir descripciones gramaticales en expresiones para lenguaje C

libgtk2.0-dev -> Conjunto de herramientas para crear interfaces gráficas

libglib2.0-dev -> Libreria de rutinas de propositos generales para manejo de graficos

libssl-dev -> Libreria de Seguridad

htmldoc
-> Sistema que genera los textos index.html para la presentación de los informes

Bueno siguiendo con las instalación hay que bajar unos paquetes que se requieren para la instalación, las cuales las descargas así

root@localhost:~#wget http://wald.intevation.org/frs/download.php/572/openvas-libraries -2.0.2.tar.gz
root@localhost:~#wget http://wald.intevation.org/frs/download.php/561/openvas-libnasl-2.0.1.tar.gz
root@localhost:~#wget http://wald.intevation.org/frs/download.php/562/openvas-server-2.0.1.tar.gz
root@localhost:~#wget http://wald.intevation.org/frs/download.php/576/openvas-plugins-1.0.6.tar.gz
root@localhost:~#wget http://wald.intevation.org/frs/download.php/575/openvas-client-2.0.3.tar.gz

Ahora empezaremos a compilar e instalar, cada uno de los paquetes según como los necesitamos, empezamos con las librerias así

root@localhost:~#tar zxf openvas-libraries -2.0.2.tar.gz && cd openvas-libraries -2.0.2
root@localhost:openvas-libraries -2.0.2#./configure
root@localhost:openvas-libraries -2.0.2#make && make install
root@localhost:openvas-libraries -2.0.2#cd ..

root@localhost:~#tar zxf openvas-libnasl-2.0.1.tar.gz && cd openvas-libnasl -2.0.1
root@localhost:openvas-libnasl-2.0.1#./configure
root@localhost:
openvas-libnasl-2.0.1#make && make install
root@localhost:openvas-libnasl-2.0.1#cd ..

Bueno ahora instalamos el servidor de OpenVAS, lo cual es así

root@localhost:~#tar zxf openvas-server -2.0.1.tar.gz && cd openvas-server -2.0.1
root@localhost:openvas-server-2.0.1#./configure
root@localhost:openvas-server-2.0.1#make && make install
root@localhost:openvas-server-2.0.1#cd ..

Ahora te debes asegurar que /usr/local/bin y /usr/local/sbin, esto lo compruebas así

root@localhost:~#echo ${PATH}
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Una vez confirmes esto entonces instalas los plugins de la siguiente forma

root@localhost:~#tar zxf openvas-plugins-1.0.6.tar.gz && cd openvas-plugins-1.0.6
root@localhost:openvas-plugins-1.0.6#./configure
root@localhost:openvas-plugins-1.0.6#make && make install
root@localhost:openvas-plugins-1.0.6#cd ..

Tenemos que cargar los enlaces simbólicos que genera el montaje, esto se hace así

root@localhost:~#ldconfig

Bueno con esto terminamos la parte de instalación del Server, ahora debemos configurarlo y cuadrarle los parámetros, lo cual se inicia creando un certificado SSL para nuestras conexiones, lo que hacemos así

root@localhost:~# openvas-mkcert

Se deben colocar valores sino reales si por lo menos existentes, o sea un país que exista una localización que exista, como se ve a continuación














Listo ya con el certificado ahora debemos crear el usuario, al igual que en Nessus el OpenVAS necesita un usuario el cual creamos así

root@localhost:~# openvas-adduser

Le colocas el metodo de autenticación que desees y le dejas las reglas en blanco, para salir le das Ctrl-D, esto se ve así



Ahora ya con el usuario y certificados creados sincronizamos todos los plugins y reglas del sistema para que el usuario los pueda usar, esto se realizar con el siguiente comando

root@localhost:~# openvas-nvt-sync

Bueno estamos listos para arrancar el servidor, este paso es fundamental aprenderlo pues aunque es trivial siempre le tendremos que ejecutar cuando deseemos realizar una análisis o colocarlo que arranque automáticamente con el sistema, eso si es decisión de ustedes, el comando es el siguiente

root@localhost:~# openvasd -D

Este comando siempre se demorara un instante, la primera vez bastante, pues hay carga los plugins que usualmente son mas de 15000.

Bueno ahora empezaremos con la instalación y configuración del cliente, para lo cual instalaremos el último paquete que nos queda de la siguiente forma:

root@localhost:~#tar zxf openvas-client -2.0.3.tar.gz && cd openvas-client -2.0.3
root@localhost:openvas-client -2.0.3#./configure
root@localhost:openvas-client -2.0.3#make && make install
root@localhost:openvas-client -2.0.3#cd ..

Bueno con esto ya quedo instalado el cliente ahora como lo ejecutamos, esto es con el siguiente comando

user@localhost:~$OpenVAS-Client

Ojo fijense que el último comando no esta ejecutado como root sino como un usuario normal, si lo ejecutan como root en Ubuntu no les va funcionar por que root no tiene entorno gráfico, en Debian si lo habilitaron si se ejecuta como root, este también lo tienen que ejecutar cada que deseen usar.

Apenas el sistema arranca se ve asi


Espero que les sirva pronto colocare como usar mas cosas del sistema

2009-11-15

Atajos por Teclado

Yo estoy metido en un ngrupo en facebook que se llama Ubuntu Colombia, alli un man llamado Julian Echavarria, a quien de antemano le pido disculpas por la copia textual de su escrito pero a quien le doy la mension completa de este post, escribió 40 atajos por teclado para hacer cosas comunes de trabajo, por lo que me pareció ideal colocarlo aqui

1) Ctrl+A = Seleccionar todo (En Documentos, Firefox, Nautilus, etc, no en Terminal)

2) Ctrl+C = Copiar (En Documentos, Firefox, Nautilus, etc, no en Terminal)

3) Ctrl+V = Pegar (En Documentos, Firefox, Nautilus, etc, no en Terminal)

4) Ctrl+N = Nuevo (Crea un documento nuevo, no funciona en Terminal)

5) Ctrl+O = Abrir (Abrir un documento, no en Terminal)

6) Ctrl+S = Guardar (Guardar el documento actual, no en Terminal)

7) Ctrl+P = Imprimir (Imprime el documento actual, no en terminal)

8 ) Ctrl+E = Enviar a… (Envía el documento actual por email, no en terminal)

9) Ctrl+W = Cerrar (Cierra el documento actual, no en terminal)

10) Ctrl+Q = Cerrar ventana (Cierra la aplicación actual, no en terminal)

11) Ctrl + Alt + F1 = Cambia a la primera terminal de consola.

12) Ctrl + Alt + F2 hasta la F6 = Selecciona segunda terminal de consola hasta la sexta.

13) Ctrl + Alt + F7 hasta la F12= Volver a la sesión gráfica.

14) Ctrl+Alt++ = Cambia a la siguiente resolución de pantalla (Depende de tu configuración X).

15) Ctrl+Alt+- = Cambia a la anterior resolución X (Depende de tu configuración X).

16) Ctrl + Alt + Backspace = Reiniciar servidor X (por defecto, deshabilitado en Ubuntu 9.04 y 9.10).

17) Alt+Tab = Cambiar entre los programas abiertos.

18 ) Alt+ F1 = Abrir menú de aplicaciones.

19 ) Ctrl+Alt+tab = Navegar entre los programas abiertos.

20 ) ImprPant = Capturar pantalla

21) Ctrl+C = (usado en el terminal) Terminar proceso actual

22) Ctrl + F10 = Menú contextual (botón derecho).

23) Ctrl+Z = (usado en terminal) Enviar proceso al “background.

24) Ctrl+D = Fin de sesión.

25) Ctrl+A = (Usado en terminal) Volver al inicio de la linea.

26) F2 = Renombrar.

27) Ctrl+E = (Usado en terminal) Ir al final de la linea.

28) Ctrl+H = Mostrar/Ocultar archivos ocultos.

29) Ctrl+U = (Usado en terminal) Borrar linea actual.

30) Alt +F4 = Cerrar ventana.

31) Ctrl + Alt + L = Bloquear pantalla.

32) Ctrl+W = (Usado en terminal) Borrar palabra anterior al cursor.

33) Flechas Arriba y Abajo = (Usado en terminal) Buscar entre el historico de comandos.

34) Ctrl+R = (Usado en terminal) Busca entre el historial comandos que comienzan por las letras que pulses.

35) Alt + F2 = Abre menú de ejecución.

36) Alt + F5 = Restaurar ventana maximizada.

37) Ctrl+T= Abrir nueva pestaña.

38) Ctrl+L = Limpia ventana del terminal.

39) Shift+insert = (Usado en terminal) Pegar

40) Click en la rueda del ratón = Pegar texto seleccionado.


Desde aca las que yo voy adicionando, espero cada dia colocar mas

41 ) Alt + ImprPant = Capturar ventana activa

Medir Tiempo de tus Programas

Cuando uno administra servicios es fundamental saber cuanto demora cada uno de los shell o programas que haces, pues esto te permite saber como programar los crones o saber cuanto tiempo necesitas esperar a una respuesta, para esto existe el comando time el cual se usa así:

root@localhost:~# time [opciones] comando


Esto en la practica es asi:

root@localhost:~# time programa.sh

esto te generara una salida de tres valores que son

Tiempo Real : Es el tiempo que se demora el programa.sh en ejecutarse desde que lo envías hasta que genera la salida de información. (este es el que realmente nos interesa)

Tiempo de CPU : Es el tiempo de procesamiento de la CPU en tu programa, es un dato interesante pero realmente no muy útil

Tiempo de Sistema : Este realmente no entiendo muy bien la diferencia con el de CPU pero es el tiempo en el sistema que demora tu proceso.

Visualmente es así:

root@localhost:~# time du -sh *
1,9G Descargas
177M Documentos
736K Escritorio
361M Imágenes
5,6G Peliculas
213M Seguridad
244K Ubuntu One

real 0m0.331s
user 0m0.000s
sys 0m0.030s


Bueno espero que les sirva

Adiciones de VirtualBox

Gracias a mi compañero Andrés descubrí los Guest Addictions de virtualbox, son aplicaciones que te permiten mejorar tu interacción entre el Ubuntu y la maquina virtual que tengas, pues te permite tener la maquina virtual como una ventana mas de Ubuntu pero sin ese molesto Ctrol-der para pasar de una a otra sino son el mismo mouse.

Bueno primero instalas tu maquina virtual como siempre, una vez instalada y corriendo le buscas en el menú de dispositivos en el ultimo donde dice Instalar GuestAdicctions y reinicias tu maquina virtual, el te montara en la unidad de CD/DVD una ISO de los Guest Addicctions, la cual veras en la configuración de tu maquina así


Listo entonces inicias tu maquina virtual y entras al CD y ejecutas el sistema, en windows7 que fue donde lo probé me funciono muy bien y pues como siempre el pide instalar hace el proceso y como todo en windows toca reiniciar, las imágenes de la instalación son las siguientes













Inicio de la Instalación Re-confirmando que instalo :S Como siempre reiniciando



Una vez reinicia la maquina el te saca este interesante mensaje, es bueno leerlo para que sepas que instalaste



Bueno que da mas sino probarlo y mostrar sus ventajas, las diferentes configuraciones las haces en el menú Maquina, donde por ejemplo aca adicione que se integre la pantalla de la maquina virtual con la de mi Ubuntu y que sea fluido para no hacer cambios de pantalla con el control


















Mi Maquina La Maquina de Andres


Espero les guste

2009-11-07

Control Pantalla segun tu Zona Horaria

Leyendo de todo un poco y viendo aplicaciones útiles encontré una aplicación para controlas la intensidad de la iluminación de la pantalla según tu zona horaria, la encontré en el blog de ubuntulife aquí, y como siempre como lo hice fue así, empiezas descargando el paquete así

root@localhost:~# wget -c https://secure.herf.org/flux/xflux.tgz

o desde este enlace, ya con el paquete hay lo descomprimes y copias el ejecutable en /usr/sbin/ lo cual lo haces así

root@localhost:~# tar zxf xflux.tgz

root@localhost:~# mv xflux /usr/sbin/

Ahora debes saber o el código postal (lo cual en latinoamericana no es muy común) o la latitud y altitud de tu posición, el cual la puedes encontrar fácilmente en esta URL http://stereopsis.com/flux/map.html para mi caso en Bogotá sería así


entonces ya tienes las coordenadas y lanzas el comando así

root@localhost:~# xflux -l 4.60,-74.08

entonces para que cuando se prenda el PC se ejecute el comando lo colocas en el archivo /etc/rc.local y listo

Monitor de Temperatura de CPU

Andres mi compañero se encontró un applet que te muestra la temperatura de tu CPU y de tus discos duros, es muy bueno y sencillo, el lo explico en su blog acá, pero como siempre yo lo coloco acá como lo hice.

Para medir la temperatura de los discos duros es con el siguiente comado

root@localhost:~# apt-get install hddtemp

Para la temperatura del procesador y de los demás, se debe instalar los otros sensores

root@localhost:~# apt-get install lm-sensors

listo ya con eso tienes los paquetes que se necesitan, ahora se debe configurar, lo cual se hace de la siguiente forma

root@localhost:~# sensors-detect sensord

Le das que yes a todo lo que desees monitorear, por defecto el te dice que la CPU y los discos duros, y listo ahora debes solo subir el applet los cuales son Monitor de CPU y Monitores de Temperatura, los cuales se ven por defecto así


Después le das click derecho a cada uno y los configuras así




















Una vez configuradas son


Bueno espero que les sirva

2009-11-06

VPN con el Administrador de Redes

Tras instalar el Ubuntu 9.10 Karmic Koala (me ha parecido muy bueno) me puse a buscar como hacer funcionar el Administrador de conexiones de Ubuntu, que como lo mostré en una entrada anterior no sabia como hacer funcionar el conector de VPN, esto para mi por mi trabajo es fundamental y pues es "feo" hacerlo por consola, entonces tocaba ver como usar el manejador.

Para eso leí en muchos blogs, en los manuales de Ubuntu y busque en varios sitios, por lo que no puedo dar una referencia única de donde lo saque, entonces a todos los que de una parte crean que copie si puede ser cierto, pero empecemos con la configuración, lo primero es bajar los paquetes del manejador que se necesitan, por consola es de la siguiente forma

root@localhost:~# apt-get install network-manager-openvpn network-manager-pptp network-manager-vpnc

Por el entorno gráfico en el nuevo manejador "Centro Software de Ubuntu" se busca vpn y se instalan los paquetes así


Una vez instalado se tiene que tener en cuenta que tengas permitido el forwarding habilitado esto lo tienes que cambiar en el siguiente archivo /etc/sysctl.conf y retirar el comentario de net.ipv4.ip_forward, lo que debe quedar así


Esto debe reiniciarse el sistema para que lo tome o si no quieres reiniciar debes dar el siguiente comando

root@localhost:~# echo 1 > /proc/sys/net/ipv4/ip_forward

Ahora se realiza la configuración gráfica en el manejador de redes en el sector de VPN, y los pasos son los siguientes, empiezas definiendo el cliente así

Colocas los archivos de configuración del cliente, para este caso se usaremos OpenVPN por lo que los archivos de configuración se ubican así


Y para las configuraciones avanzadas del sistema, le das avanzado y lo cuadras así


En momento de ejecutarlo lo haces así


Listo una vez conectado sale el candado encima de la conexión de red y listo.

2009-10-27

Control de Microfono en Ubuntu

En mi PC tengo instalado el skype y el micrófono me colocaba problemas, por lo que busque infinidad de soluciones y hasta en una de esas casi daño el kernel, todo por que el administrador de audio se veia así




Como se puede ver en los controles se ve el micrófono esta al máximo pero no funcionaba, ya habia revisado características que el modulo de la tarjeta estuviera bien y todo parecia estar bien, pero no funcionaba, entonces vi en preferencias un control que decia grabación como se ve en la siguiente imagen



Por lo que lo habilite, lo que genero otra pestaña en el control que decía Grabación y miren el control con el que viene




Si es lo que estan pensando, no se por que el Ubuntu biene con el sistema de entrada de audio apagado, es una cosa que aun no logro entender, pero si le habilitas hay y le subes y ya tienes microfono.

2009-10-26

Sincronizar Todos tus Marcadores de Navegación

Debido a que tanto en el PC de mi casa como en el de mi trabajo tengo muchos marcadores de las paginas que me sirven o de las que he encontrado información interesante, necesito tenerlas en todo lado, para esto gracias a Said mi compañero de trabajo conocí xmarks, una aplicación que te permite no solo tenerlas en tus PC's sino además vía web, la instalación es vía web ingresando a la siguiente url http://www.xmarks.com/ de hay bajas el instaldor para tu firefox o navegador que uses y sigues estos pasos




Inicio de la guia de instalación









Te pregunta si tienes o no cuenta, sino la tienes como en mi caso simplemente le indicas que no y sigues








Simplemente llenas lo parametros que te piden para crear la cuenta








Listo ya con eso el te pide reiniciar el firefox, y cunado reinicie te pide unos parámetros mas que son los que veremos a continuación







Tras haber reiniciado el Firefox



Te dice que si quieres que guarde tus contraseñas, yo particularmente le dijo que no, no me gusta que mis contraseñas estén por hay en otras maquinas que yo no controlo.







Empieza a sincronizar y a cargar tus datos








Listo terminaste








Ahora este procedimiento lo haces en cada PC que quieras meter dentro de tu sincronización y sale, espero que te sirva

2009-10-17

Creación y Control de Usuarios desde Consola

Muchas veces debes crear usuarios para una función o aplicación determinada pero no quieres que este usuario pueda hacer otras cosas, por ejemplo creas un usuario para un acceso a ftp pero no quieres que este usuario se pueda loguar al sistema por ssh, para esto en Linux existen los diferentes shell, que son como a los comando o aplicaciones que tu puedes usar, entonces para seguir con ejemplo del ftp vamos a ver como se crearia el usuario

root@localhost:~# adduser -g ftp -d /home/ftp/usuario -s /bin/false usuario

Con esto tenemos las siguientes características

-g Lo adicionamos a un grupo especifico, en este caso ftp
-d Le indicamos que directorio queremos que use y no que nos cree uno.
-s Le decimos que shell va a usar para que no nos asigne el de por defecto

Entonces para el control de que deseamos que se pueda o no hacer para cada usuario lo fundamental es saber que shell le asignamos, en Linux los shell que tienes disponibles son

/sbin/nologin, programa que de forma cortés rechaza el ingreso en el sistema (login).

/bin/false, programa que realiza salida inmediata indicando falla. Es decir, que no permite la realización de cosa alguna y además con falla. Ideal si se quiere tener cuentas de usuario con acceso hacia FTP, correo, Samba, etc., aunque sin permitir el acceso hacia un intérprete de mandatos.

/dev/null, el dispositivo nulo que descarta todos los datos escritos sobre éste y no provee datos para cualquier proceso que lo lea. Ideal para definirse cuando se quiere utilizar una cuenta que sólo tenga acceso a correo (SMTP, POP3, IMAP y/o cliente de correo con interfaz HTTP).

/bin/bash, intérprete de mandatos desarrollado por el proyecto GNU. Es el intérprete de mandatos predefinido en Linux y Mac OS X (a partir de Tiger).

/bin/sh, un enlace simbólico que apunta hacia /bin/bash y ofrece una versión simplificada de Bash muy similar a Bourne Shell (sh).

/bin/tcsh, una versión mejorada del de mandatos de C (csh).

Estas características de los shell las saque de un excelente libro llamado Alcance Libre, escrito por el señor Joel Barrios, es excelente y existe en versión digital solo deben buscarlo se los recomiendo.

Bueno entonces ya sabiendo eso decides segun tus necesidades cual le asignas a acá usuario, pero tiene un pequeña trampita para que funcionen como deseas, la trampita esta en que te tienes que fijar que esten en el archivo /etc/shells, por defecto en Ubuntu viene así

root@localhost:~# more /etc/shells
# /etc/shells: valid login shells
/bin/csh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/usr/bin/screen
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/false


Entonces revisas que este hay y listo, espero que les sirva

2009-10-16

Caracteristicas de Hardware de tu PC

Una forma de saber que puedes o no puedes hacer en cualquier sistema operativo es conocer exactamente que tiene tu PC en cuanto al hardware, y Linux como siempre te facilita el trabajo, con un simple comando te genera en formato html la información completa, esto es super útil para en una red tener todos los informes listos para presentar.

Bueno por defecto en Ubuntu 9.04 viene instalado, pero si no lo tienes la forma de instalarlo es

root@localhost:~# apt-get install lshw

Una vez instalado y solo como root, o con sudo lo ejecutas así si solo deseas ver la información

root@localhost:~# lshw

pero si deseas guardar la información en html y que la puedas ver en el navegador es sencillo solo es colocar

root@localhost:~# lshw -html > hwpc.html

Lo que te generara un archivo que con mozilla se ve así

2009-10-13

Paginas https con Certificados Propios

Debido a mi trabajo aprendí como crear los certificados SSL para las paginas https, esto lo hice siguiendo este buen manual sobre CentOS (distribución basada en redhat, muy buena para servidores). Obviamente como la explicación esta echa para este sabor tube que realizar ciertas pero diminutas variaciones, así que pues empecemos eso advierto es largo, un poco tedioso y sobre todo de mucho cuidado de lo que se esta haciendo, lo primero es saber si tienes el openssl actualizado e instalado, el cual se prueba así

root@localhost:~# openssl version
OpenSSL 0.9.8g 19 Oct 2007

Una vez echo esto crearemos los directorios donde guardaremos los datos del certificado, por defecto estos directorios se guardan con el nombre de CA pero la verdad puedes usar el nombre que desees, ya entenderas porque, ara nuestro ejemplo todo lo crearemos sobre el directorio de /etc/ssl/, pues me pareceque es el lugar mas apropiado para guardar el orden pero lo puedes colcoar donde quieras siempre y cuando sepas donde esta, entonces creas los 3 diretorios que necesitas así

root@localhost:/etc/ssl# mkdir CA
root@localhost:/etc/ssl# mkdir CA/certificados
root@localhost:/etc/ssl# mkdir CA/privado

sobre este mismo directorio se deben crear dos archivos que se usan en la base de datos para la creación de llaves, estos se crean así

root@localhost:CA# echo 01 > serial
root@localhost:CA# touch index.txt

Bueno ya tenemos los prerequisitos listos, entonces ahora toca cuadrar los parámetros de openssl.cnf, estos son docenas de parámetros pero pues no todos son completamente necesarios o mas bien para nuestro caso útiles, acá les muestros los parámetros que modifique y les muestro como los deje

dir = /etc/ssl/CA # ubicación del directorio
certs = $dir/certificados # donde se guardaran los certificados

crl_dir = $dir/privado # donde se guardan los crl
database = $dir/index.txt # Archivo index de la base de datos

countryName_default = CO # Id por defecto del país mi caso Colombia

stateOrProvinceName_default = Bogota DC # Nombre de la ciudad

localityName_default = Bogota # Nombre por defecto de la localidad

0.organizationName_default = Diego Samuel Ltd # Nombre por defecto de la organización

emailAddress_default = diego@samuel.com # Correo de contacto por defecto


Bueno iniciaremos con el proceso de la creación del certificado raiz, el cual nos permitira la autoridad para firmar los certificados CA que crearemos, para esto se tiene que tener en ceunta que lo primero que se solicitara es el passphrase o frase de contraseña, la cual debe ser bastante compleja, de mas de 10 caracteres con mayusculas, minusculas, numeros, simbolos y espacios, como ejemplo yo usare la siguiente

E1 fu7uR0 d31 Pl4net4 3$ta en TI

Bueno ahora ya con eso en la cabeza y claro que es la que vas a tener que saber y aprender, enviamos el comando para crear el certificado de la siguiente forma

root@localhost:/etc/ssl/CA# openssl req -x509 -newkey rsa:2048 -keyout privado/cakey.pem -out cacert.pem -days 3650 -config /etc/ssl/openssl.cnf

Esto nos generara la siguiente salida que si se fijan es lo que habíamos configurado

Generating a 1024 bit RSA private key
..............++++++ ......................++++++
writing new private key to 'privado/cakey.pem'

Enter PEM pass phrase:

Verifying - Enter PEM pass phrase:
----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----
Country Name (2 letter code) [CO]:
State or Province Name (full name) [Bogota DC]:
Locality Name (eg, city) [Bogota]:

Organization Name (eg, company) [Diego Samuel Ltd]:

Organizational Unit Name (eg, section) []:infraestructura
Common Name (eg, YOUR name) []:server.diegosamuel.com
Email Address [diego@samuel.com]


Ahora entenderemos lo que se hizo en el comando, por que la intensión es aprender no copiar, los parámetros de comando son los siguientes

req -new x509 = Administrador de requerimientos de firma para certificados x509, en este caso es un certificado autofirmado

keyout = Ubicación y nombre donde quedara la llave privada, por defecto se usa cakey.pem, pero en realidad puedes usar cualquier nombre siempre y cuando te acuerdes de cambiarlo en el openssl.cnf

out = Ubicación y nombre donde quedara el certificado ra, por defecto se usa cacert.pem, pero en realidad puedes usar cualquier nombre siempre y cuando te acuerdes de cambiarlo en el openssl.cnf

days = Número de días valido de la llave, para el caso 10 años

config = Ubicación del archivo de configuración a usar


Bueno ahora vamos a crear la llave privada, una solicitud de certificado y auto firmar dicha solicitud, todo esto lo hacemos en Linux con un comando el cual es el siguiente

root@localhost:/etc/ssl# openssl genrsa -des3 -out diegocert.pem -config /etc/ssl/openssl.cnf -passout pass:E1\ fu7uR0\ d31\ Pl4net4\ 3$ta\ en\ TI

Lo cual te genera lo siguiente como respuesta

Generating a 1024 bit RSA private key
.............++++++ ...............++++++ writing new private key to 'privkey.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [CO]:
State or Province Name (full name) [Bogota DC]:
Locality Name (eg, city) [Bogota]:

Organization Name (eg, company) [Diego Samuel Ltd]:

Organizational Unit Name (eg, section) []:infraestructura
Common Name (eg, YOUR name) []:server.diegosamuel.com
Email Address [diego@samuel.com]


Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

En el Common Name que se pregunta se debe colocar el FQDN o nombre de la maquina propiamente, en este caso que es inventado se coloco www.diegosamuel.com pero debes colocar el nombre de la maquina donde va a quedar este certificado, este proceso nos genera archivos el requerimiento de firma del certificado y la llave privada, que son los respectivamente diegocert.pem y privkey.pem, los nombres pueden variar pero tiene que tener en cuenta como los colocaron siempre para cambiar los archivos de configuración.

Bueno en este momento tenemos que hacer el requerimiento del certificado para que sea firmado por la autoridad certificadora que para el caso seremos nosotros mismos, por lo cual procederemos a realizar a continuación con un comando

root@localhost:/etc/ssl# openssl req -new -subj"/DC=diegosamuel.com/OU=com/CN=diegosamuel" -key diegocert.pem -passin pass:E1\ fu7uR0\ d31\ Pl4net4\ 3$ta\ en\ TI -out pet-cert-diego.pem -config /etc/ssl/openssl.cnf

Los parámetros que usamos en este comando sirven cada uno para lo siguiente

req -new = Indicamos que es una petición nueva y con parámetros

subj = Nos permite indicar a quien le pertenece el certificado, por eso se usan las comillas y los separadores /, donde se debn usar los datos de cada uno de ustedes

key = Indica la llave privada que usaremos

passin = La contraseña de la llave

out = Donde quedara guardada la petición


Bueno ya podemos emitir el certificado, para esto vamos a hacer una modificación mas en el archivo de configuración de openssl.cnf , que se encuentra en /etc/ssl y con un editor (vi usualmente), buscamos estas lineas y las dejamos así

basicConstraints = critical,CA:FALSE
extendedKeyUsage = serverAuth

Listo ahora si hacemos el certificado con el siguiente comando

root@localhost:/etc/ssl/CA# openssl x509 -CA cacert.pem -CAkey key.pem -req -in pet-cert-diego.pem -config /etc/ssl/openssl.cnf -days 3650 -sha1 -CAcreateserial -out certdiegosa.pem

Los parámetros son los mismos que anteriormente hemos visto y usado, el unico diferente es sha1, ya que este es el algoritmo de cifrado que usaremos, podemos usar sha 128 pero ya es mucho con sha1 es suficiente.

Bueno de todos los archivos creados tenemos que pasar los dos archivos que realmenten nos interesan a un directorio mas apropiado así

root@localhost:/etc/ssl/CA# cp -a certdiegosa.pem /etc/apache2/ssl
root@localhost:/etc/ssl/CA# cp -a diegocert.pem /etc/apache2/ssl

Y tenemos los certificados listos, ahora la configuración del apache para que sean usados correctamente, se deben adicionar las siguientes lineas en el ports.conf

listen 80
listen 443

Y en la configuración del VirtualHost sería así


DocumentRoot /var/www/diegosamuel
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/certdiegosa.pem
SSLCertificateKeyFile /etc/apache2/ssl/diegocert.pem
ServerName www.diegosamuel.com

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all



Bueno queda reiniciar el servicio y acá se presentara un pequeño inconveniente el cual resolvemos de una forma algo machetera, pero que te evitara problemas cuando se te reinicie la maquina y no estes hay para colocar la contraseña que te pide, entonces en /etc/sites-avaliables/default, y fuera de cualquier vitualhost colocas la siguiente línea

SSLPassPhraseDialog exec:/etc/apache2/clave

y ahora creamos ese "script" para que incerte la contraseña de la siguiente forma

root@localhost:~# vi /etc/apache2/clave

#!/bin/bash
echo
"E1 fu7uR0 d31 Pl4net4 3$ta en TI"


Y le damos permisos de ejecución para el propietario y solo para el propietario así

root@localhost:~# chmod 700 /etc/apache2/clave

Bueno listo con este tenemos el https listo con nuestro propio certificado

2009-09-27

Unir PDF's en Linux

Mi novia necesitaba escanear unas hojas y enviarlas en PDF, yo sabia como pasaras a PDF pero como unirlas en un solo archivo la verdad no tenia ni idea, entonces como siempre le pregunte a SanGoogle y todo salío fácilisimo, como me parece un dato muy bueno lo coloco acá aunque en realidad hay muchos blogs donde lo explican detalladamente.

Lo primero es como lo instalamos, lo cual se hace de la siguiente forma

root@localhost:~# apt-get install pdftk

Ahora como usarlo, para esto puedes ver mas detalladamente el man pdftk, pero acá les mostrare los usos más significativos, empezare con el que me llevo a conocer esto, que es el unir varios pdf en uno solo

root@localhost:~# pdftk archivo1.pdf archvio2.pdf output definitivo.pdf

Ahora para sacar solo las paginas que nos interesan de un PDF

root@localhost:~# pdftk origen.pdf cat 1-12 14 16 18 definitivo.pdf

Hay tendriamos un pdf con las paginas de la 1 a la 12 mas las paginas 14,16 y 18 en el nuevo archivo, en el siguiente ejemplo veremos como asignarle permisos al PDF, tales como impresión, impresión en baja calidad y otros, así

root@localhost:~# pdftk origen.pdf allow "permiso" output definitivo.pdf

Los permisos basicos son:

Printing : Impresión en optima calidad
DegradedPrinting : Impresión en baja calidad
ModifyContents : Permitir modificaciones de contenido
CopyContents : Permitir copias de hojas individuales

Adicionalmente puedes ponerle contraseña al PDF de resultado así

root@localhost:~# pdftk origen.pdf user_pw "contraseña" output definitivo.pdf

Bueno espero que les sirva, me parecio muy útil y mi novia esta feliz

Manejo de Procesos

En Linux los procesos se ejecutan de dos formas, en underground o en background, la primera forma indica que es el proceso que se ejecuta normalmente y que tu puedes visualizar ejecutándose en la consola o en la panatalla, el segundo es cuando un proceso se ejecuta internamente pero que ni se visualiza o que el administrador lo envia a ejecturse sin ser visto.

Obviamente y como todo en Linux nosotros podemos no solo determinar que procesos tenemos ejecutándose underground sino en background también además de poder decidir cambiar el método de ejecución cuando deseemos, inicialmente vamos a ver como se pasa un proceso a background.

Este se hace cuando necesitas dejar por ejemplo una sincronización entre dos maquinas, este proceso puede ser tedioso verlo o no te permitiria apagar tu mauqiuna si tu lo estas enviando remoto, entonces hay dos formas la primera es escribir el comando en consola y colocarle al final el simbolo de ampersan &, que es algo así

root@localhost:~# for i in $(ls /direc);do rm -rf $i ; done &

Este comando borara uno a uno el contenido de direc (que puede ser larguisimo y no nos permite borrarlo directamente) haciendolo en background, y así puedes seguir trabajando en la consola sin problemas. El segundo método es cuando lo tienes que enviar y ya decides pasarlo a background, para esto se realiza en dos sencillos pasos, el primero es que cuando estes ejecuntando el comando le das la combinaciń de teclas Ctrl+Z, una vez se vea el simbolo del bash escribes bg y listo el comando ha pasado a background, gráficamente se ve algo como esto

root@localhost:~# for i in $(ls /direc);do rm -rf $i ; done
rm -rf /direc/prueba1
[1]+Stopped for i in $(ls /direc);do rm -rf $i ; done <--- Momento en que se da Ctrl+Z
root@localhost:~# bg
root@localhost:~#

Ahora una cosa muy útil es saber que rocesos tienes en background, pra esto en Linux existe un comado llamado jobs que nos muestra la lista de procesos que estan ejecutándose o detenidos en background, visualmente es de la siguiente forma

root@localhost:~# jobs
[1]+Running for i in $(ls /direc);do rm -rf $i ; done
[2]+Stopped rsync -pavz -progress /direc ns.destino.com:/root

Como ven en el ejemplo existen dos procesos uno en ejecudion y el otro detenido, si desean eliminar alguno de los dos es simplemente dar el siguiente comando

root@localhost:~# kill %2

En este caso 2 por que es el identificador del que deseo eliminar

2009-09-20

Monitoreo de Trafico

Existen muchas formas de monitorear el tráfico en una tarjeta especifica en tiempo real, todas tienen sus cosas buenas y sus cosas malas, algunas de ellas son iptraf, tcpdump y la les mostrare hoy IFTOP, este es un monitor que como su nombre lo indica la salida es tipo top por lo que es en tiempo real y con una salida bastante clara como se puede ver en la siguiente imagen


Bueno para instalarlo como siempre es bastante sencillo en nuestro Debian o Ubuntu, de la siguiente forma

root@localhost:~# apt-get install iftop

bueno una vez instalado veremos como lo podemos usar, el comando es solo iftop pero las opciones que nos permite son las que nos interesan y son las siguientes

-n No resolver el DNS de las conexiones, nos muestra la IP de la conexión
-p Ejecutarse en modo promiscuo, para ver todo el tráfico del segmento de red
-b No mostrar la barra de tráfico, barra superior.
-i Interface a ser monitoreada
-f Te permite realizar filtros de tráfico IP, similares a los que se pueden usar con tcpdump, se deben colocar entre comillas para que se ejecute
-B Muestra las conexiones en Bytes
-N Muestra el numero del puerto y no su respestivo servicio.
-P Permite habilitar la función que se muestre o no el puerto de la conexión
-F Te permite trar el flujo de tráfico de una única red, es muy útil si tienes un sistema que te funcione como enrutador, o para ver el trafico de un segmento especifico.


Estas son las opciones que como puedes ver nos dan grandes alternativas para manejar un monitoreo mas preciso de nuestro tráfico, a continuación les mostrare unos ejemplo de como usar el comando y su respectiva salida.


root@localhost:~# iftop







root@localhost:~# iftop -npNP





root@localhost:~# iftop -npB -f "port 80"






root@localhost:~# iftop -npNPB -F 192.168.1.64/26





Por último explicaremos un poco lo que se ve en la salida del comando, en la parte superior sale una barra (a menos que le des la opción "b") donde te muestra el uso del canal en bits o en Bytes según la opción que le diste.

Después de eso se ven las muestras de flujo de tráfico, con el siguiente orden

ip_origen:puerto_origen => ip_destino:puerto_destino valor1 valor2 valor3

Los valores son las muestras de tráfico hace 2 segundos, hace 10 segundos y hace 40 segundos respectivamente, así te puedes saber el histórico del consumo, y la flecha te indica la dirección del flujo de información.

En la parte inferior se ve la barra de estadísticas donde se puede ver el promedio, los picos y las ratas actuales de tráfico entrante (Rx), saliente (Tx) y el total.