¿Cómo puedo utilizar el ipfw (u otra herramienta, si está disponible) para permitir el acceso ilimitado entre los ordenadores de mi LAN, pero no permitir el acceso a Internet?
(Las IP de mi LAN local son 192.168.0.xxx
)
¿Cómo puedo utilizar el ipfw (u otra herramienta, si está disponible) para permitir el acceso ilimitado entre los ordenadores de mi LAN, pero no permitir el acceso a Internet?
(Las IP de mi LAN local son 192.168.0.xxx
)
Hace tiempo que no utilizo el ipfw, pero ejecutando los siguientes comandos en todos los ordenadores relevantes debería funcionar:
sudo ipfw -f flush
sudo ipfw add allow tcp from me to 192.168.0.0/24
sudo ipfw add allow ip from me to 192.168.0.0/24
sudo ipfw add deny tcp from me to any
sudo ipfw add deny ip from me to any
Para desactivarlo sólo hay que ejecutar sudo ipfw flush
de nuevo
La forma más burda que se me ocurre para hacer esto, asumiendo que tu red está basada en IPs estáticas, es simplemente no rellenar la IP de la "Puerta de enlace por defecto" en la configuración de la red.
Si está en una red DHCP, podría cambiar la configuración del servidor DHCP, pero eso rompería el acceso a Internet de todo ordenadores de la LAN, no sólo algunos de ellos.
Mientras buscaba una respuesta a esto, encontré otra forma de hacerlo que no utiliza ipfw. Lo mencionaré aquí por si alguien más busca una respuesta similar más adelante.
La otra forma de hacerlo es establecer los servidores DNS en 0.0.0.0.
Esto se puede lograr en la línea de comandos utilizando networksetup
así:
networksetup -setdnsservers Wi-Fi 0.0.0.0
Si tiene una conexión Ethernet, querrá utilizar
networksetup -setdnsservers Ethernet 0.0.0.0
Para revertir este cambio, pude utilizar 'empty' en lugar de '0.0.0.0'
networksetup -setdnsservers Ethernet empty
pero, dependiendo de la configuración de su red, es posible que tenga que especificar la dirección IP real de sus servidores DNS en lugar de utilizar empty
.
Sigo pensando que ipfw
es una herramienta mejor para el trabajo, pero lo menciono por si alguien lo prefiere.
La razón por la que esto funciona para permitir el acceso a otros ordenadores en mi LAN es que puedo acceder a ellos utilizando hostname.local.
en su lugar. Por ejemplo, el nombre de host de mi Macbook Air es 'air', así que puedo usar ssh air.local.
para conectarse a él, incluso sin servidores DNS.
Puedes usar ipfw para bloquear todo el tráfico al puerto 80 que es http. Tendrá que comprobar si también necesita bloquear otros puertos, por ejemplo, 443, 110, 993, etc.
Del comentario de abajo, ¿quieres tener acceso http entre las máquinas de tu red? Si es así, simplemente haga lo anterior y luego añada la excepción para permitir http a las máquinas en su rango de ip. por ejemplo, /24 si eso es lo que su red es.
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.