Categoria: Debian

Como evitar el robo de ancho de banda

26.08.10 | por Tito Pelon [mail] | Categorias: Software Libre, Mandriva Linux, Debian, PRO

El Hotlinking o robo de ancho de banda es una práctica habitual en usuarios inexpertos o aprovechados. Consiste en que cuando un usuario se encuentra una imagen que le gusta en una web y la quiere colgar en la suya, en lugar de descargar esa imagen y subirla en su servidor directamente la enlaza desde su fuente original. ¿Cual es el problema de esto? Pues que cada vez que se muestra la página del usuario, se hace una llamada al servidor que contiene la imagen para mostrarla, consumiendo así su ancho de banda y sus recursos sin ofrecer un rendimiento a cambio. Es decir, tu servidor trabaja pero nadie está viendo tu web.

Como en algunos casos este tipo de acciones pueden suponer un intento de ataque, y en cualquier caso no está bien que la gente nos robe nuestros recursos (que cada palo aguante su vela), vamos a ver como podemos minimizar los daños de esta conducta en nuestro servidor Apache 2. Para ello veremos el ejemplo práctico que tenemos montado en este web:

Primero creamos una imagen bien llamativa, a ser posible incluso fea, para que aparezca cada vez que alguien nos intente hacer el hotlinking. Nosotros tenemos esta:

Imagen que aparecerá como aviso de hotlinking

Como podéis ver, la imagen la hemos alojado en un servidor de imágenes externo, pues lo que nos interesa precisamente es que no tengamos que mostrarla desde nuestro servidor.

Una vez la tenemos, vamos a configurar Apache 2. Lo primero es habilitar el mod_rewrite que nos hace falta:

En Debian

$ su
# a2enmod rewrite

Ahora vamos a modificar el /etc/apache2/sites-available/default añadiendo AllowOverride All a las fuentes principales:

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

Reiniciamos Apache

# /etc/init/apache2 restart

En Mandriva:

Si no lo tienes, instala el paquete apache-modules

# urpmi apache-modules

Editamos el fichero httpd.conf de Apache 2 y descomentamos la siguiente línea:

LoadModule rewrite_module modules/mod_rewrite.so

Reiniciamos apache:

# service httpd restart

Una ve configurado Apache creamos un fichero llamado .htaccess con el contenido siguiente:

# Vamos a evitar el robo de ancho de banda
# Habilitamos Mod_Rewrite

RewriteEngine On

# Generamos las reglas principales de rewriting.
# 1 Se aplicará a todos los dominios

RewriteCond %{HTTP_REFERER} !^$

# Excepto al nuestro
RewriteCond %{HTTP_REFERER} !^http://(www\.)proyectopqmc.com(/)?.*$ [NC]

# 2 Si queremos autorizar a algunas páginas a mostrar imágenes,
# como por ejemplo a Google Imágenes o Facebook, o la de algún amiguete
# añadir su dominio aquí, como en este esquema.

RewriteCond %{HTTP_REFERER} !^google.com [NC]
RewriteCond %{HTTP_REFERER} !^http://ohmygood.spaces.live.com [NC]
RewriteCond %{HTTP_REFERER} !^blogdrake.net [NC]
RewriteCond %{HTTP_REFERER} !^freesoftwareando.com [NC]
RewriteCond %{HTTP_REFERER} !^facebook.com [NC]

# 3 Imagen que se va a mostrar a los dominios que no estén autorizados

RewriteRule .*.(gif|jpg|swf|png|jpeg)$ http://img293.imageshack.us/img293/8282/hotlinkinggw1.jpg [L]

Guardamos el fichero y lo subimos a la carpeta raíz de nuestro servidor web. Es posible que necesitemos recargarlo:

# /etc/init/apache2 force-reload

o

# service httpd reload

Ahora cada vez que un dominio no autorizado intente enlazar una imagen nuestra directamente, les aparecerá ese cartelon tan feo, para befa y mofa del perpetrador. Para muestra, un botón:

http://wiki.taringa.net/posts/tv-peliculas-series/6605732/1080p-|-Hackers-%281995%29.html

Con Firefox, haz botón derecho sobre la imagen y selecciona “Ver información de la Imagen“. Verás que efectivamente apunta a una imágen de éste artículo. Pero el resultado mostrado es la imagen subida al servidor externo. Igualmente si pinchas en “Ver imagen” te redirigirá a la imagen de alerta.

Comparte esta entrada!!

Starcraft 2 en Linux: ¡Facil!

No soy el primero en escribir esto, pero más vale tarde que nunca:

Starcraft 2, como Blizzard nos tiene acostumbrados, corre bastante bien en Linux utilizando Wine. Únicamente hay que tener un par cosas bien puestas:

  • Actualizar Wine: Se recomienda la última versión, pero con la 1.32 funciona bien.
  • Tener un hardware apropiado: Si tu hardware es inferior a los requisitos mínimos del juego, no existe la magia. Aunque Starcraft es un poco más ligero que los juegos de su tiempo, pesa lo suyo.

Al lío. Una vez instalado y configurado Wine en nuestro Linux, montamos el DVDROM del juego. Abrimos una consola, nos vamos al cdrom (habitualmente /dev/cdrom, /media/dsk, /mount/cdrom, etc. según tu distro) y ejecutamos:

$ wine ./Installer.exe

Si todo funciona, se abrirá la ventana del instalador y podremos empezar el proceso. Cuando termine, le dejamos que se conecte a Internet para actualizarse.

Una vez finalizada la instalación ve al directorio donde se haya instalado y ejecuta:

$ cd “$HOME/.wine/drive_c/Archivos de programa/StarCraft II”
$ wine StarCraft\ II.exe &

Si todo ha ido bien, este último paso no es necesario, porque tendrás un icono creado en el escritorio.

En algun caso he observado que ejecutar el instalador desde el DVDROM se da un golpe, diciendo que no encuentra los datos de la instalación. Bien, la forma de resolverlo más sencilla es registrar el juego (que suponemos comprado,como el mío) en la web de Blizzard y descargar el cliente del juego. Éste se instala automáticamente y no da problemas.

Se han descrito algunos problemas en el sonido del juego, tanto en la release oficial como en las betas, que se solucionan de una firma muy sencilla:

Lo primero que hay que hacer es configurar wine para que imite Windows 7. En general, es la opción que ofrece un mejor rendimiento.

Si esto no funciona, ajustaremos los controladores de sonido de Wine de esta forma:

1º.- Abre una consola y escribe winecfg.
2º.- En la ventana que se despliega, selecciona la pestaña Audio.
3º.- En el apartado “Seleccion del controlador”, desactiva PulseAudio, ALSA y JACK, dejando marcado OSS.Importante esto si eres usuario de PulseAudio.
4º.- En el apartado DirectSound, cambia el valor de “Aceleración de Hardware” a “Emulación".

Aqui podéis ver los ajustes finales:

En WineHQ recomiendan deshabilitar la librería mmdevapi, que no está completamente implementada. No está de más que probéis a hacerlo si continuáis teniendo problemas. No dejéis de consultar el enlace para problemas relacionados.

Por último una recomendación personal. Para aquellos linuxeros enganchados a KDE4, os será util liberar recursos de hardware utilizando un entorno de escritorio más ligero, como LXDE o E17. Yo utilizo LXDE y los resultados son estupendos, y te ahorraras que el juego te lance una ventana de “reduce la calidad de visualización” en todo el medio de la pantalla cuando estés liquidando una colmena Zerg con el máximo de unidades disponibles.

Hala starcrafteros, luego digan que no les enseñamos cosas bonitas./strong>.

Comparte esta entrada!!

Sincronización con NTP

09.07.10 | por Tito Pelon [mail] | Categorias: Software Libre, Mandriva Linux, Otros, Debian, PRO

Cuando nos enfrentamos ante una infraestructura amplia de servidores que deben trabajar con un mínimo de sincronización, es importante que todos ellos compartan la misma hora, y ajustar manualmente la hora de cada uno no solo es una tarea tediosa, sino que además es inútil ya que la precisión es muy baja, y la latencia del hardware de reloj de un servidor normal puede retrasarlo hasta 2 segundos a la semana. Insostenible a largo plazo.

Afortunadamente, existe un protocolo llamado Network Time Protocol (NTP, Protocolo de Tiempo de Red) que nos permite mediante un sistema jerárquico de clientes-servidores sincronizar a través de una red la hora de los servidores contra una o varias fuentes. Es decir, que los servidores pueden pedirse la hora unos a otros siguiendo un modelo escalonado, manteníendo todos la misma hora con un margen de diferencia mínimo.

Esquema básico de una red NTP

Como comentamos, NTP tiene una estructura jerárquica dividida en ESTRATOS. El número de estrato de un servidor indica cuán lejos está de una fuente de hora original, siendo los servidores de estrato 1 los que constituyen una fuente de final de hora. Este tipo de servidores de estrato 1 son máquinas especiales equipadas con hardware específico capaz de obtener la hora en función de condiciones físicas externas, como por ejemplo los datos de un satelite de GPS o el eje de inclinación de la tierra. Este tipo de hardware es desorbitadamente caro, quepa decirlo. Ejemplos de este tipo de servidores de estrato 1 son los relojes atómicos de Greenwich (que miden el tiempo mediante las vibraciones del átomo de cesio) o los relojes astronómicos de la NASA.

En los siguientes estratos se van montando servidores que toman la hora de uno o varios estrato 1 y la sirven a estratos inferiores, con el objetivo de no saturar la carga de los servidores de más alto estrato y hacer más precisa su información. Los servidores de estrato 1 no suelen facilitar información a clientes, sólo a otros servidores. Técnicamente, no existe un limite en cuanto al número de estratos que puede haber en una jerarquía NTP, pero como convencíon podemos decir que 12 es el número máximo.

¿Como funciona NTP a nivel lógico? Sencillamente, cuando un cliente solicita información de hora a un servidor, este le devuelve su hora local, su huso horario y su estrato. Si no está configurado para ser fuente directa, en lugar de su hora local devuelve la hora del servidor o servidores con los que esté sincronizado. El cliente es el que se encarga de hacer los cálculos para decir que hora se queda.

Y ahora, ¿como se implementa? NTP es tremendamente sencillo. Veamos como se implementa en Windows y en Linux:

IMPLEMENTACIÓN DEL SERVIDOR

Windows:

Para implementar un servidor NTP en Windows, simplemente debemos descargar el servidor desde la web de Meinberg, que realiza el desarrollo para Windows. La licencia es libre.
Ejecutamos el fichero descargado y seguimos las instrucciones para instalación completa. Acto seguido, comenzamos a configurar el servidor:

En este menú, podemos dejar por defecto la ruta del fichero de configuración. A continuación marcamos la casilla “Crear configuración inicial”. Podemos elegir entre sincronizar contra fuentes estándar del pool de NTP.org en la primera pestaña, o especificar una lista de servidores personalizados en el cuadro de abajo. Puedes dejarlo vacío si quieres que la única fuente sea el reloj interno del servidor.

NOTA-YA-TE-LO-DIJE: No es buena idea utilizar el reloj interno del servidor como fuente de hora NTP por su imprecisión, salvo que este esté sincronizado a su vez con otra fuente por otro medio (como un controlador de dominio). Tampoco es conveniente tener muchas fuentes de hora: no te darán más precisión, si cabe menos. Es mejor tener dos o tres fuentes cerca de tu área geográfica que 14 de todo el mundo.

También se puede especificar si se va a usar la característica iburst. Más inforamción sobre esta característica en la web de Meinberg. En la siguiente casilla especificaremos que estrato tiene el servidor, útil si estás montando tu propia jerarquía.

Una vez instalado y configurado, dispones del siguiente menú en Inicio para controlar el servicio:

Haciendo click en la opción Start ya lo tendremos listo para aceptar peticiones.

Linux/Unix:

En los sistemas Linux/Unix es habitual que el demonio ntpd venga instalado de serie. Si no lo estuviese, es tán sencillo como instalarlo empleando los sistemas de paquetería habituales.

Los usuarios de Mandriva harán:

# su
# urpmi ntpd

Los usuarios de Debian harán:

# su
# apt-get install ntpd

Y si usas Solaris debes descargar el paquete desde Sun Freeware y ejecutar:

# su
# gunzip ntp-4.2.6-sol10-sparc-local.gz
# pkgadd -d ntp-4.2.6-sol10-sparc-local

A continuación procedemos a configuar el servicio. Si tienes un asistente gráfico, mejor que mejor, sino edita el ficero /etc/ntp.conf con tu editor de texto habitual. Veamos como es el fichero con su explicación:

# Esta línea permite que otros se sincronicen con nosotros,
# pero sin modificarnos.
restrict default kod nomodify notrap nopeer noquery

# Permitimos todas las conexiones por la interfaz de loopback,
# para sincronizarnos nosotros mismos
restrict 127.0.0.1
restrict -6 ::1

# En esta línea podemos dar permisos especiales a un determinado rango de red.
# Pon los rangos de red y la máscara de subred que se puedan conectar a tí.
# Más información sobre esto en ntpd.og.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Aquí indicamos que si no hay ninguna fuente disponible, utilicemos
# nuestro reloj de hardware como fuente, indicando el estrato.
fudge 127.127.1.0 stratum 10

# Este fichero contiene la varianza entre la hora cedida y la cargada.
# No lo toques.
driftfile /var/lib/ntp/drift

# Fichero de claves para uso de criptografía cruzada.
# No lo toques-.
keys /etc/ntp/keys

# A continuación especificamos los servidores con los que nos vamos a sincronizar,
# así como las reglas que vamos a aplicar con cada uno de ellos.
# Si no hay nada se empleará la fuente local.
server 192.168.13.238
restrict 192.168.13.238 mask 255.255.255.255 nomodify notrap noquery

Para crear un servidor, únicamente debemos especificar los servidores a los que vamos a sincronizar o la línea fudge para ser nosotros fuente, y especificar el rango de red que podrá solicitar sincronización.

Después, arrancamos el servicio según nuestro sistema operativo.

IMPLEMENTACION DEL CLIENTE:

Al ser un servicio estándar, para configurar el cliente es irrelevante el SO del servidor. Todos funcionan con todos. Veamos lo sencillo que es configurar un cliente:

Windows:

En Windows la forma más sencilla de configurar NTP es hacer doble click sobre el reloj. En el cuadro que se despliega seleccionamos la pestaña Sincronización de Hora de Internet y dentro marcamos la casilla “Sincronizar automáticamente con un servidor de hora“. Indicamos en la pestaña el nombre del servidor y pinchamos en “Actualizar ahora“.Si todo va bien debería coger la hora sin problemas.

Linux/Unix:

Para sincronizar con Linux y Unix, igualmente debemos tener instalado el paquete ntpd. Lo instalamos si no lo tenemos como hemos explicado antes.

Desde una consola, ejecutamos el siguiente comando:

# ntpq -p host-ntp

Donde host-ntp es el nombre de host o IP del servidor NTP que hemos configurado. Con este comando testeamos si somos capaces de sincronizar con el servidor. Si funciona, nos devolverá una línea por cada fuente configurada del servidor. En este ejemplo el servidor sólo tiene configurada com ofuente su hora local:

# ntpq -p time.server.com
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 12 l 35 64 377 0.000 0.000 0.001

Una vez hemos comprobado que llegamos, simplemente editamos el fichero /etc/ntp.conf y añadimos las siguientes líneas al final por cada fuente:

server [host]
restrict [host] mask [subnet] nomodify notrap noquery

Arrancamos o reiniciamos el demonio ntpd y podremos comprobar como ahora servidor y cliente comparten al segundo la misma hora.

Comparte esta entrada!!

Implementar un servidor NFS en Debian

13.04.10 | por Tito Pelon [mail] | Categorias: Software Libre, Mandriva Linux, Debian, PRO

Si, lo se. Estoy que me salgo. Ahora vamos a implementar un NFS en el servidor Debian que nos servirá para gestionar los backups.

Leer mas... »

Comparte esta entrada!!

Implementar SSH en Debian

13.04.10 | por Tito Pelon [mail] | Categorias: Software Libre, Mandriva Linux, Debian, PRO

Como os comentaba en la anterior entrada, administrar el servidor que alberga el NIS en local puede ser una tocada de huevos, así que lo suyo es implementar una shell segura para conectarnos a él de manera remota.

Leer mas... »

Comparte esta entrada!!

Como crear un dominio de red Linux con NIS

12.04.10 | por Tito Pelon [mail] | Categorias: Software Libre, Mandriva Linux, Debian, PRO

Aprovechando que un repentino e inexplicable ataque de lumbalgias atormenta mi espalda, y que la silla del ordenador es el único asiento de toda la casa que no me hace sentir como si me clavaran mil cuchillos, pues empiezo con el primer tutorial de los prometidos.

Leer mas... »

Comparte esta entrada!!

Pro

06.04.10 | por Tito Pelon [mail] | Categorias: Software Libre, Mandriva Linux, Otros, Debian, PRO

Bien, ya has llegado a ese punto. Tienes cinco maquinotes en casa, que ensamblaste tu mismo con tus propias manos, en una habitación dedicada para ellos solos. Al menos tres de ellos no se apagan nunca. Todos los trastos funcionan con Linux y usas un router Linksys WRT54GL con firmware basado en linux, al que además quieres meter OpenWRT. Tienes un servidor Apache sirviendo una página web creada por tí en PHP, apoyada en una base de datos MySQL, tu propio servidor DNS de cache y zona interna con Bind 9, y gestionas las backups de todo esto con Clonezilla.
Pasas de la paquetería y compilas los programas a mano para ajustar su configuración a tus necesidades o solo por entretenimiento, y estas convencido de que Dios nos creó con ./configure && make && make install. Además, sincronizas la hora de los relojes con NTP contra un servidor de internet del pool de Debian.

Leer mas... »

Comparte esta entrada!!

:: Pagina siguiente >>


Cerrar X