GNU/Linux >> Tutoriales Linux >  >> Linux

¿Es peligroso usar el archivo /etc/hosts como bloqueador de sitios web de la siguiente manera?

Respuesta corta

¿Es seguro usar el /etc/hosts archivo como un sitio web que bloquea la dirección "nula"?

Yo diría que la respuesta debería ser:No.

Si por la única razón de que las solicitudes no se "anulan". Todavía son solicitudes activas. Y como indica el OP, dado que las solicitudes son para hosts de Internet legítimos, este tipo de método abreviado para redirigir las solicitudes a localhost puede interferir con la prueba del código de red en un entorno de desarrollo.

Quizás un mejor método para bloquear el tráfico hacia y desde ciertos hosts de Internet es utilizar iptables que es la interfaz para el firewall del kernel de Linux. iptables es la tabla de reglas de red predeterminada para la mayoría de los sistemas GNU/Linux. Algunas distribuciones usan ufw como interfaz para iptables .

Si quieres usar iptables , aquí hay un script simple que DROP todos los paquetes entrantes y salientes para una lista de direcciones IP o nombres de host con una dirección o nombre de host por línea contenida en un archivo de texto sin formato llamado ~/blocking.txt

## Block every IP address in ~/blocking.txt
## DROP incoming packets to avoid information leak about your hosts firewall
## (HT to Conor Mancone) REJECT outgoing packets to avoid browser wait
for i in $(cat ~/blocking.txt); do
    echo "Blocking all traffic to and from $i"    
    /sbin/iptables -I INPUT -s $i -j DROP
    /sbin/iptables -I OUTPUT -d $i -j REJECT
done

Muestra ~/blocking.txt

websiteiwanttoblock.com
anotherone.com
ip.add.of.net/mask

No coloque su localhost Direcciones IP en este archivo.

Respuesta más larga

Al reasignar hosts de Internet a localhost en el /etc/hosts El archivo es una técnica de atajo común para bloquear hosts de Internet no deseados, este método tiene serios inconvenientes de seguridad.

Solicitudes entrantes

Solicitudes entrantes que no se iniciaron deliberadamente a través de una solicitud de usuario específica. El ejemplo más común son los anuncios en las páginas web. Sigamos los paquetes entrantes...

Primero, inicio wireshark . Luego coloco la mayor empresa de publicidad en Internet en mi /etc/hosts archivo con esta línea:

127.0.0.1   google.com

Y luego deshabilite todos los bloqueadores de anuncios en mi navegador, vaya a youtube y reproduce cualquier video aleatorio.

Si filtro mis paquetes, incluyendo ampliamente el espacio de direcciones IP de Google:

ip.addr==172.217.0.0/16

Sigo recibiendo paquetes de Google.

¿Qué significa esto?

Significa que existe la posibilidad de que un servidor malicioso inserte malware que pueda atacar mi plataforma informática a través de paquetes que aún llegan y se envían a localhost. El uso de /etc/hosts en lugar de descartar o rechazar los paquetes a través de las reglas del firewall, es una medida de seguridad deficiente. No bloquea paquetes entrantes de posibles hosts maliciosos, ni proporciona información efectiva para solucionar problemas.

Solicitudes salientes

Solicitudes salientes que se envían a localhost en lugar de ser rechazadas o eliminadas por las reglas del firewall, el kernel aún las procesa. Hay algunas acciones no deseadas que ocurren cuando /etc/hosts se utiliza en lugar del cortafuegos:

  • Se produce un procesamiento adicional cuando el paquete saliente llega a localhost. Por ejemplo, si un servidor web se está ejecutando en el host, el servidor web puede procesar el paquete enviado a localhost.

  • Los comentarios de las solicitudes salientes pueden volverse confusos si /etc/hosts se llena con ciertos dominios.

iptables puede manejar muchas reglas

Según algunos:

ServerFault:¿Cuántas reglas admite iptables?

Un posible límite teórico en una máquina de 32 bits es de 38 millones de reglas. Sin embargo, como se indica en la publicación a la que se hace referencia, como el iptables la lista de reglas se expande al igual que la memoria del núcleo necesaria.


[...] mientras buscaba una técnica simple de bloqueo de sitios web a nivel de sistema operativo, encontré la solución de usar el archivo de hosts de Linux [...]

Para aclarar, /etc/hosts simplemente asigna nombres de host a direcciones IP. Una entrada con 127.0.0.1 no bloquea su acceso al servidor, solo hace que su computadora resuelva localmente ese nombre en particular a 127.0.0.1 . Usted y el servidor podrían seguir intercambiando paquetes sin restricciones.

Si uso a menudo 127.0.0.1 para propósitos de desarrollo web, ¿es esto peligroso? Parece que, como mínimo, podría estropear el proyecto de desarrollo web en el que estoy trabajando actualmente.

No, resolviendo a 127.0.0.1 no te pone en peligro adicional. Esto se debe a que un sitio web puede hacer que su nombre se resuelva en cualquier IP de todos modos, incluido 127.0.0.1 (a menos que el servidor DNS lo bloquee). Entonces si evilpage.example quería resolver a 127.0.0.1 , podrían simplemente especificar un DNS A respectivo registro y no tendría que depender de su /etc/hosts . (Ver también:¿Es seguro tener un registro DNS apuntando a 127.0.0.1?)

Tenga en cuenta que ejecutar algo en 127.0.0.1 puede hacerlo vulnerable a los ataques de reenlace de DNS.


A menos que su servidor web se esté ejecutando en el puerto 80 o 443 en su máquina local (127.0.0.1 ), entonces eso no debería afectar su proyecto web. Si es así, entonces podría ser una molestia. Si enviaste una solicitud a http://example.com/api/ , entonces terminaría enviando una solicitud a http://127.0.0.1/api/ . Si tiene un recurso llamado /api/ , luego terminaría recibiendo la solicitud y, por lo tanto, interfiriendo con su aplicación. Pero el punto más importante que me gustaría enfatizar que mencionó @Arminus fue que el /etc/hosts/ El archivo es para asignar direcciones IP a nombres de host. Si desea bloquear un host en particular, sugeriría instalar un firewall como UFW o usar el firewall predeterminado de Linux, iptables. Aquí hay algunos enlaces para ayudarlo a comenzar:

UFW:https://www.linux.com/learn/introduction-uncomplicated-firewall-ufw

iptables:https://www.howtogeek.com/177621/the-beginners-guide-to-iptables-the-linux-firewall/


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. CentOS / RHEL:cómo recuperarse de un archivo /etc/passwd eliminado

  3. Comprender el archivo /etc/exports

  4. Diferencia entre /etc/hosts y /etc/resolv.conf

  5. Cómo configurar /etc/issues para mostrar la dirección IP de eth0

Comprender el archivo /etc/passwd

Comprender el archivo /etc/shadow

La forma correcta de editar archivos /etc/passwd y /etc/group en Linux

Comprender el archivo /etc/fstab en Linux

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

Límite de tamaño de /etc/hosts (Linux)