Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

martes, 20 de diciembre de 2011

Villancico Linuxero



Info:http://www.goear.com/listen/9de84af/villancico-linuxero-panico-en-el-nucleo

domingo, 12 de junio de 2011

Cómo instalar una tableta Wacom Bamboo Pen en Ubuntu

wacom+ubuntu
Hoy me estreno en MuyLinux como colaborador, y para empezar he decidido mostraros cómo instalar la tableta gráfica Wacom Bamboo Pen, que me compré no hace mucho, y no he conseguido hacerla funcionar hasta hace bien poco, que la encontré en un foro en inglés.
Vamos a empezar descargándonos e instalándonos los paquetes necesarios desde el repositorio de Ubuntu:
sudo apt-get install build-essential libx11-dev libxi-dev 
x11proto-input-dev xserver-xorg-dev 
tk8.4-dev tcl8.4-dev libncurses5-dev
Ahora nos descargamos el paquete de drivers de Linux Wacom:
wget http://downloads.sourceforge.net/project/linuxwacom/linuxwacom/0.8.8-4/linuxwacom-0.8.8-4.tar.bz2?use_mirror=ovh&80825451
Y ahora lo extraemos, y lo compilamos, de una manera un poquito especial, y luego, al final activamos el módulo de Wacom.
tar -xf linuxwacom-0.8.6-2.tar.bz2
cd linuxwacom-0.8.6-2
./configure --enable-wacom
cd src/2.6.30
make
sudo cp wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/
sudo rmmod wacom
sudo modprobe wacom
¡Y ya lo tendremos todo listo!
Si queremos, también podemos usar este script para ahorrarnos mucho trabajo. Si no funciona, podemos probar con este otro. Simplemente hay que ejecutarlo como administrador en una terminal:
sudo ./instalar.sh
Lo que hará que precisamente se ejecuten las tareas necesarias para que esta tableta gráfica funcione sin problemas en nuestros sistemas Linux.

Fuente: muylinux

Prográmate tu primera GUI en GNOME/GTK+


La interfaz gráfica de usuario, GUI (del inglés graphical user interface) es un programa informático que actúa deinterfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina.
 
Imagen-4
Hola a todos chicos, ¿Cómo estais estos días de verano? Hoy os traigo un post que va dirigido a los desarrolladores novatos que quieran animarse a programar aplicaciones para GNU/Linux.
Si bien es cierto que hay aplicaciones por línea de comandos muy útiles tales como el comando find, wget, o uno al que diremos adiós en la próxima versión de Ubuntu (aptitude), la verdad es que el mundo del escritorio está basado en las GUIs o interfaces gráficas de usuario y es en estas últimas donde haremos una incursión en este artículo.
Para esta pequeña y rápida introducción haremos uso del lenguaje Python básicamente por su facilidad de entender/escribir, su amplia disponibilidad en entornos Linux y porque considero que es un lenguaje bastante acertado para empezar con esto de la programación.
También usaremos la herramienta Glade para generar el archivo XML que será nuestra bonita interfaz de usuario. Python ya debería estar instalado en vuestro sistema por defecto, y necesitaremos instalar las librerías de desarrollo para GTK+/PyGTK que encontraremos en nuestro gestor de paquetes preferido, normalmente con los nombres python-gtk2 y python-gtk2-dev. En el mismo gestor de paquete buscaremos también el diseñador de interfaces Glade, con el que generaremos la interfaz. Como veis, los preparativos son casi nulos y muy fáciles de cumplir.
Y ahora vamos al meollo. Como esto pretende ser una introducción bastante por encima, el ejemplo será sencillo y constará de una ventana con dos botones. Uno imprimirá el mensaje “Hola, esto es un ejemplo” en la terminal al ser pulsado, y el segundo cerrará la aplicación.
Empezaremos abriendo Glade, el cual nos recibirá con dos ventanas, la principal donde diseñaremos la interfaz, y un diálogo de preferencias sobre el proyecto que para nuestro objetivo podremos dejar tal y como vemos en la imagen de más abajo. Ahora si que si empezamos, seleccionando el widget Ventana en la categoría Niveles superiores en la “barra de herramientas” de la izquierda.
Imagen-1
Esto creará un contenedor que será el padre de todos los demás widgets que usemos, es decir, será nuestra ventana de la aplicación. En las propiedades de la ventana (a la derecha de la aplicación) nos vamos a la pestaña Señales, y desplegando la opción GtkObject uniremos la señal destroy al manipulador gtk_main_quit. Esto lo que hará será que la aplicación sea “cerrable” sin necesidad de cerrar también la terminal que lo ejecute.
Imagen-2
Vamos a añadir nuestros botonacos. Seleccionamos el widget Botonera horizontal en la categoría de Contenedores, y hacemos click dentro de nuestra ventana, lo que hará surgir un nuevo diálogo que nos pregunta cuantos elementos queremos mostrar, así que escribimos 2 y aceptamos. Aparecerá, efectivamente, un contenedor con espacio para dos botones, así que sin perder mucho tiempo seleccionamos el widget Botón en la categoría Control y exhibición, y damos un click en cada “agujero” del contenedor.
Seleccionando cada botón haciendo click sobre ellos, nos fijaremos de nuevo en sus propiedades. En la pestaña General yo he modificado la etiqueta o texto que mostrará cada botón pero lo podéis poner a vuestro gusto. Y de nuevo, en la pestaña de señales, conectaremos la señal clicked del primer botón al manipulador on_button1_clicked, aprovechando que ya viene en la lista de opciones predeterminadas.
Luego, en nuestro código, crearemos una función del mismo nombre, que será ejecutada cuando el botón envíe la señal clicked (Estas funciones se llaman retrollamadas). Para el segundo botón, conectaremos la misma señal al manipulador gtk_main_quit al igual que hicimos con la ventana.
Tened en cuenta que cada señal, al enviarse, ejecutará una función o retrollamada que tendrá que tener el nombre del manipulador que habéis especificado. Bueno, una vez hecho esto ya tenemos nuestra modesta interfaz, así que guardaremos el archivo con cualquier nombre que queramos.
Imagen-3
Ahora viene el turno de la programación, y es que usando Python y PyGTK lo tenemos muy fácil, tanto que es casi mágico de lo sencillo que resulta. Prefiero pegaros el código “pelado” pues con comentarios y demás anotaciones esto se alargaría en exceso. Nuestro archivo tutorial.py quedaría de la siguiente manera:
#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk

class HelloWorld:

    def on_button1_clicked(self, widget, data=None):
        print 'Hola MuyLinux, esto es un ejemplo usando Glade y PyGTK'

    def gtk_main_quit(self, widget, data=None):
        gtk.main_quit()
        return False

    def __init__(self):
        builder = gtk.Builder()
        builder.add_from_file("tutorial.glade")
        self.window = builder.get_object("window1")
        builder.connect_signals(self)
        self.window.show()

def main():
    gtk.main()

if __name__=='__main__':
    h = HelloWorld()
    main()
Este archivo lo guardamos en la misma ubicación que nuestro archivo glade y para lanzarlo basta con abrir una terminal, movernos hasta la ubicación de ambos archivos y ejecutar lo siguiente:
python nombre_del_archivo.py
Lo que nos mostrará una pequeña ventana con dos botones, justo como la que hemos creado anteriormente.
Y hasta aquí llega esta pequeña introducción a la programación con GUIs sobre GNOME/GTK+. Espero que os haya gustado/servido y pronto espero hacer algo similar pero usando Qt para desarrollar aplicaciones gráficas sobre KDE ;).
Recordad que si quereis información más avanzada y una descripción completa de cada widget y función, siempre podeis acudir a la web de PyGTK o a la del proyecto GTK+ directamente. Sin mucho más que decir, un saludo y hasta la próxima muchachos.
Ah, por cierto, podeis bajaros tanto el archivo tutorial.glade como tutorial.py que he utilizado yo desde aquí.

Fuente: muylinux

Crea menús para tus DVD con DeVeDe

Share/Save/Bookmark
dvd-grabacionDeVeDe es una excelente aplicación que nos permite crear menús para nuestras colecciones de vídeos. De este modo, al introducir el disco DVD en nuestro lector de sobremesa podremos ver (y oír) algo más que los archivos grabados. En el siguiente tutorial encontraréis cómo usar DeVeDe para crear un menú de selección de archivos de vídeo. Algo sencillo, como veréis.


DeVeDe se encuentra en los repositorios de muchas distribuciones. Si no es vuestro caso, podéis descargarlo desde la web oficial del programa: rastersoft.com.
Una vez instalado DeVeDe, lo ejecutamos para encontrarnos con la siguiente ventana de opciones:
devede1
En este caso, elegimos la primera opción, Vídeo DVD.
Lo siguiente que encontraremos es la interfaz principal del programa, con todas las opciones disponibles para la construcción de nuestro menú.
devede1
(Clic para ampliar)
Para empezar, elegimos el tamaño del DVD que deseemos. En este ejemplo, elegimos un DVD de 4,7 GB en Tamaño del disco.
Para este ejemplo, realizaremos un menú que recoja el acceso a varios episodios de una serie. Para ello, empezaremos por dirigirnos al espacio de Títulos (arriba a la izquierda); seleccionamos el Título 1 y clicamos en Propiedades. Encontraremos la siguiente ventana de opciones:
devede1
En la casilla Nombre del título debemos escribir el nombre del primer capítulo o episodio de nuestro conjunto de vídeos. En este caso, como decíamos, se trata de un menú de opciones entre varios episodios de una serie. Por ello, nos limitamos a escribir Episodio 1. Obviamente, esto punto queda a total discreción del usuario. Las opciones que se encuentran debajo deben también ser elegidas por el usuario; en este caso, dejo marcada la que viene por defecto.
Elegido el título, clicamos en Aceptar y luego nos dirigimos a la ventana de Archivos (arriba a la derecha), en la interfaz principal del programa. Clicamos en Añadir para encontrarnos lo siguiente:
devede1
(Clic para ampliar)
Desplegamos las Opciones avanzadas (abajo) porque es probable que las usemos. Clicamos en la pestaña Archivo para elegir un archivo de vídeo, que será el que se reproducirá al pulsar en el título del primer episodio que hemos asignado en el paso anterior. Al elegirlo, nos encontraremos con lo siguiente:
devede1
(Clic para ampliar)
Debemos estar atentos a lo que veis marcado y señalado en rojo. Las tasas de vídeo y audio deberían coincidir para que el tamaño del vídeo resultante no ocupe demasiado espacio en nuestro DVD.
Debemos realizar los mismos pasos realizados para cada uno de los capítulos de nuestro DVD final, es decir, asignar un título a cada vídeo y luego, elegir el vídeo que llevará ese nombre.
Cuando nuestro DVD esté casi lleno, en la interfaz principal del programa, clicamos en Opciones del menú para encontrarnos lo siguiente:
devede1
(Clic para ampliar)
Son las opciones que vemos arriba las que debemos manejar para dar un aspecto final a nuestro menú. Como vemos, podemos asignar un título al menú (o no), insertar un archivo de audio para que suene mientras los telespectadores elijan un episodio o archivo de vídeo, una imagen de fondo para el menú (en formato .png) elegir un tipo de fuente para las opciones de menú, su color, sombra, color y opacidad del fondo, etc. Como imaginaréis, esto también queda a gusto del consumidor.
Una vez acabado ese paso, clicamos en Aceptar para volver a la interfaz principal del programa. Ahí, debemos clicar en Ajustar el espacio ocupado en disco y, al desplegar las Opciones avanzadas, marcar la casilla que deseemos. En mi caso, al contar con un procesador multinúcleo, marco la casilla Usar optimizaciones para CPUs multinúcleo y, en las opciones de acción, marco la casilla Crear una imagen ISO
Al finalizar eso, sólo nos queda clicar en Aceptar y nos encontraremos con la siguiente ventana de opciones:
devede1
Elegimos un lugar donde se depositará la imagen .iso resultante y un nombre para ella.
C’est fini! lol ¡ Ya tenemos nuestro primer menú de DVD!
menu-devede

Fuente: linuxzone

Cómo ejecutar programas implementados en .NET en Linux con Mono

MonoCuando el otro día hablábamos de cómo ejecutar un programa Windows sobre Linux con Wine, nos preguntaron por los programas que están implementados con .NET, que por cierto cada día son más en plataformas Windows.
Desde estas líneas os recuerdo que al igual que Java, .NET es una plataforma pensada para tener un carácter multiplataforma (aunque en la realidad el grado de compatibilidad es mucho menor) por lo que con una máquina virtual que soporte la ejecución de dicho programa a priori no habría problema.
¿Existe un entorno de ejecución de .NET en Linux? Sí que existe, es Software Libre y es uno de los proyectos libres que más me interesan (por suerte o por desgracia trabajo a diario con entornos .NET en mi trabajo). Hablamos del Proyecto Mono y he de deciros que es uno de los proyectos más polémicos de todo el universo libre por razones de cercanía a Microsoft.

Ejecución
Un ejecutable creado con .NET para plataformas de escritorio podemos ejecutarlo directamente desde la consola con la siguiente orden:
$ mono fichero.exe
Tendremos que tener instalado el entorno de ejecución de Mono (normalmente llamado mono-runtime si queréis buscarlo en vuestro gestor de paquetes).
Es muy posible que el instalador del programa que queremos ejecutar no esté implementado en Mono, por lo que habría que seguir dos pasos:
  1. Ejecutar el instalador con Wine
  2. Buscar la ruta dónde se ha instalado y ejecutarlo con Mono. Os doy un consejo, mirar en vuestro directorio home la carpeta “.wine”, dentro de ella “drive_c” y ahí “Archivos de programa”, al más puro estilo Windows.
En ese directorio: $HOME/.wine/drive_c tendréis una emulación del disco principal del sistema imitado por Wine.

Fuente: linuxhispano

Ejecutar un programa Windows en Ubuntu con Wine

wine logo
En ocasiones en las que nos es imposible encontrar una alternativa para Linux decente o porque directamente tenemos la necesidad de usar un programa compilado para Windows, tenemos que hacer uso de Wine, ese proyecto de Software Libre que para mí al menos es pura magia y nos permite la ejecución de programas de sistemas Windows en nuestros equipos. Cada día son más las aplicaciones que ejecutan sin ningún tipo de problema así que cada día este proyecto es más exitoso.

Aunque en este post en la entrada pongo expresamente en Ubuntu, perfectamente podría titularse Ejecutar un programa Windows en Linux con Wine porque los pasos son siempre prácticamente los mismos. Veamos dos métodos desde la interfaz gráfica del escritorio y desde el intérprete de comandos.
Requisitos
Debemos tener instalado Wine, en caso de no tenerlo, desde la consola escribimos sudo apt-get install wine o con Synaptic elegimos el paquete e instalamos.
Desde la interfaz gráfica
Antes de ejecutar el programa deberemos darle permisos de ejecución, para ello:
  1. Clic derecho sobre el fichero .exe y nos dirigimos a “Propiedades”.
  2. Dentro de “Propiedades” buscamos “Permisos” y activamos “Permitir ejecutar el archivo como un programa” (en la parte baja del formulario).
Una vez ya tiene permisos de ejecución, volvemos a hacer clic derecho sobre el programa y elegimos “Abrir con Wine Cargador de programas de Windows”. La ejecución comenzará.
Desde la terminal
Para darle permisos de ejecución deberemos hacer lo siguiente:
$ chmod u+x fichero.exe
Una vez tenga los permisos correctamente podemos ejecutarlo:
$ wine fichero.exe

Fuente: linuxhispano

Cómo leer particiones ext3 y ext4 desde Windows 7

ext4windows
Muchos sois usuarios de sistemas duales en los que combináis vuestra distribución de Linux con una partición dedicada a Windows. Hasta no hace mucho no era complicado acceder a todas las particiones desde Windows o desde Linux.
En el caso de Windows existían utilidades para dar soporte a sistemas de ficheros como ext2 o ReiserFS (¿quién se acuerda ya de ReiserFS?), mientras que hace mucho que Linux da soporte a los sistemas de ficheros nativos de Windows.
Sin embargo la cosa se complicó ligeramente con la aparición de ext3 y sobre todo de ext4, sistemas de ficheros que han mejorado de forma notable el comportamiento de nuestras particiones Linux pero que no estaban soportados por Windows… hasta hace poco.
Para solucionarlo llega precisamente Ext2Read -mala elección de nombre, desde luego-, una aplicación que da acceso a particiones ext2, ext3 y ext4 desde Windows 7 y que además da soporte a los estándares LVM2 y a los llamados “extents” de ext4.
En UbuntuGeek nos hablan de esta utilidad y también de Ext2Fsd, un controlador para el sistema de ficheros ext2 -y que también soporta ext3 y ext4-, y que está disponible para Windows 2000, Windows XP y Windows Vista, así que si estáis en cualquiera de estos casos, podréis acceder a vuestras particiones de Linux sin problemas.
Ahora la pregunta es, ¿qué pasa con las particiones Btrfs, cada vez más de moda? No he visto nada que permita acceder a particiones Btrfs desde Windows, así que seguiremos esperando, pero desde luego, si conocéis alguna utilidad al respecto, comentad, comentad.

Fuente: muylinux

Linux. Cambiar la posición de los botones desde Nautilus

mwbuttons
Aún mejor que lo que comente en Cambiar la posicion de los botones desde Nautilus utilizando esta vez mwbuttons.
Creamos el siguiente script:

1 #!/bin/bash
2 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
3 # Cambiar posicion botones con mwbuttons como accion de Nautilus Scripts
4 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
5 wget http://launchpad.net/mwbuttons/trunk/v0.2/+download/mwbuttons
6 #chmod +x mwbuttons
7 cp mwbuttons "Cambiar posicion botones"
8 chmod +x Cambiar*
9 cp Cambiar\ posicion\ botones $HOME/.gnome2/nautilus-scripts/
Lo que hace es descargars mwbuttons, dar permisos de ejecución y copiarlo en .gnome2/nautilus-scripts con el nombre “Cambiar posicion botones”, asi ya tenemos disponible una acción nueva de Nautilus Scripts > Cambiar posición botones que nos permite cambiar estos a la derecha, a la izquierda o de manera personalizada.
Si no quieres ejecutar el script anterior, tambien puedes instalar mwbuttons desde PPA:
sudo add-apt-repository ppa:pabluk/ppa
sudo aptitude update
sudo aptitude install mwbuttons

Y ejecutarlo con Alt+F2 , “mwbuttons”

Fuente: ubuntulife

Construye tu propio cluster

Construye tu propio clusterSeguimos con las curiosidades. En este caso, con la construcción de un sistema cluster “casero”. Un cluster es un conjunto de sistemas que funcionan como si de una sola computadora se tratase. ¿Cómo construir tu propio cluster sin hacer frente a un dispendio económico descomunal? En el blog obscuredclarity nos muestran cómo, con un poco de imaginación y conocimientos, sistemas GNU/Linux y un poco de bricolaje, se puede construir una red conjunta de sistemas sin desembolsar mucho dinero.
Obviamente, no todo el mundo necesita reunir tanta potencia para los quehaceres informáticos diarios pero si debemos llevar a cabo habitualmente tareas que demanden mucha potencia de cálculo, un cluster puede resultar una solución óptima.
¿Cuánto puede costar un cluster? ¿Miles y miles de euros? Quizás, pero en obscuredclarity “sólo” han desembolsado 2.550,11 dólares para montarlo. Al cambio actual, no llega a los 1.900 euros. Veamos:
armario-cluster
Componentes:
(x1) Archivador de Ikea: $29.99
(x6) BioStar TForce TA780G M2+ Motherboard: $79.99
(x6) AMD Phenom X4 9850 Black CPU: $169.00
(x6) Antec EA380 380 W Power Supply Unit: $59.99
(x6) Toshiba 80-GB Sata2 Laptop Hard Drive: $49.99
(x6) G-Skill 1GBX2 DDR2 RAM: $42.99
(x6) EverCool 50mm Case Fan: $3.79
(x6) 3-foot LAN Patch Cables: $1.49
(x1) 8-Plug Surge Protected Power Strip: $39.99
(x1) TrendNet 8-Port Unmanaged Switch: $18.49
(x6) Sistemas Xubuntu: $00.00
Otros: $20.00
Cada uno de los cajones aloja una placa base, los respectivos microprocesadores, fuentes de alimentación, las memorias RAM y discos duros de 2,5.
sistema-cluster
Aquí encontraréis la descripción completa de la construcción del sistema cluster “casero”.
Fuente: linuxzone

Linux. Encripta textos con gpg

Encripta textos con gpgHemos tratado ya en Linux Zone la protección de archivos o de las contraseñas de miradas indiscretas. Pero seguro que hay entre los lectores usuarios que acostumbran a guardar sus passwords o textos delicados en archivos de texto, sin mayor protección. También ellos pueden proteger esos archivos sencillamente, con una simple orden en la terminal.

Supuesto: queremos proteger, mediante contraseña, un archivo .txt llamado “secretos.txt”. Para encriptarlo con gpg deberemos escribir lo siguiente:.
gpg -c secretos.txt
Nos pedirá una contraseña y, de nuevo, la confirmación de esa contraseña. Si listamos el directorio donde se encuentra el texto, veremos que aparece el archivo “secretos.txt” y otro con el mismo nombre pero con la extensión .gpg, es decir, “secretos.txt.gpg”. Podremos, a continuación, borrar el archivo desprotegido (secretos.txt) para dejar sólo el archivo encriptado.
Para desencriptar, deberemos ejecutar:
gpg secretos.txt.gpg
Y ya tendremos disponible, de nuevo, nuestro archivo original.
Para mayor seguridad, probad este simple “tip” con un archivo de prueba.

Fuente: linuxzone

Acceso a un servidor ssh en tu LAN

Acceso a un servidor ssh en tu LAN
Si trabajáis en red, lo más probable es que, tarde o temprano, utilicéis varias terminales con sistemas GNU/Linux, si es que no lo habéis hecho ya… Éstas pueden ser destinadas a numerosas tareas, aparte de terminal de escritorio. A saber: servidor de datos, backups, proxy cache, firewall, fax, etc. En estos casos, no es necesario tener montado todo lo que acompaña a un PC (teclado, mouse y monitor) ya que podremos acceder, por ejemplo, vía escritorio remoto (si tenéis X en el equipo) o ssh. A continuación, encontraréis las instrucciones para esto último, utilizando Debian como distro servidor.

(*) Apuntes previos: no me ocuparé aquí de describir el protocolo ssh. Tenéis a vuestra disposición una enorme cantidad de información en la Red. En el equipo que hace de servidor ssh, se ha instalado previamente Debian y se ha configurado el acceso a Internet. Los comandos que requieren ser root, aparece la expresión [root] sobre ellos.
Primero, vamos a instalar openssh:
[root]
apt-get install openssh-server
Tras esto, tan sólo tendríamos que abrir el puerto 22 de nuestro router para la IP del servidor para poder acceder a él vía ssh. Sin embargo, es conveniente asegurarlo un poco más.
Con un editor de texto, editaremos el archivo sshd_config. En mi caso, utilizaré mousepad.
[root]
mousepad /etc/ssh/sshd_config
Añadiremos los usuarios a los que deseamos permitir acceso, escribiendo lo siguiente:
AllowUsers nombre_del_usuario1 nombre_del_usuario2
Es conveniente no utilizar el puerto por defecto de ssh, el 22. Veréis una línea , cerca del inicio del texto, donde aparece “Port 22″. Cambiad el 22 por el puerto que prefiráis. En mi caso, el 9999.
También por precaución es conveniente cambiar denegar el acceso de root por defecto. Esto se logra cambiando “PermitRootLogin yes” por “PermitRootLogin no”.
Otras medidas de precaución:
Editar el archivo hosts.deny:
[root]
mousepad /etc/hosts.deny
Añadimos lo siguiente:
sshd: ALL
De este modo, todo aquél que no tenga permitido el acceso en hosts.allow, no podrá entrar. Para habilitar acceso a determinadas IP de nuestra LAN, editaremos ese archivo.
[root]
mousepad etc/hosts.allow
Añadimos la o las IP que deseamos que tengan acceso. Por ejemplo:
sshd: 192.168.0.2
Tras guardar todos los cambios, reiniciaremos el servicio:
[root]
/etc/init.d/ssh restart
El acceso desde terminales con GNU/Linux puede realizarse mediante openssh-client, presente en los repositorios de numerosas distros. Tras instalarlo, tan sólo tenemos que ejecutar lo siguiente:
ssh -p  9999 nombre_del_usuario1@IP_del_servidor_ssh
Si tenéis que acceder desde terminales Windows podéis utilizar Putty, por ejemplo.
Estas medidas de precaución son, más o menos, las que podríamos calificar de “estándar”. Para otras opciones, podéis consultar aquí los consejos de nuestros compañeros de redeszone.

Fuente: linuxzone

Linux. Comandos y curiosidades en tu terminal

Comandos y curiosidades en tu terminalSon muchos los listados y tutoriales sobre comandos, que podemos encontrar por internet. De hecho, en Linux Zone hemos publicado unos cuantos. Por eso en éste, sólo quiero mostraros comandos poco conocidos, desde los más funcionales, hasta los más divertidos.

(*) Algunas órdenes que veréis utilizan comandos propios de distros basadas en Debian. Si no sois usuarios de éstas, tan sólo es necesario utilizar el comando análogo.
A probar!!
who am I #Quién soy.
cal #Calendario del mes en curso.
cal -3 #Anterior, actual y siguiente.
cal 2011 #Calendario completo de un año.
cal 09 2011 #Mes del año especificado.
date #Muestra la hora y fecha del sistema.
uptime #Tiempo que lleva tu sistema encendido.
who #Quien está conectado a mí.
top #Procesos activos en tu sistema.
ps aux #Todos los procesos con nombre y hora de inicio.
pstree #Árbol de procesos.
free #Uso de tu memoria Ram y Swap.
lsmod #Todos los módulos cargados en tu Kernel.
netstat #Todas las conexiones, y puertos abiertos.
stat -l nombredearchivo #Muestra toda la información de un archivo.
history -c #limpiamos el historial.
rm ~/.bash_history ; ln -sf /dev/null .bash_history #limpia el historial, de los últimos comandos ejecutados.
& #Indica al comando a ejecutar, que lo haga en segundo plano.
finger -l #Información sobre los usuarios.
w #Como antes, pero más corto. Es el comando mas corto y eficiente.
< /dev/urandom tr -dc A-Za-z0-9_ | head -c8 ; echo #Genera una clave aleatoria, de 8 dígitos.
cat /etc/issue #Cuál es tu versión del sistema?
aptitude -h #Un montón de opciones que ni conocías.
nano archivo #Mi editor preferido, no digo más.
apt-get install localepurge #Configura tus idiomas preferidos. El resto de idiomas en paquetes nuevos nunca se instalarán.
eject #Abre tu unidad de cd, o dvd.
telnet #Ni lo explico, cuántos recuerdos…(mirar al final*)
comando 2> /dev/null #Ejecuta un comando, pasando de los errores.
man comando #información de un comando. Éste es uno de los comandos que mas utilizo. Esta pequeña guía, (y otras) están echas en gran parte basándose en la información de este comando.
man -t | ps2pdf – > #Convierte cualquier manual de ‘man’ a pdf.
sudo !! #Este comando es muy útil. A todos los usuarios de distros basadas en Debian, por ejemplo, nos pasa que ponemos un comando y se nos olvida el sudo. Pues escribiendo esto se ejecuta el comando anterior como root.
zgrep “The.*Release” /usr/share/doc/dpkg/changelog.Debian.gz #Teníamos más nombres.
Algo más divertido…
apt-get moo #Una vaca?
sudo apt-get install cowsay #Instala la vaca…
cowsay loquequieras #…y haz hablar a la vaca…
dcop amarok player lyrics | cowsay #… o cantar.
sudo apt-get install oneko #Un gato persigue a mi ratón…
oneko #…empieza a correr…
pkill oneko #… para pararlo.
oneko -sakura #Una chica ‘Manga’.
oneko -tomoyo #Otra.
oneko -dog #Para el que prefiere un perro.
apt-get install bsdgames #Juegos en tu consola?? Instala y sigue…
tetris-bsd #No hace falta explicación.
snake #El juego de la serpiente.
hangman #El ahorcado.
atc #Quieres ser controlador aéreo?
robots #Te persiguen.
banner texto #Un banner del texto que quieras en tu consola.
pom #Estado de la luna.
morse #Escribe una palabra para traducirla a morse.
fortune #Tu fortuna diaria.
cmatrix #Tu terminal como en Matrix.
rain #Pero esto qué es??
worms #Pero esto qué es ?? 2.
telnet towel.blinkenlights.nl #También cine??. Sí, la película Star Wars en tu consola, eso sí, en ASCII. (*era aquí)
Tutorial realizado por Elías Hidalgo para Linux Zone
P.d.: poweroff #Apaga el ordenador.

Fuente: linuxzone

Linux. El archivo passwd

El archivo passwdEl contenido del fichero /etc/passwd/ es la primera línea de defensa en los sistemas operativos basados en Linux, ya que es el encargado de determinar qué usuarios pueden de forma legítima, acceder al sistema y qué operaciones pueden realizar en el mismo.
Este fichero debe de estar debidamente configurado y sin ningún fallo, pues podría comprometer la seguridad del sistema haciéndolo objetivo fácil de virus, troyanos y demás tipos de malware que habitan la red. Además, en este fichero se almacenan los privilegios de las cuentas de usuario, las claves de acceso y los privilegios de cada una de ellas.
Un ejemplo bien definido y configurado del archivo /etc/passwd/ sería:
usuario1:FXWUuZ.vwXttg:500:501:usuario juan:/home/usuario1:/bin/bash

En el que los valores representados serían los siguientes:
usuario1: Nombre de la cuenta.

FXWUuZ.vwXttg: Contraseña de la cuenta encriptada para evitar miradas indeseadas.

500: UID dicha cuenta.

501: GID al que pertenece del grupo principal.

usuario juan: Nombre del usuario.

/home/usuario1: Directorio de usuario1.

/bin/bash: El intérprete de comandos del usuario Juan.


Este sería un claro ejemplo del archivo /etc/passwd/ debidamente configurado, pero como es lógico, según la distribución que usemos puede tener algunos campos que difieran de unas a otras, pero la estructura siempre será la misma.

Fuente: nosolounix

Info:http://www.mikejr1.es/linux/index.php/-noticias-mundo-linux-/ultimas-noticias/2421-el-archivo-passwd.html

lunes, 16 de mayo de 2011

Los zombis podrían estar consumiendo tu procesador en este instante

Un proceso zombi es un proceso que ha completado su ejecución pero aun tiene una entrada en la tabla de procesos. Esta entrada aun es necesitada para permitir la lectura del estado de su estado de salida. El Termino zombi se deriva de la definición de un muerto viviente (se acuerdan de esa película?). Para ponerlo en términos simples y un poco mas técnicos, un proceso hijo ha terminado pero aun no se ha eliminado de la tabla de procesos y el comando kill no tiene efectos sobre él.
Identificarlos es fácil, podemos ejecutar el comando ps y buscamos cuales procesos tienen una “z” en la columna “STAT“. Los procesos zombi que permanecen por un periodo mas que corto por lo general es señal de un bug en el proceso padre. Ahora bien, si el zombi aun existe después de que el proceso padre ha terminado esto por lo general indica un bug en el sistema operativo.
La salida de el comando TOP que muestra donde estan los zombis
La salida de el comando top que muestra donde están los zombis
Un procesos zombi no es un problema tan grave, el problema se agrava si el computador va a ser sometido a fuertes cargas pues puede ser que se multipliquen. A pesar de que los zombis no consumen memoria un incremento acelerado de estos podría traer consecuencias a la hora de que el sistema operativo se le acaben los PID a asignar.
Una vez que el padre haya matado el zombi el proceso ID (PID) y la entrada en la tabla de procesos puede ser reutilizada, pero si este falla, el zombi permanece en la tabla de procesos.
Para eliminar un zombi del sistema, se le debe enviar la señal SIGCHLD al padre usando el comando kill. En caso de que el padre se no pueda eliminar el zombi de la tabla de procesos podríamos intentar matando el proceso padre. Algo que debemos tomar en cuenta es que cuando un proceso pierde a su padre, ‘init‘ pasar a ser su nuevo padre y este se encarga de limpiar periódicamente la tabla de procesos de los zombis cuyos padres sean init.

domingo, 31 de enero de 2010

10 cursos gratis de Linux

Donde podeis encontrar la info : http://www.mateamargonerds.com/sistemas-operativos/linux/941-10-cursos-gratis-de-linux.html

sábado, 9 de enero de 2010

Transforma Ubuntu en Mac

Blogeando por ahi, nuevas apariencias para mi ubuntu, me tope con un post en marlexsystems que me parecio digno de mencionar.

Todos conocemos los famosos transformadores de imagen para windows xp, vista y los temas de windows 7, pero sabemos que el futuro es linux, y el intocable siempre sera mac, por eso, con esta aplicacion seras capaz de darle a ubuntu un nuevo estilo, completamente Mac a tu PC

La idea es que además de el tema, el contenido incluye una serie de elementos adicionales que permitirán no solo ver, sino sentir algunas caracteristicas del popular mac OS

Sus principales caracteristicas son:

* Soporta Gnome 2.26
* Soporte nativo para Xfce
* Incluye la apariencia de Mac OS X para Firefox 3
* Incluye plugins para Songbird
* Incluye tema GDM
* Integra el dock Cairo (mayor Look&Feel)
* Integración visual con Nautilus y Rhytmbox.
* Pantalla de Login con el aspecto del inicio de sesión de Mac.

Esto mas el Doc para linux, "cairo" seguro lograras una apariencia mucho mas interesante, que te hara sentir en un entorno completamente imac

Descarga: Mac4lin (http://ouh.dl.sourceforge.net)
http://sourceforge.net/projects/mac4lin/files/mac4lin/ver.1.0/Mac4Lin_Install_v1.0.zip/download

Via: http://www.marlexsystems.org/9530-transforma-ubuntu-en-mac-con-mac4lin/

jueves, 20 de agosto de 2009

Web de juegos exclusivos para GNU/Linux

Bueno sabed que podemos encontrar un portal con juegos bastante buenos para Linux, donde?, aquí http://www.playdeb.net/welcome/ , para ver los juegos pinchad sobre la pestaña de UPDATES, encontrareis una interesante lista, además de no ser corta son libres. Espero que os gusten.

jueves, 6 de agosto de 2009

Cabinas Telefonicas Gratuitas en la calle

En este tutorial explicaremos como montar desde cero una cabina telefonica de bajo coste para hacer llamadas gratuitas a telefonos fijos de mas de 40 paises utilizando Asterisk y un proveedor de telefonia SIP. Se explicara el aspecto tecnico, de hardware y software de montar la cabina.

Links: Hamlab - Patio Maravillas
Nota en Sindinero.org
Queman la cabina del Patio Marvillas

Todo lo que utilizamos es facil de conseguir, excepto el adaptador ATA, aunque para utilizar Asterisk no lo necesitamos, solo se requiere si se quiere conectar a telefonos analogicos. Tambien podremos configurarlo con un telefono IP si tenemos, o bien conectarse con un softphone, es decir, un telefono por software: el Ekiga sin ir mas lejos. Con el tiempo veremos que la versatilidad del Asterisk es tal que se puede conectar de muchas formas, de hecho de las centralitas PBX es la que soporta mas protocolos y canales: desde lineas analogicas hasta clientes/servidores SIP, H323.b, IAX2, adaptadores ATA, placas FXS/FXO, e incluso hay un proyecto para que pueda anunciarse como un BTS (antena GSM --- moviles!!).

Para la instalación de las cabinas que tenemos en el Patio hemos utilizado:

* Ordenador: AMD Duron a 900 Mhz con 386 Mb de RAM.
* Software: Asterisk 1.4 o 1.6
* Software cliente: Softphone. Puede ser Ekiga o Twinkle.
* Hardware: Adaptador ATA, Linksys SPA3102.
* Proveedor de telefonia SIP: VoIPBuster.
* Cable telefonico RJ11
* Telefono

¿Que es Asterisk?

Asterisk es una aplicación de software libre (bajo licencia GPL) que proporciona funcionalidades de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a un proveedor de VoIP o bien a una RDSI tanto básicos como primarios. Fuente: Wikipedia

¿Como se instala?

Lo instalaremos en Debian, una distribucion GNU/Linux. Para empezar
actualizaremos los repositorios al listado mas reciente de paquetes e
instalaremos las actualizaciones pendientes.

# apt-get update
# apt-get dist-upgrade

Podremos ver mas informacion de la instalacion de Asterisk sobre Debian en el siguiente link.
A traves de los repositorios:

La forma mas facil y rapida de instalarlo, es con el siguiente comando:

# sudo aptitude install asterisk

Con el codigo fuente:

Ahora instalaremos las dependencias, junto con las herramientas necesarias para compilar y las fuentes del kernel.

# apt-get -y install build-essential libncurses5-dev libcurl3-dev
libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev
linux-headers-`uname -r

Vamos al directorio de las fuentes.

# cd /usr/src

Descargamos y descomprimimos las fuentes del Asterisk junto con el modulo Zaptel necesario para que funcione:

# wget http://downloads.digium.com/pub/asterisk/asterisk-1.45.1.tar.gz
# wget http://downloads.digium.com/pub/zaptel/zaptel-1.45.1.tar.gz
# tar xvzf asterisk-1.4.5.1.tar.gz
# tar xvzf zaptel-1.4.5.1.tar

Vamos al directorio de zaptel:

# cd zaptel-1.4.

Configuramos, compilamos e instalamos el modulo.

# ./configure && make && make inst

Por ultimo lo cargamos con el comando modprobe.

# modprobe ztdumm

Podemos comprobar que se cargo sin problemas con:

# lsmod | grep ztdumm

Si vemos que funciona hay que agregarlo al inicio del sistema poniendolo en el fichero /etc/modules.

# echo “ztdummy” >> /etc/module

Ahora vamos a compilar el Asterisk. Para esto vamos a su directorio y lanzamos los mismos comandos que antes:

# cd /usr/src/asterisk-1.4.5.1
# ./configure && make && make install

Es recomendable instalar los ejemplos para tener algo sobre lo que trabajar:

# make samples
# make config

Fuentes:

* ElCanibal.com: Mi nuevo proyecto; Asterisk en Debian Etch

* Blog de Pedro: Asterisk en Debian Etch

Iniciar / Parar Asterisk

Para inciar el Asterisk como demonio basta hacerlo con el siguiente comando:

# /etc/init.d/asterisk start

Luego para pararlo:

# /etc/init.d/asterisk stop

Por ultimo, para reiniciarlo:

# /etc/init.d/asterisk restart

En caso de que queramos iniciarlo solo por un tiempo determinado y no todo el tiempo, debemos iniciarlo con el comando:

# /usr/sbin/asterisk -vvvvc

Con esto iniciaremos la aplicacion e ingresaremos a la consola, [*CLI>]. Puedes ver como manejarte en ella en la seccion "Consola y Logs".

En caso de que lo hayamos iniciado como demonio, para conectarnos a la consola deberemos hacerlo con el mismo comando pero la opcion -r en vez de -c:

# /usr/sbin/asterisk -vvvvr

Si queremos que inicie cada vez que arranque el ordenador tendremos que modificar el siguiente fichero:

# nano /etc/default/asterisk
RUNASTERISK=yes

¿Y como se configura esto?

Una vez que tengamos todo instalado podremos ojear los ficheros de
configuracion de ejemplo que nos instalamos en los ultimos pasos.

# less /etc/asterisk/sip.conf
# less /etc/asterisk/extension.conf

Estos ficheros son los que mas veremos en este tutorial. En sip.conf
configuraremos los clientes, peers o amigos (en jerga asteriskiana) que
tendremos y en extensions.conf nuestro DialPlan. Este es nuestro plan
de llamadas: que hara cuando reciba una llamada a tal extension, o que
hara cuando un usuario intente llamar a alguna otra.

Los otros ficheros que hay en la carpeta /etc/asterisk son para todas
las otras funcionalidades que nos ofrece. Esta es la principal ventaja
de Asterisk frente a las otras centralitas (PBX), que desde el
principio y modificando solo alguna linea de los ficheros podremos
tener funcionalidades impresionantes, como salas de conferencias
(meetme.conf), buzon de voz (voicemail.conf) y conexion con diferentes
tipos de protocolos VoIP como SIP (en el sip.conf) e IAX2 (iax.conf) .

Vamos a ponernos a manos a la obra, para esto haremos una copia de seguridad de los ficheros que ya tenemos.

# mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.old
# mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.old

SIP.CONF

Como ya dijimos, en este se
configuran los diferentes usuarios, clientes y peers. Aqui es donde
puede diferir mas nuestra configuracion. Todos los ficheros de
configuracion de Asterisk comienzan con la etiqueta [general], con las
opciones globales y luego cada etiqueta servira para cada uno de los
clientes. Estos pueden ser desde clientes SIP de software aka softphone
(como el Ekiga o el Twinkle para GNU/Linux), un
telefono SIP fisico, un adaptador ATA o un proveedor de telefonia SIP.
Si tenemos una tarjeta PCI FXS o FXO haremos las configuraciones en
zapata.conf.

En nuestro caso el hardware con el que contamos es un adaptador ATA
Linksys SPA302, Este se configura en la etiqueta [patio]. Tambien lo
conectamos a un proveedor de telefonia SIP llamado VoIPBuster, en la
etiqueta [voipbuster] (si conoces uno con mejores precios dimelo a
isaac.hacksimov@patiomaravillas.net ;D) y creamos un usuario preparado
para conectarlo por softphone (tanto con twinkle como con ekiga) en la
etiqueta [isaac].

[general]
context=default
useragent=
disallow=all
allow=gsm
allow=alaw
allow=ulaw
language=es
srvlookup=yes
tos_sip = cs3
tos_audio = ef
tos_video = af41
allowguest = yes

register => isaac.hacksimov:CONTRASENA@sip1.voipbuster.com:5060

[patio]
type=friend
host=dynamic
username=patio
secret=CONTRASENA
callerid="Patio Maravillas"
context=patio
qualify=yes
[voipbuster]
type=peer
host=sip1.voipbuster.com
username=isaac.hacksimov
fromuser=isaac.hacksimov
secret=CONTRASENA
context=voipbuster
insecure=port,invite
qualify=yes
canreinvite=no

[isaac]
type=friend
host=dynamic
username=isaac
secret=CONTRASENA
callerid="Dr. Isaac Hacksimov"
context=patio
mailbox=3000@default
qualify=yes

Vamos paso por paso:

[general]
context=default
useragent=
disallow=all
allow=gsm
allow=alaw
allow=ulaw
language=es
srvlookup=yes
tos_sip = cs3
tos_audio = ef
tos_video = af41
allowguest = yes

register => isaac.hacksimov:CONTRASENA@sip1.voipbuster.com:5060

Aqui le estamos diciendo el contexto en el que se encuentra esta
etiqueta (esto lo volveremos a ver en el extensions.conf), tambien que
tipo de codecs estamos permitiendo (gsm, alaw, ulaw) y el idioma
(espaniol, mas tarde instalaremos los sonidos),

La linea de register tiene los mismos datos que en la etiqueta [voipbuster]. Es necesario en algunos proveedores.

El adaptador ATA:

[patio]
type=friend
host=IPDELCACHARRO
username=patio
secret=CONTRASENA
callerid="Patio Maravillas"
context=patio
qualify=yes

Aqui le tendremos que poner la IP del adaptador, junto con el nombre y
la contraseña. Otro dato importante es el contexto, en este caso es
"patio".

[voipbuster]
type=peer
host=sip1.voipbuster.com
username=isaac.hacksimov
fromuser=isaac.hacksimov
secret=CONTRASENA
context=voipbuster
insecure=port,invite
qualify=yes
canreinvite=no

En esta etiqueta lo importante es el host, que es la URL que nos da nuestro proveedor cuando nos registramos. Elegimos VoIPBuster por permitirnos hacer llamadas gratuitas a los siguientes paises por un plazo de 120 dias pagando 10 euros:
Andorra

Australia

Austria

Bélgica

Canadá

Checa, República
Chile

Chipre

Dinamarka

España

Estonia

Eu Estados Unidos (+mobile)

Finlandia
Francia

Guam

Hong - Kong (+mobile)

Hungria

Irlanda

Islandia

Israel
Italia

Japón

Luxemburgo

Malasia

Mónaco

Noruega
Nueva Zelanda

Países Bajos

Panamá

Portugal

Puerto Rico (+mobile)
Rusia [moscow]

Rusia [st Petersburg]

Singapur

Sudcorea

Suiza

Taiwan

Cual es el problema con VoIPBuster? Van cambiando el listado de paises sin avisar, por lo que es posible que nos quiten algo de credito

Si conoces uno mejor, dimelo a isaac.hacksimov@patiomaravillas.net.

Por ultimo configuramos otro usuario mas. Lo unico que difiere con
los anteriores es el host, que es dinamico, esto es decir que puede
tener cualquier IP:

[isaac]
type=friend
host=dynamic
username=isaac
secret=CONTRASENA
callerid="Dr. Isaac Hacksimov"
context=patio
qualify=yes

EXTENSIONS.CONF

[general]
static=yes
writeprotect=yes

[globals]
CABINA=SIP/patio
VOIPBUSTER=SIP/voipbuster
ISAAC=SIP/isaac

[default]

[patio]
include => default
include => nacionales
include => echo
include => monkeys

[isaac]
include => default
include => nacionales
include => echo
include => monkeys

[nacionales]
exten => _9ZXXXXXXX,1,Dial(${voipbuster}/0034${EXTEN},60,r)
exten => _9ZXXXXXXX,n,Hangup
[echo]
exten => 600,1,Playback(demo-echotest)
exten => 600,n,Echo
exten => 600,n,Playback(demo-echodone)
exten => 600,n,Hangup
[monkeys]
exten => 666,1,Answer()
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeysintro)
exten => 666,n,Playback(tt-somethingwrong)
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeys)
exten => 666,n,Hangup

Como decia Jack el Destripador, vamos por partes:

[general]
static=yes
writeprotect=yes

[globals]
CABINA=SIP/patio
VOIPBUSTER=SIP/voipbuster
ISAAC=SIP/isaac

El contexto general, donde pondremos las opciones que valen para todo
el fichero. En general lo protegemos y en globals ponemos las
variables. Se escribe teniendo en cuenta los usuarios que creamos en el
fichero sip.conf. Creamos 3 variables: una para el adaptador ATA
(usuario y contexto patio en el fichero sip.conf, variable CABINA),
otra para voipbuster y la ultima para el usuario que se conectara por
softphones, isaac.

[default]
[patio]
include => default
include => nacionales
include => echo
include => monkeys

[isaac]
include => default
include => nacionales
include => echo
include => monkeys

Estos son los contextos de los usuarios que realizaran las llamadas,
patio e isaac. El proveedor SIP, obviamente, no realizara llamadas,
sino que enrutaremos las llamadas hacia el. El include sencillamente
significa que estamos incluyendo esos contextos (default, nacionales,
echo y monkeys),

[nacionales]
exten => _9ZXXXXXXX,1,Dial(${VOIPBUSTER}/0034${EXTEN},60,tr)
exten => _9ZXXXXXXX,n,Hangup

Esta es la sintaxis que utilizaremos para definir que hacer cuando se
realiza un llamado. Por ejemplo, aqui estamos definiendo que cuando se
marque un telefono que comienza con 9 y el siguiente numero sea mayor a
0 (Z) y los siguientes 7 numeros sean mayores o iguales a 0 (XXXXXXX),
primero (1) marque al numero que configuramos anteriormente como
perteneciente a voipbuster el numero que se ha marcado ($EXTEN)
añadiendole el codigo internacional del pais, España en este caso
(0034). Tambien le decimos que llame durante 60 segundos y que permita
la transferencia y no escuche el tono de marcado (tr). Luego le decimos
que cuando termine con esto, cuelgue. Y todo esto en 2 lineas!!

Como vemos, en principio puede parecer complicado, pero cuando hagamos
mas extensiones podremos ver que a traves de el DialPlan se puede sacar
mucho jugo al Asterisk, permitiendonos hacer muchisimas cosas y
divertirnos un monton ;), por ejemplo:

[echo]
exten => 600,1,Playback(demo-echotest)
exten => 600,n,Echo
exten => 600,n,Playback(demo-echodone)
exten => 600,n,Hangup

Aqui le decimos que para el contexto [echo], es la extension 600.
Primero reproducira (Playback) un sonido que dice que hara una prueba
de eco con demo-echotest, que se encuentra en /var/lib/asterisk/sounds/
o donde lo hayamos instalado. Importante, no es necesario poner el
formato del audio, Asterisk decidira cual es el mejor en cada caso.
Luego llama al programa que hace la prueba de eco en si, y manda a
reproducir otro sonido diciendo que termino la prueba de eco. Por
ultimo cuelga. Con respecto a la sintaxis, esto mismo podriamos haberlo
escrito asi:

[echo]
exten => 600,1,Playback(demo-echotest)
exten => 600,2,Echo
exten => 600,3,Playback(demo-echodone)
exten => 600,4,Hangup

Pero en este caso cuando querramos cambiarlo habra que renumerar todo,
por lo que es preferible usar la "n" para llamar a la siguiente accion.

[monkeys]
exten => 666,1,Answer()
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeysintro)
exten => 666,n,Playback(tt-somethingwrong)
exten => 666,n,Wait(2)
exten => 666,n,Playback(tt-monkeys)
exten => 666,n,Hangup

Este es nuestro pequeño huevo de pascua. Aqui le decimos que atienda,
que espere por 2 segundos, que reproduzca unos sonidos (la
"introduccion a los monos" y "algo va muy mal"), espere 2 segundos mas,
reproduzca otro sonido ("monos" !!!!) y por ultimo cuelgue.

El unico contexto que falta poner en esta configuracion es
[internacionales]. Al ser una configuracion tan larga y que tanta gente
le puede dar uso decidimos liberarlo en una wiki dedicada al mundo
VoIP: voip-info.org. El link donde pueden ver las extensiones
actualizadas para hacer llamadas a telefonos fijos (landlines/fixed
lines) esta aqui: LINKVOIPINFOINTERNACIONALES

Todo eso se agregaria en el extensions.conf y tambien como includes del
usuario al que queremos habilitar las llamadas internacionales.
Configuracion del cliente Softphone

Veremos como conectarnos con dos clientes de software: Ekiga y Twinkle.
EKIGA

Por defecto muchas distribuciones GNU/Linux ya vienen instaladas con un cliente SIP, el Ekiga. En Ubuntu, este se encuentra en Aplicaciones -> Internet -> Softphone Ekiga,

[img_assist|nid=1069|title=Ekiga|desc=|link=node|align=right|width=100|height=75]Crearemos una cuenta con lo que hemos puesto en sip.conf, junto con la IP del servidor. En caso de tener que conectarse desde internet deberan abrirse los
puertos necesarios y poner la IP publica o el dominio que tengamos
asociado a esta.

Nombre de la cuenta: isaac
Protocolo: SIP
Registrador: 192.168.10.1
Usuario: isaac
Contraseña: CONTRASENA

TWINKLE

Conectarse a traves de Twinkle es muy sencillo, solo hace falta instalarlo. Para Ubuntu/Debian basta con

# sudo aptitude install twinkle

Aparecera en Aplicaciones -> Internet -> Twinkle. Lo abriremos y crearemos un perfil nuevo utilizando la configuracion que hemos puesto en el fichero sip.conf. El Domain debe ser la IP donde esta nuestro servidor.

Siguiendo el ejemplo asi seria nuestra configuracion: [img_assist|nid=1068|title=Twinkle|desc=|link=node|align=left|width=100|height=75]

Your name: isaac
User name: isaac
Domain: 192.168.10.1
Realm: isaac
Authentication name: isaac
Password: CONTRASENA

Luego deberemos ver lo siguiente en el log del Twinkle:

isaac, registration succeeded (expires = 3600 seconds)

Esto significa que ya estamos conectados :D

Configuracion del adaptador ATA

Para configurar el SPA-3102, con una linea de salida para hacer llamadas y otra de entrada/salida PSTN, es decir una linea telefonica normal, vamos a hacer lo siguiente:

1. En un navegador ingresamos la IP del adaptador.
2. Nos dira "spa user" y nos pedira usuario y contraseña. Pondremos usuario "user" y sin contraseña. Entraremos una pagina que nos muestra información de la configuración actual.
3. Vamos a la seccion de Administracion, en "Admin login". Nos pedira nuevamente usuario y contraseña ("admin user"). Esta vez ponemos como usuario "admin" y sin contraseña.
4. Ya aqui nos pondemos a configurarlo:

* En Voice -> System podremos cambiar la contraseña de acceso (User Password:). Dandole a "Advanced" podremos tambien cambiar la contraseña del usuario Admin (Admin Password:)
* En Router -> Wan Setup le pondremos una IP estatica dentro de nuestro rango de red. Aqui podremos tambien configurarlo como router ("PPPoE Settings")
* En Voice -> Line 1 configuraremos nuestra linea para hacer llamadas. Tendremos que poner como minimo los siguientes paramentros:

Line enable: yes
SIP Port: 5060
Proxy: IPDELASTERISK
Register: yes
Display name: patio[img_assist|nid=1142|title=Configurar adapatador ATA 3102 - 1|desc=|link=node|align=right|width=100|height=66]
Password: CONTRASENA
Auth ID: patio
User ID: patio
Use Auth ID: patio
Preferred Codec: G711a
Use Pref codec only: no

Esto en el Asterisk lo configuramos de la siguiente forma:

[patio]
type=friend
host=IPDELCACHARRO
username=patio
secret=CONTRASENA
callerid="Patio Maravillas"
context=patio
qualify=yes

* En Voice -> PSTN Line configuraremos nuestra linea PSTN para hacer y recibir llamadas.

Line Enable: yes
SIP Port: 5061
[img_assist|nid=1143|title=Configurar adapatador ATA 3102 - 2|desc=|link=node|align=left|width=100|height=77]
Proxy: IPDELASTERISK
Register: yes
Display Name: pstn
Password: CONTRASENA
Auth ID: pstn
User ID: pstn
Use Auth ID: no
Preferred Codec: G711a
Use Pref Codec Only: no

Esto en el Asterisk lo configuramos de la siguiente forma:

[pstn-spa3k]
type=peer
auth=md5
host=IPDELCACHARRO
port=5061
secret=CONTRASENA
username=pstn
fromuser=pstn
dtmfmode=rfc2833
context=incoming-pstn
insecure=very

Consola y Logs

Pronto veremos que la consola de Asterisk es completamente intuitiva y todo un aliado para resolver problemas.Para conectarnos a la consola depende de como hayamos iniciado Asterisk. Primero comprobamos si esta corriendo con el comando

# ps auxf | grep asterisk

En caso de que no lo veamos deberemos conectarnos con el siguiente comando:

# /usr/sbin/asterisk -vvvvc

Por otro lado, si lo iniciamos como demonio, para
conectarnos a la consola deberemos hacerlo con el mismo comando pero la
opcion -r en vez de -c:

# /usr/sbin/asterisk -vvvvr

Si hay alguna duda sobre este punto, puedes leer la seccion "Iniciar/Parar Asterisk"

Una vez dentro de la consola deberas ver lo siguiente: [Nota: CLI significa Command Line Interface, Interfaz de Linea de Comandos]

*CLI>

Para empezar, cuando un usuario se conecte o se realize una llamada lo veremos ahi, por ejemplo cuando el usuario Isaac se conecto a traves del Twinkle aparecio lo siguiente:

-- Registered SIP 'isaac' at 192.168.10.135 port 5060 expires 3600
-- Saved useragent "Twinkle/1.2" for peer isaac
[Apr 5 20:01:20] NOTICE[8449]: chan_sip.c:12669 handle_response_peerpoke: Peer 'isaac' is now Reachable. (25ms / 2000ms)

Y cuando se desconecto:

Unregistered SIP 'isaac'

Cuando se conecto con Ekiga:

-- Registered SIP 'isaac' at 192.168.10.135 port 5061 expires 3600
-- Saved useragent "Ekiga/2.0.12" for peer isaac
[Apr 5 20:10:27] NOTICE[8449]: chan_sip.c:12669 handle_response_peerpoke: Peer 'isaac' is now Reachable. (32ms / 2000ms)

Cuando realizo un llamado al 666 [monkeys], vemos el DialPlan ejecutandose en tiempo real:

-- Executing [666@patio:1] Answer("SIP/isaac-089832b8", "") in new stack
-- Executing [666@patio:2] Wait("SIP/isaac-089832b8", "2") in new stack
-- Executing [666@patio:3] Playback("SIP/isaac-089832b8", "tt-monkeysintro") in new stack
-- Playing 'tt-monkeysintro' (language 'es')
-- Executing [666@patio:4] Playback("SIP/isaac-089832b8", "tt-somethingwrong") in new stack
-- Playing 'tt-somethingwrong' (language 'es')
-- Executing [666@patio:5] Wait("SIP/isaac-089832b8", "2") in new stack
== Spawn extension (patio, 666, 5) exited non-zero on 'SIP/isaac-089832b8'

(No termino con todo porque el usuario colgo antes)

Tambien podemos ver en que estado se encuentra nuestro proveedor:

*CLI> [Apr 5 20:18:36] NOTICE[28025]: chan_sip.c:12669 handle_response_peerpoke: Peer 'voipbuster' is now Reachable. (90ms / 2000ms)

Aparte de mostrarnos la informacion en tiempo real, tambien podremos pedirle informacion y cambiar la configuracion. Para aprender a movernos en ella nuestro gran aliado sera la tecla TAB (tabulador). Con esta completaremos y veremos que opciones nos da cada comando, por ejemplo si escribimos "sip show" y pulsamos TAB, veremos:

*CLI> sip show
channel channels domains history inuse objects
peer peers registry settings subscriptions user
users

Lo que intuitivamente nos permite ver diferentes datos:

*CLI> sip show users
Username Secret Accountcode Def.Context ACL NAT
isaac CONTRASENA patio No RFC3581
patio CONTRASENA patio No RFC3581

CLI> sip show registry
Host Username Refresh State Reg.Time
sip1.voipbuster.com:5060 isaac.hacksi 105 Registered Sun, 05 Apr 2009 20:18:36

[img_assist|nid=1072|title=|desc=|link=node|align=undefined|width=193|height=145]

*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
isaac/isaac 192.168.10.135 D 5061 OK (4 ms)
voipbuster/isaac.hacksimo 194.221.62.198 5060 OK (90 ms)
patio/patio (Unspecified) D 0 UNKNOWN
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]

Tambien podemos probar el DialPlan, por ejemplo con el comando "console dial 666".

*CLI> console dial 666
No such extension '666' in context 'default'

En este caso no funcionara porque no tenemos ninguna extension
configurada en el contexto default, pero para hacer pruebas es
recomendable ponerlas ahi (basta con ponerlas como include). Lo bueno
de esto es que si el servidor tiene altavoces y microfono podremos
probarlo sin necesidad de nada mas.

Hacia el infinito y mas alla:

Algo que queda por ver y resulta muy entretenido es configurar el fichero voicemail.conf y el meetme.conf, y poner los sonidos en Español.

Puedes ver mas informacion del Asterisk en las siguientes paginas:

* Sitio oficial de Asterisk

* Comunidad Asterisk-ES

* VoIP Foro

Una de las mejores paginas para leer documentacion es la wiki VoIP-Info.
Aqui encontraremos documentacion detallada de muchos ficheros de
configuracion y proveedores, asi como tambien conectar distintos
dispositivos y aplicaciones al Asterisk.

Por supuesto, si te interesa ampliar tus conocimientos en este mundo de la telefonia IP libre, lo recomendable es leer el libro Asterisk: The Future of Telephony con licencia CC-by-sa.

Info:http://fixidixi.com/oldt/node/1

viernes, 31 de julio de 2009

Acelera tus descargas en GNU/Linux desde consola

Cuando estamos haciendo descargas de archivos en internet hacia servicio de FTP o HTTP, tenemos varias herramientas de este tipo pero ellos solamente realizan una conexión hacia al servicio para hacer la descarga.


Pero como podemos descargar esta información mas rápidamente, para esto tenemos la herramienta axel, esta herramienta lo que hace es realizar múltiples conexiones hacia los servicios FTP o HTTP permitiendo descargar el fichero en parte y luego uniendo, con esto nos permite acelerar las descargas.

Para poder tener esta herramienta tenemos que hacer lo siguiente.

----- Centos/Fedora/RHEL.

En el caso de Centos y RHEL tenemos que tener habilitado el repositorio de DAG Wieers.

yum install axel

----Debian/ubuntu y derivados

apt-get install axel

Ejemplos:

1) Descargando el kernel de linux con axel

lucifer@lucifer:~$ axel http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.30.bz2

2) Descargando fichero pero especificando la velocidad de descarga en bits por segundos. En esta desacarga la realiza en 5120 KB por segundos.

lucifer@lucifer:~$ axel -s 5242880 http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.30.bz2

3) Descargado fichero especificando el numero de conexiones.

lucifer@lucifer:~$ axel -n 5 -s 5242880 http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.30.bz2

Como podemos ver esta herramienta hace una descarga de archivos muy rapida.

Info:http://www.linuxparatodos.net/portal/article.php?story=herramienta-axel

10 herramientas para conectarte a redes Wi-Fi

http://www.muylinux.com/2009/07/16/10-herramientas-para-conectarte-a-redes-wi-fi/