¿La regla iptables / pf solo permite la aplicación / usuario XY?

8

Creo que no hay una solución iptables / pf para permitir solo una aplicación XY, por ejemplo, en el puerto 80 de TCP saliente, eth0. Entonces, si tengo un ID de usuario: "500", ¿cómo podría bloquear cualquier otra comunicación que la mencionada en el puerto 80 / outbound / tcp / eth0? (por ejemplo: solo Privoxy está utilizando el puerto 80 en eth0)

Extra: ¿virtualbox también usa el puerto 80? cuando un navegador en el sistema operativo invitado visita un sitio ... ¿cómo declarar eso? - configurar el usuario normal sería demasiado agujero

LanceBaynes
fuente
Es cierto que podría ser más fácil si divide esta pregunta en 2 (o más) preguntas ... las cosas de bsd serán muy diferentes de las cosas de Linux ... y luego, en muchos sentidos, también tiene una pregunta de caja virtual. Personalmente, creo que "cómo puedo permitir la aplicación / usuario XY a través de iptables" y "cómo solo puedo permitir la aplicación / usuario XY a través de pf" son buenas preguntas.
xenoterracide

Respuestas:

8

Aquí está el iptablescomando para permitir cierto a uidtravés de un determinado puerto.

iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner username -j ACCEPT 

desde la página man

[!] --uid-owner userid [-userid] Coincide si la estructura de archivos del socket del paquete (si tiene una) es propiedad del usuario dado. También puede especificar un UID numérico o un rango de UID.

en lo que respecta a virtualbox ... Creo que ejecuta su propio kernel ... por lo que es posible que desee utilizar --uid-ownervirtualbox en el sistema operativo host, pero también tener una --uid-ownerregla de propietario en la máquina virtual.

También podría ser útil tener en cuenta que --gid-ownertambién existe, y podría crear un grupo browsery sgidlas aplicaciones de su navegador para que se ejecute con un grupo efectivo browsery luego solo coloque a los usuarios que desea que naveguen en ese grupo ... esto no sería un solución perfecta ... pero la mayoría de los usuarios no intentarían ejecutar ninguna otra aplicación como ese grupo, por lo que, en general, restringe el saliente a esa aplicación, creo. No he probado esto, así que no estoy 100% seguro de que funcione como lo describí.

xenoterracida
fuente