Desde los primeros pasos de Internet y los sistemas operativos, el fichero hosts ha estado muy presente para los administradores de redes y empresas principalmente. Ya sabéis que la mayoría de configuraciones de programas y funciones de un sistema operativo se basa en ficheros, y esto es muy evidente en Linux. En el modo consola un administrador estará prácticamente todo el día modificando ficheros y creando nuevos.
Pues hosts es uno de estos ficheros, el cual fija la correspondencia entre dominios y direcciones IP de internet. Aunque no es tan importante hoy día por el hecho de tener servidores DNS en prácticamente todas las conexiones existentes y una enorme cantidad de IP dinámicas. De hecho, nuestro propio router, ISP o Google ya hace de servidor DNS.
Índice de contenidos
Qué es el fichero hosts
El fichero hosts ha estado presente desde los primeros pasos de Internet, cuando la cantidad de direcciones IP y de dominios de la red era relativamente escaso. Se trata de un fichero en texto plano accesible en cualquier sistema operativo, ya sea Windows, Linux, Mac o cualquier otro. Eso sí, siempre deberá ser editado por un usuario con permisos de administrador o root en caso de Linux.
Las funciones principales que tiene un fichero hosts en nuestro equipo son las siguientes:
- Almacenar y asignar nombres de host a una dirección IP: es su función principal y la razón de existencia antes de que evolucionara Internet a los niveles actuales. En este fichero hacía básicamente de servidor DNS local, y en él se almacenaba la correspondencia entre dominios y direcciones IP.
- Resolución de nombres de dominio local y remoto: el hecho de funcionar como una tabla DNS no solo permite resolver dominios locales, sino también remotos, y podríamos nosotros mismos escribir la relación entre www.profesionalreview.com y la dirección IP 213.162.214.40
- Acelerar el acceso a páginas web: al poder resolver el DNS directamente desde un fichero local, no se necesitará un DNS externo y el tiempo que éste tarde en realizar la tarea. Actualmente la latencia va a ser despreciable, pero en conexiones muy lentas, quizás merezca la pena probarlo.
- Es capaz de bloquear contenido web de internet: al igual que puede permitir un acceso más rápido a un sitio web también es capaz de denegar el acceso como si de una lista negra se tratase. De hecho, es muy posible que hayas entrado en este artículo buscando la forma de bloquear el acceso del equipo a ciertas páginas para aplicar medicinas a juegos o programas de pago
Hosts todavía sigue existiendo en todos los sistemas operativos, pero su uso de alguna forma quedado reducido a nivel empresarial para resolver nombres de dominio locales. Y más concretamente en aquellas redes que no utilicen servidores DNS como por ejemplo en Windows Server o distribuciones Linux.
La ingente cantidad de dominios existentes en internet, y el hecho de poder utilizar IPv6 o IP dinámica hacen casi inviable configurar fichero hosts como DNS interno. Si aún se utilizara, este fichero ocuparía muchísimo espacio en nuestro equipo y sería más una desventaja que cualquier cosa. Ya existen grandes tablas DNS en servidores de Google, Yahoo, etc, y son las que todos utilizamos.
Dónde se encuentra el fichero hosts en Windows
Ahora que ya sabemos qué es el fichero hosts, debemos de encontrarlo en nuestro sistema operativo para poder configurarlo. Veamos en primer lugar dónde lo tiene guardado Windows, pudiendo acceder a él bien desde la interfaz gráfica o mediante comando.
La ruta en la que se encuentra sin excepción, y para todos los sistemas Windows, será la siguiente:
C:\Windows\System32\drivers\etc\
Si accedemos mediante interfaz gráfica será tan simple como colocar en el explorador de archivos esta misma ruta para acceder directamente a él.
En caso de que decidamos hacerlo en modo comando con Símbolo del sistema o PowerShell, utilizaremos el siguiente comando. Y si pensamos en editarlo, mejor entrar ya con permisos de administrador.
cd C:\Windows\System32\drivers\etc\
El fichero que nos interesa será el que no tiene extensión, ya que existe otro tipo calendario con el mismo nombre que puede llevarnos a error.
Dado que Windows siempre va a estar en la unidad C:\ pues no tiene pérdida. Claro que en caso de acceder al fichero de forma remota o desde una unidad de recuperación, puede que la letra cambie, así que debemos verificar esto antes por ejemplo con diskpart.
Localizar hosts en Linux, Mac y Android
Si estamos trabajando en un sistema distinto al de Windows también tendremos estas dos formas de acceder al fichero hosts sin ningún problema.
Para el caso de Linux, utilizaremos el modo consola por ser siempre el más rápido y utilizado por los administradores de red. Accederemos al terminal y usaremos el siguiente comando para acceder a él:
cd /etc/
Y si deseamos editar su contenido, debemos de hacerlo con permisos de root y por ejemplo usando el programa nano presente en distribuciones GNU para abrirlo:
sudo nano /etc/hosts
Si estamos en un sistema operativo basado en OSX como cualquier versión de Mac, entonces la ruta de acceso será la siguiente:
/private/etc/
Y para poder editarlo en modo comando, podríamos utilizar el mismo programa nano con permisos de root.
Incluso Android cuenta con un fichero hosts como sistema operativo que es. Y como en este sistema tenemos aplicaciones para casi todo, pues lo más sencillo será ir a la tienda de Google e instalar Open Hosts Editor que accederá directamente al fichero. En este caso necesitaremos tener nuevamente permisos de root para poder editar el fichero.
Estructura interna común en cualquier sistema
Para saber cómo configurar fichero hosts de Windows necesitamos ver su estructura de forma rápida. Podremos abrirlo simplemente pulsando con botón derecho sobre él eligiendo Abrir con.
En la lista que aparezca, pues elegiremos por ejemplo Bloc de Notas o WordPad que siempre están presentes en el sistema de forma nativa.
Una vez dentro, la pinta que tiene no será precisamente la más amigable del mundo, aunque al menos nos da una buena explicación acerca del funcionamiento y cómo configurar fichero hosts
Se trata de un fichero en texto plano sin formato predeterminado y por tanto compatible con cualquier editor. Cada entrada que hagamos en el fichero deberá estar en una línea individual separada de la anterior y posterior con al menos un salto de línea. Para mayor claridad, podrimos dejar un hueco libre, aunque no es necesario.
El fichero dispone de tres columnas que no tienen por qué en el mismo espacio de tabulación. De hecho, basta con separar cada uno de los tres elementos con un espacio para considerarlos elementos diferenciados.
- Primera columna: en ella debemos colocar la dirección IP del host con los respectivos puntos que separan los cuatro valores numéricos. Tras ella, debemos colocar un espacio.
- Segunda columna: en este debemos colocar el nombre del host o DNS, no siendo necesario clocar las www. Tras este, será necesario poner otro espacio.
- Tercera columna: esta columna servirá para añadir un comentario descriptivo si así lo deseamos. Éste deberá abrirse siempre con una almohadilla “#” y ocupar una sola línea.
Todo lo que esté seguido de # formará parte de un comentario, pues vemos que toda la información del fichero está comentada y por tanto no es funcional. En resumidas cuentas, al entrar para configurar fichero hosts nos encontraremos éste sin contenido útil.
Configurar fichero hosts en Windows 10
Tras ver la sencilla estructura que será exactamente la misma en el resto de sistemas, vamos a configurar fichero hosts para ver qué es lo que podemos hacer con él.
Abrir fichero hosts como administrador
El objetivo será abrir el fichero hosts con permisos de administrador para luego poder guardarlo sin impedimentos y que el sistema no nos obligue a guardarlo en una carpeta fuera del sistema.
Dentro del directorio \etc\ vamos a pulsar sobre Archivo y seguidamente sobre la flecha de Abrir Windows PowerShell. Ahora se nos abrirán dos opciones distintas, y debemos elegir siempre abrir con permisos de administrador.
De esta forma el terminal de comandos se nos abrirá en la ruta actual, y para abrir el fichero hosts y poder editarlo como administrador podemos poner el siguiente comando:
notepad hosts
De esta forma el fichero se abrirá con el bloc de notas bajo interfaz gráfica para su edición sin impedimentos por cuestión de permisos.
Crear DNS locales con el fichero hosts
La DNS más básica de todas será precisamente una que está presente en el fichero de forma comentada, y es la de 127.0.0.1 localhost. Esta DNS se utiliza para pruebas de loopback, por ejemplo, para verificar el funcionamiento de un demonio de servidor interno del equipo, o ver si la tarjeta de red interna está funcionando correctamente.
A nuestro propio equipo siempre se le asignará esta dirección IP internamente, así que no debemos utilizarla nunca como IP interna o externa en una red. Sería lo mismo que escribir ::1 para referirnos a esta IP.
Imaginemos por ejemplo que tenemos un equipo con un servidor montado y queremos acceder a él desde la red interna. Este puede ser por ejemplo un servidor web, de correos o de dominio. Colocaríamos el contenido siguiente las pautas marcadas:
192.168.0.20 web.profesionalreview.com
También podríamos resolver los nombres de otros equipos de la red a partir de su IP. Aunque esto realmente ya lo hace el sistema operativo de forma interna.
11.11.11.2 PC-PPAL
Notemos la diferencia entre hacer un ping a PC-PPAL sin la información cargada en el ficho hosts y con ella puesta.
Vemos que tras añadir la línea al fichero el sistema resuelve perfectamente el nombre con la IP del equipo en lugar de mostrar otra información menos comprensible para el usuario.
Usar Hosts para bloquear contenido de Internet
Además de resolver nombres de hosts y dominios webs, configurar fichero hosts también nos permite bloquear otros cuales queramos. Es una forma bastante sencilla de hacerlo sin ayuda de programas externos y para determinadas direcciones que el adblocker o firewall considere seguras.
La idea para este método es redirigir una determinada dirección web a nuestro propio equipo o a una dirección IP incorrecta o que no lleve a ningún lugar. La dirección IP más recomendable para utilizar es una máscara de subred estilo 255.255.255.0.
¿Por qué usar esta? Pues porque ningún host en LAN o WAN la usará como IP, y así evitamos enviar peticiones inválidas a nuestro equipo. Supongamos que tenemos un servidor web en nuestro equipo, será mala idea mandar peticiones basura al localhost y cargarlo. Además, otras aplicaciones de firewall podrían detectar estas peticiones como erróneas y cargar el log de información inútil para el usuario.
Pongamos un par de ejemplos de cómo haríamos un bloqueo siguiendo la estructura básica del fichero:
255.255.255.0 www.profesionalreview.com 255.255.255.0 www.google.es
Debemos omitir la cadena “https://” pero no las www. ya que formará parte de la dirección web. Guardamos, y ahora cuando accedamos a la dirección web obtendremos esto:
Guardar el fichero hosts correctamente
Parece una obviedad, pero debemos asegurarnos de guardar el fichero hosts de forma correcta para que los cambios sean leídos por el equipo. Esto significa que el archivo deberá ser guardado de nuevo sin extensión.
En modo comando en principio no tendremos problema, pero en modo gráfico, NotePad o WorPad aplicarán por defecto una extensión al fichero, si no atendemos a esto, lo que estaremos haciendo es crear un nuevo fichero en la carpeta que no servirá para nada.
Partiendo de que ya teníamos abierto el fichero como administrador, solamente debemos pulsar en guardar para que los cambios se apliquen al fichero original. Si usamos la opción de guardar como, estaremos atentos de elegir en la extensión “Todos los archivos (*.*)”
Conclusiones y problemas de seguridad conocidos de ficho hosts
Como podemos ver, configurar fichero hosts es una tarea bastante sencilla en el momento que sabemos dónde se ubica y que debemos tener permisos de administrador para editarlo.
Antes de finalizar, debemos tener presente que en los sistemas Windows han aparecido numerosos virus que son capaces de acceder a hosts y modificar el fichero para bloquear el acceso a páginas de antivirus o redirigirnos a otros lugares no deseados. A esto se le conoce como phishing, seguramente hayáis oído hablar de este tipo de ataques. Con ello pretenden redirigir al usuario a página falsas, por ejemplo, la de un banco a una IP para capturar nuestros datos de usuario o información privada.
Os dejamos ahora con unos cuantos artículos interesantes de redes:
Esperamos que haya sido un artículo útil para el que no conociera hosts, y tengamos siempre cuidado con el phishing.