Instalar ICECAST2 en Ubuntu o Debian

¿Quieres instalar un servidor de radio en tu Ubuntu o Debian? Icecast2 es una buena solución para esto, un servidor de streaming libre, para linux, con soporte para .ogg y .mp3. Irá todo hecho por línea de comandos, porque si quieres montar un servidor de verdad lo más probable es que uses una distribución sin entorno gráfico.

El servidor icecast requiere de un cliente que le provea los contenidos, que pueden ser archivos ubicados en una carpeta en el PC, un reproductor de CD, un micrófono conectado a la tarjeta de sonido. En este ejemplo utilizaremos Ices2.

El primer paso será instalar icecast con el siguiente comando:

sudo apt-get install icecast2 ices2 vorbis-tools

Una vez instalado el servidor seguimos con la configuración del mismo. Empieza por editar el xml con la configuración:

sudo gedit /etc/icecast2/icecast.xml

Dentro te tocará definir los password para las fuentes y del administrador, así como el nombre del servidor. Busca la siguiente sección y rellena entre las etiquetas con los datos que correspondan:

<authentication>
<!-- Sources log in with username 'source' -->
<source-password>PASSWORD_FUENTE</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>PASSWORD_RELAY</relay-password>

<!-- Admin logs in with the username given below -->
<admin-user>ADMINISTRADOR</admin-user>
   <admin-password>PASSWORD_ADMINISTRADOR</admin-password>
</authentication>

Y tras poner esto tal cual busca la siguiente línea para indicar el nombre del servidor que vamos a utilizar. Si emitimos desde nuestro equipo en local ponemos localhost

<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<hostname>www.miservidor.com</hostname>

También puedes modificar el listen socket para elegir el puerto, pero si va a ser desde tu equipo local deja por defecto el 8000

Ahora te toca habilitar el servicio, que por defecto viene deshabilitado para obligarte a cambiar la contraseña y el administrador.

sudo gedit /etc/default/icecast2

Ahí encontrarás esta línea, donde el valor estará a false y debes dejarlo a true como en el ejemplo:

# Edit /etc/icecast2/icecast.xml and change at least the passwords.
 # Change this to true when done to enable the init.d script
 ENABLE=true

Una vez habilitado, lo único que nos queda es activarlo:

sudo /etc/init.d/icecast2 start

La parte jodida llega ahora, ya que Ices2 no viene con archivos de configuración por defecto. En /usr/share/doc/ices2/examples se encuentran ejemplos para configuraciones de alsa, ogg y playlist. Como lo más habitual es utilizar esta última (usamos un playlist con música y con los programas previamente grabados), creamos una carpeta en etc llamada ices y copiamos el archivo allí. De paso, ya creamos la carpeta para el archivo log de ices y le damos permisos

sudo mkdir /etc/ices2
sudo cp /usr/share/doc/ices2/examples/ices-playlist.xml /etc/ices2/
sudo chmod +x /etc/ices2/ices-playlist.xml
sudo mkdir /var/log/ices
sudo chmod 777 /var/log/ices

Ahora toca modificar el xml:

sudo gedit /etc/ices2/ices-playlist.xml

Ahora os explico todo del tirón y luego ya os pongo debajo el documento completo para que veáis el ejemplo. Lo primero es en background cambiar el 0 por un 1, para así ejecutar en segundo plano el cliente y no tener el terminal abierto todo el tiempo. En la sección metadata configuramos el nombre, género y descripción de la estación de radio. En la sección input establecemos la ruta del archivo con la lista de reproducción (parámetro file), si queremos que la reproducción sea aleatoria (parámetro random, siendo 1 que sí y 0 que no) y si queremos que al acabar se corte la emisión o que se siga emitiendo en bucle (parámetro once). Finalmente en la sección instance configuramos el servidor, puerto, la contraseña de las fuentes (usa los mismos que pusiste antes al configurar el servidor) y el punto de montaje (pon algún nombre que sea descriptivo, sin espacios y acabado en .ogg

<?xml version="1.0"?>
<ices>
    <!-- run in background -->
    <background>1</background>
    <!-- where logs, etc go. -->
    <logpath>/var/log/ices</logpath>
    <logfile>ices.log</logfile>
    <!-- 1=error,2=warn,3=info,4=debug -->
    <loglevel>4</loglevel>
    <!-- set this to 1 to log to the console instead of to the file above -->
    <consolelog>0</consolelog>

    <!-- optional filename to write process id to -->
    <!-- <pidfile>/home/ices/ices.pid</pidfile> -->

    <stream>
        <!-- metadata used for stream listing (not currently used) -->
        <metadata>
            <name>Donnie Rock Radio</name>
            <genre>Rock'n'fuckin'roll</genre>
            <description>Lemmy en la cabeza y el corazón</description>
        </metadata>

        <!-- input module

            The module used here is the playlist module - it has 
            'submodules' for different types of playlist. There are
            two currently implemented, 'basic', which is a simple
            file-based playlist, and 'script' which invokes a command
            to returns a filename to start playing. -->

        <input>
            <module>playlist</module>
            <param name="type">basic</param>
            <param name="file">/home/donato/musicaradio/playlist.txt</param>
            <!-- random play -->
            <param name="random">0</param>
            <!-- if the playlist get updated that start at the beginning -->
            <param name="restart-after-reread">0</param>
            <!-- if set to 1 , plays once through, then exits. -->
            <param name="once">1</param>
        </input>

        <!-- Stream instance
            You may have one or more instances here. This allows you to 
            send the same input data to one or more servers (or to different
            mountpoints on the same server). Each of them can have different
            parameters. This is primarily useful for a) relaying to multiple
            independent servers, and b) encoding/reencoding to multiple
            bitrates.
            If one instance fails (for example, the associated server goes
            down, etc), the others will continue to function correctly.
            This example defines two instances as two mountpoints on the
            same server.  -->
        <instance>
            <!-- Server details:
                You define hostname and port for the server here, along with
                the source password and mountpoint.  -->
            <hostname>localhost</hostname>
            <port>8000</port>
            <password>XYZw3c676</password>
            <mount>/lista_programa.ogg</mount>

            <!-- Reconnect parameters:
                When something goes wrong (e.g. the server crashes, or the
                network drops) and ices disconnects from the server, these
                control how often it tries to reconnect, and how many times
                it tries to reconnect. Delay is in seconds.
                If you set reconnectattempts to -1, it will continue 
                indefinately. Suggest setting reconnectdelay to a large value
                if you do this.
            -->
            <reconnectdelay>2</reconnectdelay>
            <reconnectattempts>5</reconnectattempts> 

            <!-- maxqueuelength:
                This describes how long the internal data queues may be. This
                basically lets you control how much data gets buffered before
                ices decides it can't send to the server fast enough, and 
                either shuts down or flushes the queue (dropping the data)
                and continues. 
                For advanced users only.
            -->
            <maxqueuelength>80</maxqueuelength>

            <!-- Live encoding/reencoding:
                Currrently, the parameters given here for encoding MUST
                match the input data for channels and sample rate. That 
                restriction will be relaxed in the future.
            -->
            <encode>  
                <nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
                <samplerate>44100</samplerate>
                <channels>2</channels>
            </encode>
        </instance>

    </stream>
</ices>

Ahí tenéis el ejemplo completo.

En fin, ya estamos acabando. Nos falta configurar el archivo de canciones a reproducir, siguiendo una de estas dos opciones:

##Opción 1: Crear una ruta hacia el archivo con la lista de canciones con el siguiente comando
sudo find /Ruta_Archivo -iname "*.ogg" > /Ruta_Archivo/LISTA.TXT

##Opción 2: Editamos el archivo y tecleamos la ruta completa para cada canción
sudo gedit /Ruta_Archivo/LISTA.TXT

##Y las vas agregando con esta este formato:
##/Ruta_Archivo/cancion1.ogg
##/Ruta_Archivo/cancion2.ogg

Ahora simplemente tienes que lanzar ices2:

sudo ices2 /etc/ices2/ices-playlist.xml &

Tras todo esto si vamos a http://localhost:8000 encontraremos un link al punto de montaje y, al picar en él podremos escuchar nuestro servidor de radio.

El servicio se para como cualquier otro servicio, con un sudo /etc/init.d/icecast2 stop mientras que para parar el cliente ices deberás buscar el pid del proceso y matarlo.

Si en lugar de un playlist lo que queréis es emitir radio en directo La cosa no cambia mucho. Lo primero que necesitáis, claro está, es tener una tarjeta de sonido que os deje enchufar un micrófono. Aunque si queréis algo más profesional lo mejor es meter una mesa de mezclas para poder alternar entre música (desde otro dispositivo reproductor conectado a la mesa) y el micro. La gran diferencia es que en lugar del xml de configuración playlist de ices2 debes copiar y editar el alsa. Con lo cual la cosa quedaría más o menos así:

sudo cp /usr/share/doc/ices2/examples/ices-alsa.xml /etc/ices2/
sudo gedit /etc/ices2/ices-alsa.xml

Mayormente la configuración es casi igual que la del playlist, pero obviamente sin la ruta a la lista de canciones, que en este caso no existe.

También cambia la instrucción para lanzar el ices, que ahora será sudo ices2 /etc/ices2/ices-alsa.xml & así que tenlo en cuenta a la hora de ejecutarlo.

La emisión en vivo es más coñazo, pero por otra parte te da las ventajas de emitir en directo en lugar de hacerlo con canciones o programas ya pregrabados.

En fin, ahora sólo os queda buscar un alojamiento en Islandia o Rusia desde el que poder emitir sin preocuparos de la persecución de la SGAE.

Diez aplicaciones prácticas para tu USB

Cuando te vas por esos mundos de dios a arreglar ordenadores llega un punto en que necesitas diversas aplicaciones. Ya hicen en su día una entrada sobre algunas herramientas básicas para la reparación, recuperación y mantenimiento, pero ahora hablaremos de otra serie de aplicaciones que no está mal que lleves siempre encima, dentro de un USB, por lo que pueda pasar. Hablamos de Windows, y lo haremos en la mayoría de los casos

  • AVZ-Antiviral Toolkit: Esta herramienta, incorporada por Kaspersky en sus propios antivirus. Se trata de un antivirus hardcore, vamos, que es para usuarios avanzados, tal vez demasiado poco usable por el usuario medio pero tremendamente potente.
  • CCleaner: Una herramienta que te permitará limpiar tanto la «basura» (temporales, cookies) como el registro del sistema, liberando espacio en tu disco duro y acelerando el rendimiento del sistema operativo.
  • Eraser: En ciertos casos no querrás dejar huella en el equipo en que has estado (uno de una ubicación pública, por ejemplo), y una aplicación de borrado seguro de archivos, que te permite decidir cuantas veces se sobreescribe la memoria que antes ocupaba el archivo borrado.
  • Firefox: No está demás llevarse un navegador portable, por si necesitáis llevaros vuestros marcadores, o por si el equipo con el que tenéis que trabajar tiene aberraciones como Explorer o Safari instalados.
  • Notepad++: Este editor de texto multilenguaje es a los programadores lo que el Metal Zone a los guitarristas heavys, simple, todos se cachondean de él, pero al final les acaba salvando el culo en algún directo. Un Block de notas vitaminado por si tienes que editar un script, un xml, o simplemente abrir un archivo de código fuente de casi cualquier lenguaje. Está claro que no es un entorno de desarrollo, pero yo he apañado muchos pequeños parcheos en html o php con él.
  • Speccy: En caso de ir a realizar una instalación o una ampliación de hardware, Speccy es una herramienta muy válida y útil. Mayormente nos permitará conocer qué hardware hay montado en el equipo.
  • Spybot: Si el antivirus no es suficiente, este programa nos ayudará a buscar software espía dentro del equipo. Con algún malware nuevo puede fallar, pero en general funciona bien.
  • Recuva: De esta herramienta ya hablé también en el pasado. Nos permite recuperar archivos borrados del sistema.
  • SumatraPDF: Puede ser que llegues al equipo y te topes con que no tiene un lector de PDF, no es habitual pero te sorprendería la de veces que pasa. ¿Solución? Este paisano del mono rata (chiste para muy fans de Peter Jackson) será una buena ayuda a la hora de leer estos archivos.
  • 7Zip: En su momento ya hablé de este compresor/empaquetador, compatible con múltiples tipos de archivo.

En fin, para las reparaciones y comprobaciones habituales con esto te llega. Para algo más avanzado ya tienes el primer artículo referenciado. Por otra parte, si te dedicas a la programación web puede que un servidor portable como XAMPP y un FTP como FileZilla te sean de mucha utilidad también.

Crear nuestra propia VPN en Ubuntu

Ya hace unos días hablamos de cómo configurar una IP estática en Ubuntu (y MacOS de regalo). Esto, como ya comenté en el artículo en cuestión, es necesario para ciertos servicios, como el que hoy nos atañe: Crear nuestra propia VPN en Ubuntu. Además, el puerto PPTP (1723 TCP) debe estar abierto. Como también necesitamos tener abierto otro puerto que soporte el protocolo GRE, lo mejor es usar la regla para PPTP del router. Manualmente no podemos realizar esta operación, pero las reglas predefinidas sí la realizan.

Una vez con la configuración previa lista, tocará irse al terminal para descargar e instalar el paquete PPTP, con permisos de administrador como para toda instalación. Tal que así:

sudo apt-get install pptpd

Como ya sabéis sudo nos permite realizar una instrucción con permisos de administrador (la primera vez que lo usas en el terminal te pedirá la contraseña). Cuando comience la instalación también os preguntará si queréis instalar el paquete bcrelay, pulsad la S para confirmar y vía.

Cuando termine la instalación, se lanzará de forma automática el servidor PPTP. Ahora toca meter mano en la configuración, con el editor de texto Nano.

sudo nano /etc/pptpd.conf

Al final de todo tenéis que añadir las líneas localip seguida de la ip que queráis tener como servidor local en la VPN (ojo, poned una que esté fuera del rango de IP locales, para evitar conflictos) y remoteip seguido del rango de direcciones que usaremos para asignar a los clientes, podéis poner un rango o varias separadas por comas. Aquí un ejemplo:

localip 10.11.0.1
remoteip 10.11.0.100-150,10.10.10.245

Ya tenéis un ejemplo con ambas opciones. Tras esto tocará añadir usuarios a nuestra VPN, configurando el archivo chap-secrets.

sudo nano /etc/ppp/chap-secrets

El formato es el siguiente, con los elementos separados por tabulaciones: nombre_usuario pptpd password *. El primero es el nombre de usuario (ponéis el que queráis darle a ese usuario en la red), lo siguiente el nombre del servidor (en este caso pptpd), la contraseña (poned algo seguro, no abc123) y la ip (un *, que ya nos ocuparemos de eso después).

En fin, tras esto, y como ya he dicho, toca ocuparse de las ip, concretamente configurando el cortafuegos. Como en todo lo primero es que nuestro amigo «el nano» nos abra el archivo rc.local:

sudo nano rc.local

En este caso vamos a la penúltima línea (justo antes de exit 0) del script y añadimos:

iptables -t nat -A POSTROUTING -s 10.11.0.0/24 -o eth0 -j MASQUERADE

El argumento 10.11.0.0/24 es el rango de direcciones que elegimos cuando estábamos configurando PPTPD, si pusiste otro configúralo en consecuencia. El argumento eth0 es el nombre de la tarjeta de red, asegúrate de poner la tuya. Guarda cambios y sigue porque ahora tocará editar otro archivo, el del ip forwarding:

sudo nano /etc/sysctl.conf

Ahí busca la línea comentada #net.ipv4.ip_forward=1 y quítale el # para descomentarla. Guarda cambios y sal.

Y con todo esto nuestro servidor de VPN en Ubuntu está configurado. Ahora sólo te queda configurar los clientes y ya tienes tu propia VPN creada, para poder comunicarte con seguridad con sus miembros, de forma que vuestros datos no estén expuestos a espionajes varios (eso sí, recuerda que toda seguridad no vale de nada si la contraseña de alguno de los usuarios es revelada, la seguridad perfecta no existe, ni existirá mientras haya un factor humano)

Listas en jQueryMobile: ordenadas y desordenadas

A la hora de trabajar tanto con listas ordenadas o listas desordenadas con jQueryMobile no hay mucha ciencia, es como trabajar con listas en html clásico.

Mayormente hay que usar la etiqueta ul para listas desordenadas y ol para ordenadas, como en cualquier página. La única diferencia es añadir el atributo data-role=»listview». Esto es lo único que necesitas en jQueryMobile para aplicar el estilo «móvil» a la lista. Te pongo un ejemplillo


<ol data-role="listview" data-inset="true" data-filter="true">
   <li><a href="#">El Resplandor</a></li>
   <li><a href="#">La Naranja Mecánica</a></li>
   <li><a href="#">Barry Lyndon</a></li>
   <li><a href="#">La Chaqueta Metálica</a></li>
</ol>

<ul data-role="listview" data-inset="true">
   <li><a href="#">Gran Torino</a></li>
   <li><a href="#">Mystic River</a></li>
   <li><a href="#">Million Dollar Baby</a></li>
   <li><a href="#">Sin Perdón</a></li>
</ul>

Sep, la lista ordenada son películas de Kubrick y la sin índices son de Clint Eastwood. Y no hay más que hablar, sólo el atributo data-role=»listview», por el resto HTML de toda la vida.

Eliminar troyano Mediyes.D en Windows

Mediyes es un troyano bastante cabrón. No dispone de rutina propia de difusión, así que requiere de un usuario o un código malicioso para propagarse. Está diseñado para robar información sensible del usuario cuando navega por la web, activándose a la par que los navegadores Internet Explorer y Firefox. Generalmente su nombre de archivo intenta pasar por una librería Direct3D legítima.

En fin, que es un troyano peligroso porque te puede joder datos importantes (piensa que con tu contraseña del correo, por ejemplo, el atacante podría acceder a los servicios que uses para pagos on-line, que no es una coña), así que habrá que intentarlo. Lo primero, como siempre, es intentar una restauración del sistema, a ver si el punto de restauración está creado antes de que tu equipo se infectara. Si funciona, fetén, si no toca romperse más la cabeza.

Si la restauración no funcionó (es decir, el punto de restauración se creó estando ya infectado), lo primero y más conveniente es desactivar la restauración del sistema, para evitar que se haga una copia del troyano en la restauración. Tras esto habrá que reiniciar el equipo y arrancar en modo a prueba de fallos. Teniendo un antivirus actualizado basta con ejecutarlo para buscar el troyano. Cuando acabe el escaneo tendrás que borrar los siguientes archivos .dll:

  • d3dye5xnv.dll
  • d3dybnavy.dll
  • d3dyyg81j.dll
  • d3dyymlyn.dll

Todos estos archivos estarán en la carpeta del sistema (C:\Winnt\System32 o C:\Windows\System32) ya sea con la dirección absoluta o con la variable de sistema %system%.

Existe la posibilidad de que no se nos permita borrar los archivos antes citados, ya que pueden estar en uso por el troyano, residiendo en la memoria. En este caso la solución es liquidar el proceso. Entráis al administrador de tareas con ctrl+alt+supr, allí buscad el botón «Mostrar procesos de todos los usuarios», localizad los procesos y, haciendo click derecho sobre ellos, elegís «Terminar proceso». A continuación volved a intentar el borrado o reparación de los ficheros que se han creado por la acción del troyano.

Finalmente, para no dejar ni rastro, eliminad todos los archivos temporales del sistema, e incluso haced una limpieza del registro (mismamente CCleaner os facilitará mucho esta labor. Vaciad incluso la papelera de reciclaje. Ahora debería estar desinfectado, reiniciad y comprobadlo pasando otra vez el antivirus (incluso podéis programar lanzar el antivirus desde el arranque). Si ya no detecta ninguna infección reactiva la restauración del sistema, y ya puestos aprovecha para crear un punto de restauración, dado que el equipo estará libre de infecciones y te podrá ser útil por si tienes problemas más adelante. Como último consejo de seguridad, cambia todas tus contraseñas on-line, por aquello de que habrían estado expuestas por el troyano.

Entorno gráfico en FreeBSD

A nivel usuario los sistemas libres BSD, desarrollados por la universidad de Berkeley, no son muy populares. No es así a nivel de servidores, donde han ganado popularidad en los últimos tiempos, ya que varios especialistas afirman que son los sistemas menos vulnerables a ataques DDOS. Por otra parte, a nivel software son casi totalmente compatibles con Linux, por lo que no aporta apenas handicaps frente a un servidor Linux.

Por defecto FreeBSD no incluye entorno gráfico, pero existe la posibilidad de instalarle uno (GNOME o KDE). Lo primero es que para hacer esto es más recomendable haber descardo una versión STABLE que una RELEASE. Aunque se recomienda RELEASE para entornos de servidores el instalar paquetes del repositorio STABLE en equipos con ese Kernel puede provocar problemas de estabilidad en el sistema.

En fin, si estáis instalando desde cero os dejo por aquí este enlace a un tutorial de instalación (es del 8.0, pero vale perfectamente para el 8.1). Cuando ya tengáis el SO instalado en vuestro equipo es cuando toca instalar. Podéis elegir, como dije antes, entre GNOME o KDE (también puedes instalar ambos, probar y luego quedarte con el que más te guste). Yo, por mi parte, para este sistema creo que KDE es la mejor opción: más austero, pero más robusto y estable. Los comandos serían:

#primero hazte root con 
su -root

#para ambos casos ejecuta
pkg_add -r xorg

#para instalar KDE
pkg_add -r kde4

#para GNOME
pkg_add -r gnome3

Con esto ya tienes instalado tu entorno gráfico, pero si reinicias el equipo verás que sigue arrancando con el entorno de consola. Esto es porque tenéis que cambiar la configuración para que, por defecto, el equipo arranque con él.

Para activar el entorno gráfico GNOME por defecto hay que editar el fichero rc.conf y añadir al final la línea gnome_enable=»YES». Para editar el fichero basta con teclear lo siguiente, teniendo todavía permisos de root

ee  /etc/rc.conf

Cuando hayas añadido la línea antes citada sal pulsando ESC y guardando los datos. Si ejecutas un reboot debría arrancar ya con el entorno gráfico.

Podrías pensar que para KDE la cosa es igual, pero no. El caso de KDE prueba con el siguiente comando:

echo “exec /usr/local/kde4/bin/startkde” > ~/.xinitrc

Con esto lograrás que arranque KDE al escribir startx en la consola.

Piens que BSD no es un Ubuntu, el instalar el entorno gráfico vendrá seguido de tener que ir agregando a mano todas las utilidades y herramientas de aplicacion que deseamos tener en nuestro entorno, no os saldrá preconfigurado.

Y un apunte final, si no queréis romperos la cabeza con esto, existe GhostBSD, un sistema operativo BSD con entorno gráfico GNOME ya instalado. No lo he probado, pero por comentarios que he leído parece que es bastante estable. Si alguno lo ha instalado ya, puede comentarlo por aquí.

Instalar complemento de PHP para MongoDB

Como complento a la entra sobre cómo instalar MongoDB en Linux, toca ver cómo se instala la extensión para PHP.

Algunas distribuciones de MongoDB ya traen de por si la citada extensión, así que antes de hacer nada prueba con lo siguiente:

php --re mongo

Si tras esto nos devuelve Extension mongo does not exist es que tenemos que instalarlo. Lo más fácil es usar los repositorios PECL, aunque recuerda que tienes que tener instalada una versión de PHP compatible, porque si no te dará error (si tienes PHP 5 no hay problema, si no instálalo). El código sería el siguiente:

sudo pecl install mongo

##Si necesitas instalar PHP lo puedes hacer con la siguiente instrucción##
sudo apt-get install php5-dev

Ahora, tras reiniciar el servidor basta con volver a ejecutar php –re mongo para comprobar que sí está instalada la extensión.

Con esto ya tienes la extensión para PHP de MongoDB instalada en tu equipo Linux.

Instalar MongoDB en Linux

MongoDB es un sistema de bases de datos «no SQL» (aunque lo haya metido en la sección SQL del blog), documental, que destaca por su velocidad y rendimiento. No en vano, muchas páginas con requisitos de gran escalabilidad están recurriendo a ete tipo de soluciones, como Facebook y Twitter, que han migrado parte de su base de datos (en un principio MySQL) a CassandraDB.

Aparte de un nombre horrible, MongoDB es bastante fácil de instalar, sólo hay que seguir estos pasitos tras descargar desde aquí la versión que se adapte a vuestra arquitectura (32bits o 64bits):

La idea es descomprimir el archivo (en el ejemplo será el de 64 bits, si bajáis el de 32 poned el nombre que corresponde), crear la carpeta donde MongoDB guarda los datos (/data/db) y darte permisos de usuario en ella. Tal que así:

tar -xzvf mongodb-linux-x86_64-1.8.1.tgz
sudo mkdir -p /data/db
sudo chown TU_USUARIO /data/db

Una vez cambiado el usuario a la carpeta /data/db, se debe ir a los archivos extraídos de MongoDB, entrar a la carpeta bin y ejecutar (con tu usuario) la aplicación: ./mongod

Si no aparece el mensaje «really exiting now» se está ejecutando el demonio de mongoDB, listo para conectar por defecto en el puerto 27017, aunque también tiene una interfaz web muy básica que pone a la escucha el puerto 28017 (puede consultarse en http://localhost:28017). Si quieres finalizar el demonio presiona ctrl + c.

Para hacer consultas desde consola de debe usar otro terminal, el el cual debes ir a la misma carpeta donde descomprimiste mongoDB, entrar a la carpeta bin y ejecutar la aplicación ./mongo que nos debe devolve un prompt vacío (símbolo >)

La shell de MongoDB es un intérprete de JavaScript por lo que podemos escribir scripts que pueden ser interpretados por la propia shell, utilizar las librerías estándares de JavaScript o escribir funciones en varias líneas.

> "Hello, World!".replace("World", "usuario molón");
Hello, usuario molón!

Cuando iniciamos la shell, el cliente conecta con la base de datos por defecto del servidor MongoDB y guarda la conexión en la variable db. Desde esta shell podemos utilizar las operaciones CRUD: crear, modificar, leer y borrar, para manipular y ver los datos en el shell.

Tras esto ya tienes instalado tu servidor de bases de datos MongoDB, si quieres documentación en español puedes tirar de su wiki oficial, para ir introduciéndote en este mundillo NoSQL

EDITO para comentar que en Ubuntu 12.04 han metido MongoDB en los repositorios, por lo que la instalación se simplifica con un básico

sudo apt-get install mongodb

En Debian que yo sepa de momento no, así que tenéis que seguir con el primer ejemplo, de momento.

Configurando una IP estática en Ubuntu

Aunque pueda parecer un anacronismo a algunos usuarios menos veteranos, configurar una ip estática no es algo de los años 90. Para configurar cualquier servidor (VPN, servidor de aplicaciones, sistema de intercambio de archivos) necesitaremos que la ip sea estática para dirigir hacia ella los puertos del router.

Voy a explicar como podéis hacerlo por medio del entorno gráfico. Lo primero es que busquéis Configuración del sistema y allí a Red, que está dentro de la sección hardware. Configuración del sistema está, por defecto, en el panel de inicio de Unity, a la izquierda.

Ya en la ventana de red selecciona la tarjeta a configurar y pulsa Opciones. Ahí vete a la pestaña Ajustes de IPV4. En Nombre de conexión pon lo que creas oportuno para no liarte. Método es lo más importante, por defecto debería estar DHCP así que cámbialo por Manual.

Ahora toca configurar la Dirección pulsado el botón Añadir. Ahí te toca elegir la ip que quieres, la máscara de subred y la puerta de enlace predeterminada. Daré por hecho que si quieres configurar una ip estática tienes estos conceptos básicos sobre redes claros, pero si tenéis dudas ponedlo en un comentario y me curro una entrada sobre esos conceptos.

Finalmente, nos queda elegir el servidor DNS. La práctica habitual es elegir al menos 2, por si uno se cae. Introduce las diferentes direcciones ip separadas por comas. Si quieres, aquí tienes un listado con algunos.

Ok, has ido siguiendo los pasos y ya tienes configurada tu ip estática. Pero como todo en Linux, requiere reiniciar el servicio. Al pulsar Guardar al terminar la configuración volverás a la ventana de Red. Ahí fíjate en un botón tipo interruptor que tienes en la parte superior derecha. Púlsalo una vez para desmontar la conexión y otra para reconectar. Si todo ha ido bien aparecerán los datos de conexión que has configurado antes.

Con todo esto tienes tu ip estática configurada en Ubuntu. Si eres usuario de Apple (además de darte mis condolencias y de decirte que te pases a Linux cuanto ants) te puedo comentar que los pasos para esto son los mismos para configurar una ip estática en un Mac, en lugar de Configuración del sistema, creo que el primer menú es Preferencias, luego allí vas a Red, luego a Ethernet, Avanzado y Configurar IPv4. Luego sigues los mismos pasos (ponerlo en Manual, configurar la dirección y elegir los DNS)

En fin, esto servirá de base para algunos artículos futuros.

Servicios VPN: PPTP vs OpenVPN

Conforme nuestros datos en la red son más importantes, y conforme se elaboran nuevas leyes draconianas para acabar no solo con nuestro anonimato, sino también con nuestra privacidad en internet, los servicios que aumenten la seguridad se confidencialidad de nuestros datos se tornan más populares e importantes.

Las redes VPN pasaron al primer plano de la prensa en España durante los debates sobre la ley Sinde-Wert, siendo la forma más fiable de asegurar la confidencialidad de nuestras comunicaciones. Si bien las VPN no son un concepto nuevo, si ha sido el último año y medio el periodo donde han logrado una mayor popularidad y difusión. En una VPN se utilizan varias medidas de seguridad:

  • Autentificación: El usuario que esté al otro lado debe estar autentificado en la red, sabemos a quién le enviamos el mensaje.
  • Integridad: Se usan algoritmos hash como SHA o MD5 para asegurar la integridad de los datos, que no han sido modificados entre el punto de salida y el de llegada.
  • Confidencialidad: Se utilizan algoritmos de clave asimétrica, como AES, para asegurar que sólo puedan ser leídos por el emisor y el receptor, y no por nadie que los intercepte en medio de la comunicación.
  • No repudio: El mensaje tiene que ir firmado, para el que firmante no pueda negar que fue él quien lo envió

Existen varios tipos de VPN (over LAN, tunnelig, punto a punto…), pero eso sería materia suficiente para otra entrada.

¿Y qué servicio de VPN es mejor? Los más populares son PPTP y OpenVPN, cada uno con sus ventajas e inconvenientes. PPTP sobre todo ofrece velocidad mayor a la de OpenVPN, una gran facilidad de configuración y compatibilidad con sistemas operativos de móvil y tablet (Andorid, iOS), pero por contra esta velocidad se gana por reducir las medidas de seguridad (encripta los mensajes sólo en 128 bits y no utiliza certificados digitale).

Por su parte OpenVPN ofrece la mayor estabilidad, encriptación en 256 bits y autentificación con certificados digitales, es un poco más complejo en configuración que PPTP y un poco más lento, pero tampoco en exceso, su configuración es fácil y su rendimiento bueno. Su verdadero contra es que no está disponbile para sistemas operativos móviles.(nota: esto era así cuando escribí el artículo, a día de hoy OpenVPN existe, al menos, para Android y funciona muy bien)

En resumen, la pérdida de velocidad y el aumento de complejidad de OpenVPN no son unos handicaps suficientemente grandes para decantar la balanza hacia PPTP con su menor seguridad. Para equipos de escritorio OpenVPN es la mejor solución, siendo PPTP la mejor opción cuando se trata de dispositivos móviles.