domingo, 15 de mayo de 2022

Cómo modificar el archivo de hosts en Windows

¿Sabiaís que el archivo ‘/etc/hosts’ también está presente en Windows? Este archivo, que mucha gente asocia a Linux y los sistemas operativos Unix y tipo Unix, es en realidad un viejo compañero de viaje que permite asignar nombres de host a direcciones IP.

El archivo de hosts o ‘/etc/hosts’ (si bien esa no es la única ubicación en la que se puede encontrar, ya que eso depende del sistema operativo) se llamaba originalmente HOSTS.TXT y fue en un principio puesto a disposición a través del uso compartido de archivos por parte del Instituto de Investigación de Stanford para los miembros de ARPANET, la primera red de computadoras creada por encargo del Departamento de Defensa de Estados Unidos. Básicamente lo que contenía y sigue conteniendo son nombres de hosts con sus direcciones IP para resolver nombres de dominio.

La red, debido a su constante crecimiento, empezó a ser demasiado grande para su mantenimiento manual, así que entre 1983 y 1984 apareció DNS (Domain Name System) para proporcionar un marco de resolución instantánea y dinámica de los nombres de hosts.

A pesar de que DNS ha reducido mucho el uso del archivo de hosts, este todavía tiene utilidad para tareas como redirigir dominios locales para probar páginas, bloquear contenidos de Internet e impedir el contacto con los servidores de activación en ciertos procesos de pirateo de aplicaciones.

Archivo ‘/etc/hosts’ en Linux

Sin embargo, el archivo de hosts también puede ser un vector de ataque para el software malicioso. En esta circunstancia el malware podría modificar el archivo de hosts para que redirija el tráfico hacia servidores que alojan contenido malicioso o indeseado. Por ejemplo, es posible que el usuario infectado acabe viendo publicidad extraña o minando alguna criptodivisa a través de su navegador web, siendo esos escenarios aparentemente más probables que ver su computadora inutilizada (si bien eso nunca se puede descartar). Los actores maliciosos muchas veces prefieren que su malware pase inadvertido para así evitar ser detectados.

Pese a los inconvenientes que arrastra, el archivo de hosts puede ser empleado, además de lo ya mencionado, para configurar un pequeño entorno de pruebas dentro de una red local (LAN). Ese es el escenario que vamos a cubrir en esta entrada para enseñar a configurar de forma básica el archivo de hosts en Windows.

¿Dónde se ubica el archivo ‘/etc/hosts’ en Windows?

Sin más dilación, la ruta a seguir con el explorador de Windows es la siguiente: “Este equipo” > C: > Windows > System32 > drivers > etc > hosts (el último elemento de la ruta es el archivo).


La ruta sin el archivo es la siguiente si se quiere copiar y pegar su ubicación en el explorador de archivos (antes hay que pulsar ‘Ctrl+L’):

C:\Windows\System32\drivers\etc

Y esta la ubicación concreta del archivo ‘/etc/hosts’ en Windows (recordamos que al sistema de Microsoft le da igual la dirección de las barras ‘/’ y ‘\’):

C:\Windows\System32\drivers\etc\hosts

Cómo modificar el archivo de hosts en Windows

Las sucesivas versiones de Windows han ido introduciendo limitaciones en los directorios críticos del sistema con el propósito de evitar que el usuario los modifique o elimine (al menos con la configuración predeterminada del sistema operativo). En caso de querer modificar algún contenido dentro de System32 es necesario recurrir a la cuenta de Administrador del sistema, ya que la común, a pesar de estar definida como administrador por defecto, no cuenta con permisos para escribir ahí.

Para modificar el archivo de hosts en Windows, en primer lugar hay que abrir el Bloc de notas como Administrador. Para ello hay que abrir el menú de Inicio del sistema, escribir “Bloc de notas” en el buscador, hacer clic con el botón secundario del ratón sobre la entrada de la aplicación que queremos abrir y seleccionar “Ejecutar como administrador”. El sistema preguntará al usuario si quiere que la aplicación haga cambios en el dispositivo, a lo que obviamente hay que responder que sí.

Una vez abierto el Bloc de notas como Administrador, hay que dirigirse al menú Archivo > Abrir para abrir el archivos de hosts de Windows.


Recordad que la ruta para hallar el archivo de los hosts en Windows es “Este equipo” > C: > Windows > System32 > drivers > etc. Sin embargo, al llegar ahí uno descubre que la carpeta está aparentemente en blanco debido a que el Bloc de notas no encuentra ningún archivo con extensión ‘.txt’. Esto se soluciona seleccionando “Todos los archivos” en el desplegable de la esquina inferior derecha del diálogo.

De manera alternativa, una vez abierto el diálogo de “Abrir” en el Bloc de notas, se puede pulsar la combinación de teclas “ctrl+L” y luego copiar y pegar lo siguiente en la ruta de direcciones. Esto dará como resultado la apertura directa del archivo:

C:\Windows\System32\drivers\etc\hosts

Una vez abierto el archivo de hosts en Windows, este es el aspecto que presenta en la aplicación:

En este caso tenemos una instancia de Windows 10 ejecutada en una máquina virtual de GNOME Boxes, así que hemos introducido la IP de la máquina anfitriona junto al nombre de host (asus-silver).
Todas las líneas que tienen una almohadilla (#) delante son comentarios y por lo tanto son ignoradas a nivel de configuración, pero pueden venir bien para introducir descripciones de lo que hace el archivo o una línea específica.

Tras introducir las modificaciones pertinentes en el archivo, se guarda como de costumbre, yendo al menú Archivo y pulsando sobre Guardar.

Con los cambios introducidos en el archivo, hemos probado con intentar acceder a un servidor HTTP (nginx) ejecutado en la máquina anfitriona a través de un contenedor Docker con Podman. En lugar de poner la IP, que es un número que puede llegar a ser difícil de recordar, hemos puesto el nombre del equipo, y por lo que se puede ver en la siguiente imagen, el archivo de hosts de Windows hace correctamente su trabajo para mostrar el contenido servido por la máquina anfitriona través del servidor HTTP.

Ubicación del archivo de hosts en otros sistemas operativos

El archivo de hosts cumple en esencia la misma función en todos los sistemas operativos, así que vamos a mencionar su ubicación a través de diversos ejemplos en los que mencionaremos varios sistemas operativos que pueden ser populares o no. Avisamos que no hemos tenido en cuenta si el usuario tiene permisos, aunque sea de forma indirecta, para modificarlo.

Ubicación en Android:

/etc/hosts # Que es un enlace simbólico hacia /system/etc/hosts

Ubicación en iOS y macOS:

/etc/hosts # Que es un enlace simbólico hacia /private/etc/hosts

Ubicación en Haiku:

/system/settings/network/hosts

Ubicación en Linux, Unix, Unix-like y POSIX:

/etc/hosts

Aunque su uso ha caído bastante con el paso de las décadas, el archivo de hosts todavía es útil para ciertos contextos, y como hemos ido viendo a través de este artículo, no solo para la creación de un pequeño entorno de pruebas a través de una red local, sino también para propósitos defensivos o acceder de manera restringida a ciertos recursos.

Eso sí, recordad que hay que manipularlo con mucho cuidado. Como consejo básico, recomendamos no introducir ninguna IP pública en él salvo que se tenga muy claro lo que se está haciendo. Si se quiere juguetear con él, lo mejor es solo introducir direcciones IP de la red local.

Saludos.

No hay comentarios:

Publicar un comentario

Por favor sé respetuoso/a y escribe adecuadamente. Gracias.