Yahoo planea rechazar la oferta de Microsoft.

Acabo de leer hace pocos minutos en The Wall Street Journal, que Yahoo planea enviar una carta a Microsoft el lunes rechazando la oferta que hizo este de pagar $31 por acción considerando que ese valor es insuficiente y subvalúa el valor real de la empresa.

Es más el comite directivo considera que cualquier oferta de menos de $40 por acción no sera considerada en serio, el sentimiento general en el comite directivo de Yahoo es que Microsoft esta tratando de aprovechar los actuales momentos de debilidad del portal, para hacerce con el control del mismo.

Yahoo incluso esta considerando una alianza con Google, para poder mantener su independencia, pues lo cierto es que los libros contables de Yahoo, no son nada alentadores y necesita renovar su modelo de negocio para poder mantenerce en el mercado.

Anti-spam gateways

Una de las principales molestias que enfrenta diariamente todo usuario del correo electrónico es el spam, tambien conocido cómo correo no solicitado o basura, y que muchas veces va de la mano con otras plagas cómo los virus informáticos, el phishing o los troyanos.

Hay varias soluciones para luchar contra el spam, algunas son gratuitas, otras son de pago. Es más muchos progrmas anti-virus traen algun filtro anti-spam incluido. Pero a no dudarlo la solución más conocida y aplicada es SpamAssassin, un programa de OpenSource, que es practicament el estándar para la lucha contra el spam, en muchos servers, y que ha servido de base de algunos productos comerciales cómo los de Barracuda Networks.

En muchos casos SpamAssassin, se incorpora al servidor de correo electrónico, justo luego de que se ha aceptado el mail a través de la sesión SMTP y antes de que sea enviado a los buzones de correo electrónico de los usuarios.  La función de SpamAssassin es pues analizar todos los correos que entran al servidor, como resultado de dicho análisis, SpamAssassin decide si el correo es spam o no, y toma la acción indicada, por ejemplo etiquetarlo cómo spam, o borrandolo. Aunque SpamAssassin se ha ido mejorando con los años, y cada vez tenemos servidores más poderosos, el punto débil de esta solución sigue siendo el hecho de que SpamAssassin esta escrito en perl, un lenguaje interpretado, y que al correr sobre el mismo servidor de correo electrónico, lo cual añade más carga al CPU del server. Si por alguna razón recibieramos un alto volumen de spam, sencillamente nuestro servidor perdería el paso, por más potente que este fuera.

Una forma alternativa de resolver el problema sería usando anti-spam gateways, que no son más que otros servidores que se anteponen a nuestro servidor de correo y filtran el spam antes que alcance a nuestro server de correo. Que ventajas tenemos usando un anti-spam gateway, muchas dentro de ellas:

  1. El proceso de analizar los correos en busca de spam es puesto fuera de nuestro servidor de correo, por lo que no afecta la perfomance de nuestro servidor de correo.
  2. Se puede reemplazar fácilmente en caso de que se necesite más potencia, sin tocar la configuración de nuestro servidor de correo.
  3. Se puede poner todo un pool, de servidores que se repartan la carga del filtrado en caso de que nos enfrentemos a un alto tráfico, sin que sea necesario cambiar la configuración de nuestro server de correo.
  4. Puede actuar con cualquier servidores de correo electrónico, cómo sendmail, exim, postfix, qmail, Microsoft Exchange, etc., pues el filtrado se produce durante la sesión SMTP, no al momento de hacer la entrega del correo al buzón.

La pregunta sería, esta maravilla que es tan útil, cuesta mucho?, la respuesta es que no cuesta nada, les comentare sobre las 3 alternativas OpenSource más populares actualmente para implementar un anti-spam gateway:

SAGATOR: Esta escrito en Python y puede trabajar en conjunción con SpamAssassin, además de poder intergrarce con numerosos antivirus, cómo clamav, nod32, Dr.Web o Karspersky Antivirus. Su instalación y configuración es sencilla y ofrece la opción de mostrar las estadísticas a través de una página web, o integrarce con MRTG.

ASSP: Esta escrito en Perl, la detección de virus no esta incluida, pero ofrece muchas más opciones de detección de spam que Sagator, puede trabajar en conjunción con SpamAssassin cómo opción adicional. He usado este programa y no me puedo quejar, sólo con las opciones básicas puede reducir drasticamente el tráfico resultante de spam proveniente de redes zombis, así mismo el llamado spam colateral, que son los mensajes de rebote, de mails que no enviamos, pero que las redes zombis envian usando nuestras direcciones de e-mail. La administración y configuración de ASSP se hace a través de una interface web.

DSPAM: Esta escrito en C, no ofrece la posibilidad de efectuar una detección de virus, pero la eficiencia en la detección de spam y la velocidad a la que efectua la detección son claramente superiores a la de sus competidores. Ofrece una administración basada en web. Aunque su instalación no es tan sencilla cómo la de Sagator o ASSP, es sin embargo recomendable cuando se trata de dominios con alto tráfico.

Es mas si cuentan con el suficiente ancho de banda y la capacidad de marketing podrían armar un servicio de filtrado de spam, paracido a Postini, usando alguna de las tres soluciones anteriormente mencionadas.

¿Cómo saber si nuestro servidor Linux ha sido hackeado?

A pesar de las leyendas urbanas de que Linux es super seguro, o es muchísimo más difícil de hackear que un Windows, lo cierto es que dado el tamaño de Internet la probabilidad de que nuestro servidor sea atacado es mucho mayor, que hace algunos años atras. Además es conveniente recordar que una computadoras es tan confiable cómo el usuario que la administra  lo es.

Imagine que una computadora con Linux es cómo un auto, por más que le digan que necesita poco mantenimiento, si Ud. piensa que eso significa, ir a la gasolinera para poner combustible, pues no tardará mucho tiempo para que este en problemas. Si no revisa la presión de aire de las llantas, el nivel de aceite, y otros detalles, su carro no tardará en arruinarce.

Una computadora es también un activo valioso para muchas personas, y el que instale Linux como OS, no le garantiza que no sea victima de ataques, que pueden ser o no exitosos, en función de las medidas de seguridad que Ud. tome, por ejemplo actualice periódicamente su Linux, y aplique los parches más recientes a los programas que use con mayor frecuencia, y además revise periódicamente si es que no se ha colado alguien en su server, para ello existen dos utilitarios sobre los caules le dire cómo  instalarlos y usarlos.  El primero se llama  chkrootkit y el otro rkhunter.

chkrootkit: este programa detecta si en nuestro sistema ha sido instalado un "rootkit", que es un conjunto de programas que habilitan la administración remota del equipo, sin que el encargado del mismo se de cuenta.

Si cuenta con Debian o Ubuntu, instalarlo es tan fácil cómo tipear estos comandos:

Debian: apt-get install chkrootkit

Ubuntu: sudo apt-get install chkrootkit

Si Ud. no usa Debian o Ubuntu, no le queda más que instalar desde las fuentes, para ello debe de ir a la página web de chkrootkit, descargarlo e instalarlo en su sistema.

Ejecutar el programa es tan simple cómo invocarlo desde el prompt con privilegios de root, y el resultado sera un reporte que nos indica si nuestro sistema ha sido hackeado.

rkhunter: su nombre signigica casador de rootkits (rk = rootkit, hunter = casador), al igual que chkrootkit busca si nuestro sistema ha sido exitosamente hackeado y alguien ha instalado un rootkit o algun trojano, rkhunter debe ser descargado e intalado a mano, aquí el procedimiento a seguir cómo usuario root:

# wget http://superb-east.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.3.0.tar.gz
# tar xvfz rkhunter-1.3.0.tar.gz
# cd rkhunter/
# ./installer.sh –layout /usr/local –install
# rkhunter –update

Con los pasos anteriores rkhunter queda instalado y podemos efectuar el test de nuestro equipo cada vez que queramos con el siguiente comando (siempre como usuario root):

# rkhunter -c

Recuerde periódicamente ejecutar el comando "rkhunter –update", para asegurarce de que esta usando las últimas firmas de rootkits, troyanos o gusanos, sería el equivalente a actualizar los antivirus para los windows.

Cómo montar tu propia estación de radio por Internet

Este "Cómo", explica cómo se puede montar una estación de radio por Internet, usando dos programas OpenSource, IceCast2 e Ices2, es conveniente tener presente que para poner este proyecto en práctica se necesita un abundante ancho de banda si pensamos atender a varios usuarios simultáneamente. Adicionalmente el tema legal sobre los derechos de las canciones no será tocado en este blog, para ello consulte con un abogado especializado en el tema.

Una limitación tanto de IceCast2, como de Ices2, es que sólo hacen streaming de archivos en formato ogg, por razones de copyright, y si sólo se dispone de archivos mp3, se puede usar el programa mp32ogg.

Asumiremos además de que se usara Debian 4.0 o Ubuntu, para nuestro server que hará streaming de audio. Para la instalación y configuración debemos de tener privilegios de root, para ello en Debian, debemos estar logueados cómo root, para Ubuntu debemos de anteponer el comando "sudo" a cada uno de los comandos que se muestran en este "Cómo".

Primero instalamos IceCast2:

apt-get install icecast2

Ahora debe editar el archivo /etc/icecast2/icecast.xml y cambiar los valores por defecto de:

  • source-password, este será el password que usara ices2 para conectarse al server.
  • relay-password, este password se usaría si desea conectar dos servers en cascada.
  • admin-user, cómo su nombre lo indica el usuario que será el administrador de IceCast2.
  • admin-password, el password del usuario con privilegios de administración de IceCast2.

Después de haber cambiado los valores por defecto por otros que le convengan, debe editar el archivo: /etc/default/icecast2 y cambiar el valor de la variable "ENABLE" a "true", cómo se muestra a continuación:

# 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

Eso es todo. Ahora podemos proceder a iniciar el servidor icecast2:

/etc/init.d/icecast2 start

Ahora Ud. puede acceder a la interface web de IceCast2, simplemente apuntando al IP del server con su navegador a través del puesto 8000, por ejemplo si el IP del server es 192.168.1.100, para poder acceder a la interface web de IceCast2 debemos apuntar nuestro navegador a http://192.168.1.100:8000, aquí lo que deben de obtener:

IceCast2_imagen_1

Ahora que ya tenemos el server que hará el streaming del audio, necesitamos instalar Ices2, que nos permitirá introducir el audio en el server desde en un playlist. Caso contrario deberíamos de introducir audio a través de la tarjeta de sonido, pero no es lo que haremos en este tutorial.

Instalar Ices2, es tan fácil como tipear este comando:

apt-get install ices2

Luego de que hayamos instalado Ices2, debemos crear los directorios donde pondremos los logs, los archivos de configuración y los archivos de música que transmitiremos.

mkdir /var/log/ices
mkdir /etc/ices2
mkdir /etc/ices2/music

El directorio /var/log/ices es para guardar los logs de Ices2, el directorio /etc/ices2 contendrá los archivos de configuración, y el archivo /etc/ices2/music contendrá los archivos de música en formato ogg que transmitiremos.

Ahora tenemos que crear el archivo /etc/ices2/ices-playlist.xml, para ello podemos usar un editor de texto como pico o vi, por ejemplo podemos hacerlo de esta forma:

pico /etc/ices2/ices-playlist.xml

Y dentro copiaremos esta configuración:

<?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>Example stream name</name>
<genre>Example genre</genre>
<description>A short description of your stream</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">/etc/ices2/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">0</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>source-password</password>
<mount>/example1.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>

Lo único que debe de cambiar es lo que va entre los tags <password> … </password>, para ello lo hemos puesto en rojo para que se de cuenta, ese password es el que estableció para <source-password> en el archivo /etc/icecast2/icecast.xml

Luego de concluido lo anterior copie las canciones que desea hacer streaming en formato ogg en el directorio /etc/ices2/music

Finalmente para completar la configuración de Ices2, debemos de editar el archivo del playlist, donde pondremos en una línea cada canción que deseamos reproducir, recuerde que la ubicación del playlist es: /etc/ices2/playlist.txt

[…]
/etc/ices2/music/cancion_x.ogg
/etc/ices2/music/cancion_y.ogg
[…]

Con el paso anterior ya hemos finalizado la configuración de Ices2 y podemos iniciarlo, con este comando:

/usr/bin/ices2 /etc/ices2/playlist.txt

Para oír la música, pues simplemente volvemos con nuestro navegador a la página de IceCast2, http://192.168.1.100:8000 y podremos escuchar el streaming de audio simplemente haciendo click en el link "Click to Listen", aquí un screenshot de que deberíamos obtener:

IceCast2_4

Opcionalmente se puede conseguir el streaming de audio visitando directamente el URL

http://192.168.0.100:8000/example1.ogg.m3u

WinAmp debería de poder reproducir el sonido sin problemas, si sólo tiene Windows Media Player, este no incluye el codec del formato ogg, en el blog TechRecipies.com se explica cómo instalarlo en Windows Media Player. Aunque en lo personal les recomendaría a los usan Windows usar WinAmp en lugar del Windows Media Player. Para los que usan Linux, ogg esta soportado por defecto, sólo click y debería de comenzar a reproducir el audio.

Espero que este "Cómo", les haya sido de utilidad, espero sus comentarios.

Basic en el browser

Hace aproximadamente 30 años, fue la era dorada del BASIC, pues era el lenguaje de programación dominante en la microcomputación de finales de los 70 y principios de los 80, todas las micros de ese entonces como la Apple II, el Comodore 64 o el TRS Color-Computer, tenían una versión de BASIC instalado en un ROM y era lo que obteníamos cuando encendíamos las computadoras. Es más el concepto de sistema operativo cómo lo entendemos ahora era ajeno a la gran mayoría de entusiastas de aquellos tiempos, si querías hacer algo con tu microcomputadora, que el interprete BASIC no te ofrecía, no tenías más remedio que recurrir al lenguaje assambler y programar directamente el hardware, con lo cuál tu programa era importable a cualquier otra micro.

Para aquellos que quieran saber cómo era esa experiencia o para los que quieran recordarla, les comento que he encontrado un interprete BASIC, que corre dentro de una ventana del navegador. Es más se puede instalar como una extensión de Firefox, pues dicho interprete de BASIC esta enteramente escrito en JavaScript. El interprete en cuestión se llama NG-BASIC, y ha sido desarrollado por Navaho Gunleg.

Aquellos que quieran instalarlo cómo una extensión de su navegador Firefox, pueden hacerlo desde aquí.

Aquí les incluyo un screenshot, de la demo disponible en la página del NG-BASIC; aunque no lo he instalado cómo una extensión de mi Firefox, si lo he probado desde la opción de demostración disponible en el blog de Gunleg, y me parece una buena imitación de lo que fue el BASIC de los primeros microcomputadores.

NGBasic

Si se desean emuladores de los BASIC de las primeras microcomputadoras, pueden leer un post anterior de este blog, llamado "Un viaje al pasado" en donde detallo como conseguirlos e instalarlos, para ello se necesita del emulador de consolas XMess