Deshabilitar redes para usuarios específicos

16

Estoy trabajando en la distribución Ubuntu / Mint destinada a ejecutarse en vivo. Hay varias cuentas que se dividen en tres grupos generales: administrador, Internet y seguridad.

  • El administrador obviamente tiene la autoridad para hacer lo que sea.
  • La cuenta de Internet es para usar Internet.

Las otras cuentas son cuentas de seguridad . Bajo ninguna circunstancia se permite la conexión a Internet, impresoras, Bluetooth, dispositivos WiFi, etc.

Lo que me gustaría hacer es eliminar los controladores de red del núcleo, pero eso deshabilitaría las cuentas que necesitan Internet.

¿Cuáles son las formas de nivel más bajo para deshabilitar Internet para estas cuentas de seguridad? Estoy buscando soluciones imposibles de conectar .

bambuntu
fuente

Respuestas:

14

Puedes hacer eso con iptables.

En una terminal, agregue la regla a iptables

sudo iptables -A OUTPUT -p all -m owner --uid-owner username -j DROP

donde nombre de usuario es el usuario que desea deshabilitar la conexión a Internet. Guarda el archivo y cierra.

Esto agregará una regla para iptablesdecir que cualquier paquete saliente creado por el usuario especificado será eliminado automáticamente iptables.

Si desea hacer lo mismo para un grupo completo, supongo que, en lugar de --uid usernameusarlo --gid-owner groupname, tendrá el mismo efecto para un grupo de usuarios completo.

Entonces, para evitar que el grupo Seguridad acceda a Internet, el comando se vería así

sudo iptables -A OUTPUT -p all -m owner --gid-owner security -j DROP

Para que la regla sea permanente, puede crear una secuencia de comandos /etc/network/if-up.d/, agregarle las líneas necesarias y hacerla ejecutable.


Como opción, use iptables-savepara guardar sus reglas actuales y restaurarlas en el arranque.

Guarda las iptablesreglas actuales

sudo iptables-save > /etc/iptables_rules

Abra /etc/rc.localcon su editor de texto favorito y al final del archivo agregue

/sbin/iptables-restore < /etc/iptables_rules

Eso restaurará las reglas guardadas en cada arranque.

Para obtener más información, visite la página [ iptablesmanpage ] para obtener más información sobre varias iptablesopciones.

Bruno Pereira
fuente
Gracias. Eso funcionó para Internet, pero este usuario aún puede usar bluetooth. Estoy probando la conexión inalámbrica pero no lo he confirmado. Parece que tengo la cuenta atascada en DENY. Lo intenté sudo iptables -A OUTPUT -p all -m owner --uid-owner internet -j ACCEPTpero eso no lo volvió a encender para probar.
bambuntu
Ok, iptables parece ser un filtro para algo más bajo que realmente hace la conexión de red. ¿Cuál es la aplicación que hace posible la conexión? ¿Puedo desactivarlo? Si es así, deshabilite en función de quién controla la consola. Esta distribución en vivo está diseñada para múltiples usuarios, pero no para más de una consola. Entonces, si puedo rastrear quién está usando la consola, creo que podría deshabilitar esta aplicación de red en función de los permisos de los usuarios.
bambuntu
Bueno, ese sería su administrador de red en Ubuntu network-manager, si elimina a un usuario del grupo networky deshabilita la conexión network-manageru otra herramienta similar, no podrá volver a activarlo, por otro lado, el usuario es parte del grupo de red lo hará. Este es otro nivel de pensamiento ya que deshabilita la conexión.
Bruno Pereira
Después de buscar un poco en Google, descubrí que puedes eliminar el administrador de red y configurar Ubuntu tradicionalmente editando / etc / network / interfaces . Esta no parece ser la aplicación de red que estoy buscando deshabilitar. Estoy mirando un poco más bajo. ¿Qué tan bajo podemos llegar antes de llegar al conductor?
bambuntu
Pude eliminar y purgar el administrador de red. En ese momento, la red estaba deshabilitada. Pero pude recuperar las cosas con esto: sudo /etc/init.d/networkingdespués de editar /etc/network/interfaces ¿Entonces es /etc/init.d/networkingtan bajo como tú?
bambuntu
2

La solución de Bruno es buena: creo que probablemente la mejor solución autónoma.

Otra opción en la que puede pensar es configurar un firewall / proxy en una máquina separada, como la puerta de enlace a Internet, que solo permite conexiones que proporcionan autenticación por usuario. Podrías usar ambos juntos para una protección adicional.

billar
fuente