jueves, 2 de febrero de 2012

Fichero Hosts

¿Qué es el fichero Hosts?

El archivo Hosts de un sistema operativo es aquél que guarda la correspondencia entre dominios y direcciones IP, basado en el protocolo TCP/IP actual. Es el antiguo predecesor del ya conocido Servidor DNS, ya que antiguamente la relación de direcciones IP y dominios de las páginas web se almacenaban en éste fichero. Con el paso del tiempo, al implementar los servidores DNS y crecer los nombres de dominio, los archivos Hosts pasaron a un segundo plano, usados ya únicamente para redirecciones locales y otros usos.

¿Dónde se almacena el fichero Hosts?

Depende del sistema operativo. En cada sistema tiene una ruta diferente, aunque su uso sea similar.

  • Linux: /etc/hosts
  • Windows XP/Vista/7: C:\Windows\system32\drivers\etc\hosts
  • Windows 95/98: C:\Windows\hosts
  • Windows NT/2000: C:\WINNT\drivers\etc\hosts
  • Mac: /private/etc/hosts
¿Qué podemos hacer con dicho archivo?


Dentro de las utilidades que le podemos sacar a este archivo es, por ejemplo, implementar desde el mismo páginas web locales para que funcionen como si fueran un dominio real. Así, por ejemplo, podemos redirigir el dominio www.ejemplo.com a una dirección IP concreta.

Éste archivo, al ser abierto, tiene la mayoría de las direcciones IP comentadas como ejemplo, y se destaca notoriamente que aparece en bastantes ocasiones la dirección localhost. localhost es, sencillamente, el nombre de nuestra propia máquina, y siempre redirige a la dirección de loopback (127.0.0.1)


¿Cómo? ¿Tan pocas cosas puede hacer el archivo?

No. El fichero hosts también puede ser usado para hacer una implementación mínima si en nuestra empresa o red local no queremos implementar un servidor DNS, o queremos hacer un bloqueo de ciertas páginas web.

Como antes expliqué, el archivo hosts puede ser usado para redireccionar dominios a direcciones IP. Si tenemos un servidor Apache implementado en una máquina y queremos que al hacer la petición a un dominio se redireccione a dicho servidor, podemos añadir a todas las máquinas cliente, en el archivos Hosts de cada una, el dominio que queramos añadir y la dirección IP del servidor. Antes de realizarlo, tenemos que asegurarnos que dicho dominio no está registrado, pues si por ejemplo usamos www.google.es como dominio para la redirección al servidor Apache, no podremos acceder nunca a www.google.es a no ser que eliminemos la línea, dado que el sistema mira antes el fichero hosts que el DNS, con lo que nunca llegaría a resolver bien el dominio de Internet.

Quizá, el uso más interesante que se le da a menudo a este fichero es la utilización del mismo para el bloqueo de dominios no deseados

Haciendo nuestro propio archivo Hosts

Una vez explicado el uso más común que podemos realizar en el fichero, pasaremos a explicar cómo realizarlo en los dos casos que mostré anteriormente:

  • Supuesto 1: Tenemos un servidor Apache implementado en una máquina, la cual tiene como dirección local 192.168.11.1, y queremos que nuestro ordenador resuelva ésta dirección IP con el nombre de dominio www.apachito.com
La solución no puede ser más fácil. Nos dirigimos al archivo Hosts de nuestro sistema (Sea cual sea), y lo modificamos. Para modificar el fichero, necesitaremos de razón obvia permisos de administrador.

Para añadir la línea, debemos tener cuidado de no comentarla. Así, por ejemplo, si la línea que hemos creado tiene una almohadilla delante, no funcionará.

El formato del fichero es el siguiente:


(Dirección IP)              (Dominio)

Con lo cual, en la última línea, añadimos:


# Servidor Apachito de la dirección 192.168.11.1
192.168.11.1                www.apachito.com

Para identificarlo, podemos añadirle encima de la línea un comentario, opcionalmente.
Ahora solo resta guardar y reiniciar la máquina para que los cambios hagan efecto.

  • Supuesto 2: Hemos notado que una persona está entrando en una página que no queremos (En estos tiempos, por ejemplo, un profesor que no quiere que sus alumnos se metan en redes sociales desde los ordenadores de clase). Hemos probado a bloquear la dirección de Internet de dicha página con un servidor ISA, pero aun así existen otros resquicios, como el uso de proxy para la redirección y saltarnos así la restricción de los servidores que intentan bloquearlo.
Para este caso, podemos añadir una redirección a nuestro host local (localhost), con lo que el navegador resolverá el dominio utilizando nuesta IP, con lo que si no introducimos ningún servidor Apache, el navegador dará time out y no resolverá correctamente.

En esta ocasión, añadiremos por ejemplo la página www.tuenti.com.
Abrimos archivos Hosts, introducimos ésta línea

#Bloqueo de la página de Tuenti
127.0.0.1             www.tuenti.com

Nota: Si existe alguna otra redirección de la página, tendremos que añadirla igualmente. Se pueden añadir a la misma dirección local.

  • Supuesto 3: Queremos redireccionar una página web cualesquiera (www.google.es, por ejemplo) a una página web concreta (www.yahoo.es). Sí, vale, sé que los navegadores son rivales unos de otros y que sería hacerle la pelota a Yahoo, pero es un ejemplo ¿No?
Lo primero de todo, necesitamos saber la dirección IP de www.Yahoo.es

Podemos usar las herramientas nslookup o ping para determinar su IP, o bien, buscar por Internet cuál es. Tratándose de un servidor de búsqueda, podemos añadirle igual todas las direcciones IP y que todas acompañen al dominio.

Ejemplo: Hemos determinado que las direcciones IP de Yahoo son 80.70.60.50, 80.70.60.51 y 80.70.60.52.  (no son estas en realidad, es un ejemplo)
Modificamos el archivo Hosts con las direcciones IP y el dominio.

# Bloqueo de Google para redirección
80.70.60.50             www.google.es
80.70.60.51             www.google.es
80.70.60.52             www.google.es
Cuña publicitaria: El conocimiento de éste uso en este archivo puede ser utilizado para otros "usos" no tan serios como los puestos aquí. No me responsabilizo del mal uso que se le puedan dar a estos datos.

¿Pero digo yo que todo tiene una pega con éste fichero, no?

Evidentemente, el archivo hosts tiene sus pegas.

  • Una excesiva entrada de direcciones IP de redirección podría ocasionar una lentitud a la hora de resolver dominios, debido a que el ordenador revisa primero el archivo Hosts. Si el mismo es muy extenso, resolverá más lentamente.

  • Muchos antivirus tienen calado dicho archivo, con lo que si intentamos modificarlo en ocasiones nos puede dar muchos fallos inesperados. La razón de ésta monitorización al archivo se debe a posibles phising, ya que un virus nos puede redireccionar la página de un dominio a otra página falsa para sacar nuestros datos. Siempre que vayas a acceder a páginas protegidas, como bancos, asegúrate que disponen de firma y certificado digital, suministrado por una empresa de dispensación de certificados y que el dominio use el protocolo https

  • Redirigir dominios web a la dirección loopback es efectivo si y solo si el ordenador dispone de un servidor Apache o puede ejercer alguna función con dicha dirección. Si causamos un time out, habremos malgastado bastante tiempo resolviendo una dirección que no se puede. Para ello, podemos dar otras direcciones que induzcan a error, como una máscara de red.

  • Si tenemos programas activos en la loopback podrían dar problemas al redireccionar a la misma si usamos la 127.0.0.1 para redirección de páginas bloqueadas.
Fuente:

Experiencia con profesores, dando el tema sobre httpd y Apache.
Wikipedia.org
Experiencia propia

Revisado por última vez: Noviembre 2012.
Modificaciones: Algunos problemas de coherencia en el texto. 

No hay comentarios:

Publicar un comentario

Comenta si te gustó la entrada, algún error que tenga, o simplemente entra a debatir si tienes algún problema, pues recuerda que aquí todo es posible y nada es seguro (Y a lo mejor a mí se me ha podido ir la pinza y escribir algo mal)

Por favor, sé conciso y ten buena escritura, que aquí no se cobra por letras ni palabras a usar. Los comentarios estilo HOYGAN o descalificativos no serán publicados.