¿Cómo puedo usar ipfw (u otra herramienta, si hay una disponible) para permitir el acceso ilimitado entre las computadoras en mi LAN, pero no permitir el acceso a Internet?
(Las direcciones IP en mi LAN local son 192.168.0.xxx
)
¿Cómo puedo usar ipfw (u otra herramienta, si hay una disponible) para permitir el acceso ilimitado entre las computadoras en mi LAN, pero no permitir el acceso a Internet?
(Las direcciones IP en mi LAN local son 192.168.0.xxx
)
Ha pasado un tiempo desde que usé ipfw pero ejecutar los siguientes comandos en todas las computadoras relevantes debería hacer el truco:
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 deshabilitar solo ejecuta sudo ipfw flush
otra vez
La forma más cruda que se me ocurre al hacer esto, asumiendo que su red se basa en IP estáticas, es simplemente no rellenar la IP de la "Puerta de enlace predeterminada" en la configuración de la red.
Si está en una red DHCP, puede cambiar la configuración del servidor DHCP, pero eso interrumpiría el acceso a Internet de todas las computadoras en la LAN, no solo algunas de ellas.
Mientras buscaba una respuesta a esto, encontré otra forma de hacerlo que no usa ipfw. Lo mencionaré aquí en caso de que alguien más busque una respuesta similar más adelante.
La otra manera de hacer esto es configurar los servidores DNS a 0.0.0.0.
Esto se puede lograr en la línea de comando usando networksetup
como esto:
networksetup -setdnsservers Wi-Fi 0.0.0.0
Si tienes una conexión Ethernet, querrás usar
networksetup -setdnsservers Ethernet 0.0.0.0
Para revertir este cambio, pude usar 'vacío' en lugar de '0.0.0.0'
networksetup -setdnsservers Ethernet empty
pero, dependiendo de la configuración de su red, es posible que deba especificar la dirección IP real de sus servidores DNS en lugar de usar empty
.
Todavía creo que ipfw
es una mejor herramienta para el trabajo, pero lo menciono por si alguien lo prefiere.
La razón por la que funciona para permitir el acceso a otras computadoras en mi LAN es que puedo acceder a ellas usando hostname.local.
en su lugar. Por ejemplo, el nombre de host de mi MacBook Air es 'air', por lo que puedo usar ssh air.local.
para conectarme a él, incluso sin servidores DNS.
puede usar ipfw para bloquear todo el tráfico al puerto 80, que es http. Necesitará verificar si también necesita bloquear otros puertos, por ejemplo. 443, 110, 993, etc.
En el comentario a continuación, ¿deseaba tener acceso a http entre las máquinas en su red? Si es así, simplemente haga lo anterior y luego agregue la excepción para permitir http a las máquinas en su rango de ip. p.ej. / 24 si eso es lo que es tu red.