Bloquer l'acces internet a certains logiciels d'un utilisateur
2 réponses
Yohan Bataille
Bonjour,
je suis root sur une machine (Debian GNU/Linux),
et j'aimerais pouvoir interdire au seul utilisateur de cette machine
l'accès internet pour certains logiciels : navigateur internet...
L'avantage est que l'utilisateur ne peut absolument rien installer sur
cette machine (même pas un firefox dans un dossier et il ne peut pas
compiler).
En conséquence, je connais parfaitement le nom des logiciels à bloquer.
Pour commencer j'ai interdit l'exécution de tout ces logiciels à
cet utilisateur...
Le problème est que certains de ces logiciels doivent quand même pouvoir
être exécuté pour accéder au réseau local.
Il faudrait donc interdire les paquets sortant en direction d'internet.
De plus, je veux laisser l'accès à internet pour deux autres logiciels que
pourrait lancer cet utilisateur (pas de blocage global donc).
Pour l'instant, j'ai essayé avec :
IPChains/Iptables, NuFW, FireFlier, FieryFilter...
Malheureusement je n'ai pas réussi.
Comme je suis root et qu'il n'y a qu'un autre utilisateur sur cette machine
je me demande s'il est possible de bloquer l'accès internet
pour tous les processus qui n'appartiennent pas à root et de mettre les
deux logiciels que je veux autoriser suid root.
La solution que je tente de mettre en place pour le moment est donc :
1) interdire tous les accès internet (mais pas au réseau local) à tous
les logiciels qui appartiennent à cet utilisateur avec "iptables
--uid-owner",
2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante
(pas de suid root par exemple) ?
Ma solution est-elle faisable ? Je n'ai pas encore testé.
Merci.
Cordialement.
Yohan Bataille
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric Belhomme
Yohan Bataille wrote in news::
La solution que je tente de mettre en place pour le moment est donc : 1) interdire tous les accès internet (mais pas au réseau local) à tous les logiciels qui appartiennent à cet utilisateur avec "iptables --uid-owner", 2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante (pas de suid root par exemple) ?
il serait plus propre d'utiliser iptables pour filtrer les noms de processus avec la table match :
iptables -N rules_roger iptables -A OUTPUT -m state --state NEW -m owner --uid-owner roger -j rules_roger iptables -A rules_roger -m owner --cmd-owner firefox -j DROP
-- Rico
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.
Yohan Bataille <yohan.bataille@wanadoo.fr> wrote in
news:slrne0s8oe.5jj.yohan.bataille@Y2.maison.fr:
La solution que je tente de mettre en place pour le moment est donc :
1) interdire tous les accès internet (mais pas au réseau local) à tous
les logiciels qui appartiennent à cet utilisateur avec "iptables
--uid-owner",
2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante
(pas de suid root par exemple) ?
il serait plus propre d'utiliser iptables pour filtrer les noms de
processus avec la table match :
iptables -N rules_roger
iptables -A OUTPUT -m state --state NEW -m owner --uid-owner roger
-j rules_roger
iptables -A rules_roger -m owner --cmd-owner firefox -j DROP
--
Rico
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
La solution que je tente de mettre en place pour le moment est donc : 1) interdire tous les accès internet (mais pas au réseau local) à tous les logiciels qui appartiennent à cet utilisateur avec "iptables --uid-owner", 2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante (pas de suid root par exemple) ?
il serait plus propre d'utiliser iptables pour filtrer les noms de processus avec la table match :
iptables -N rules_roger iptables -A OUTPUT -m state --state NEW -m owner --uid-owner roger -j rules_roger iptables -A rules_roger -m owner --cmd-owner firefox -j DROP
-- Rico
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.
Kevin Denis
On 2006-03-08, Yohan Bataille wrote:
Bonjour, je suis root sur une machine (Debian GNU/Linux), et j'aimerais pouvoir interdire au seul utilisateur de cette machine l'accès internet pour certains logiciels : navigateur internet...
L'avantage est que l'utilisateur ne peut absolument rien installer sur cette machine (même pas un firefox dans un dossier et il ne peut pas compiler). En conséquence, je connais parfaitement le nom des logiciels à bloquer. Pour commencer j'ai interdit l'exécution de tout ces logiciels à cet utilisateur... Le problème est que certains de ces logiciels doivent quand même pouvoir être exécuté pour accéder au réseau local. Il faudrait donc interdire les paquets sortant en direction d'internet. De plus, je veux laisser l'accès à internet pour deux autres logiciels que pourrait lancer cet utilisateur (pas de blocage global donc).
Pour l'instant, j'ai essayé avec : IPChains/Iptables, NuFW, FireFlier, FieryFilter... Malheureusement je n'ai pas réussi.
Comme je suis root et qu'il n'y a qu'un autre utilisateur sur cette machine je me demande s'il est possible de bloquer l'accès internet pour tous les processus qui n'appartiennent pas à root et de mettre les deux logiciels que je veux autoriser suid root.
La solution que je tente de mettre en place pour le moment est donc : 1) interdire tous les accès internet (mais pas au réseau local) à tous les logiciels qui appartiennent à cet utilisateur avec "iptables --uid-owner", 2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante (pas de suid root par exemple) ?
Ma solution est-elle faisable ? Je n'ai pas encore testé.
Ou est le probleme? On met les binaires SGID <groupe> et on met des regles iptables avec le --gid-owner. Demonstration (avec le groupe 3 qui est sys): :/usr/bin/net# ls -l telnet -rwxr-sr-x 1 root sys 71984 2006-03-10 12:58 telnet* :/usr/bin/net# iptables -A OUTPUT -p tcp --dport 25 -m owner --gid-owner 3 -j ACCEPT :/usr/bin/net# iptables -A OUTPUT -p tcp --dport 25 -j REJECT
et donc: :~$ nc 127.0.0.1 25 (UNKNOWN) [127.0.0.1] 25 (smtp) : Connection refused :~$ /usr/bin/net/telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 darkstar.local.tux ESMTP Sendmail 8.13.4/8.13.4; Fri, 10 Mar 2006 13:31:23 +0100 quit 221 2.0.0 darkstar.local.tux closing connection Connection closed by foreign host. :~$
Et voila. Tu peux donc affiner selon si le reseau de destination est local ou distant, etc..
-- Kevin
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.
On 2006-03-08, Yohan Bataille <yohan.bataille@wanadoo.fr> wrote:
Bonjour,
je suis root sur une machine (Debian GNU/Linux),
et j'aimerais pouvoir interdire au seul utilisateur de cette machine
l'accès internet pour certains logiciels : navigateur internet...
L'avantage est que l'utilisateur ne peut absolument rien installer sur
cette machine (même pas un firefox dans un dossier et il ne peut pas
compiler).
En conséquence, je connais parfaitement le nom des logiciels à bloquer.
Pour commencer j'ai interdit l'exécution de tout ces logiciels à
cet utilisateur...
Le problème est que certains de ces logiciels doivent quand même pouvoir
être exécuté pour accéder au réseau local.
Il faudrait donc interdire les paquets sortant en direction d'internet.
De plus, je veux laisser l'accès à internet pour deux autres logiciels que
pourrait lancer cet utilisateur (pas de blocage global donc).
Pour l'instant, j'ai essayé avec :
IPChains/Iptables, NuFW, FireFlier, FieryFilter...
Malheureusement je n'ai pas réussi.
Comme je suis root et qu'il n'y a qu'un autre utilisateur sur cette machine
je me demande s'il est possible de bloquer l'accès internet
pour tous les processus qui n'appartiennent pas à root et de mettre les
deux logiciels que je veux autoriser suid root.
La solution que je tente de mettre en place pour le moment est donc :
1) interdire tous les accès internet (mais pas au réseau local) à tous
les logiciels qui appartiennent à cet utilisateur avec "iptables
--uid-owner",
2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante
(pas de suid root par exemple) ?
Ma solution est-elle faisable ? Je n'ai pas encore testé.
Ou est le probleme? On met les binaires SGID <groupe> et on met des
regles iptables avec le --gid-owner.
Demonstration (avec le groupe 3 qui est sys):
root@darkstar:/usr/bin/net# ls -l telnet
-rwxr-sr-x 1 root sys 71984 2006-03-10 12:58 telnet*
root@darkstar:/usr/bin/net# iptables -A OUTPUT -p tcp --dport 25
-m owner --gid-owner 3 -j ACCEPT
root@darkstar:/usr/bin/net# iptables -A OUTPUT -p tcp --dport 25 -j REJECT
et donc:
kevin@darkstar:~$ nc 127.0.0.1 25
(UNKNOWN) [127.0.0.1] 25 (smtp) : Connection refused
kevin@darkstar:~$ /usr/bin/net/telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220 darkstar.local.tux ESMTP Sendmail 8.13.4/8.13.4; Fri, 10 Mar
2006 13:31:23 +0100
quit
221 2.0.0 darkstar.local.tux closing connection
Connection closed by foreign host.
kevin@darkstar:~$
Et voila. Tu peux donc affiner selon si le reseau de destination est local
ou distant, etc..
--
Kevin
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Bonjour, je suis root sur une machine (Debian GNU/Linux), et j'aimerais pouvoir interdire au seul utilisateur de cette machine l'accès internet pour certains logiciels : navigateur internet...
L'avantage est que l'utilisateur ne peut absolument rien installer sur cette machine (même pas un firefox dans un dossier et il ne peut pas compiler). En conséquence, je connais parfaitement le nom des logiciels à bloquer. Pour commencer j'ai interdit l'exécution de tout ces logiciels à cet utilisateur... Le problème est que certains de ces logiciels doivent quand même pouvoir être exécuté pour accéder au réseau local. Il faudrait donc interdire les paquets sortant en direction d'internet. De plus, je veux laisser l'accès à internet pour deux autres logiciels que pourrait lancer cet utilisateur (pas de blocage global donc).
Pour l'instant, j'ai essayé avec : IPChains/Iptables, NuFW, FireFlier, FieryFilter... Malheureusement je n'ai pas réussi.
Comme je suis root et qu'il n'y a qu'un autre utilisateur sur cette machine je me demande s'il est possible de bloquer l'accès internet pour tous les processus qui n'appartiennent pas à root et de mettre les deux logiciels que je veux autoriser suid root.
La solution que je tente de mettre en place pour le moment est donc : 1) interdire tous les accès internet (mais pas au réseau local) à tous les logiciels qui appartiennent à cet utilisateur avec "iptables --uid-owner", 2) mettre les deux logiciels à autoriser suid root.
Pensez-vous qu'il est possible de faire cela de façon plus élégante (pas de suid root par exemple) ?
Ma solution est-elle faisable ? Je n'ai pas encore testé.
Ou est le probleme? On met les binaires SGID <groupe> et on met des regles iptables avec le --gid-owner. Demonstration (avec le groupe 3 qui est sys): :/usr/bin/net# ls -l telnet -rwxr-sr-x 1 root sys 71984 2006-03-10 12:58 telnet* :/usr/bin/net# iptables -A OUTPUT -p tcp --dport 25 -m owner --gid-owner 3 -j ACCEPT :/usr/bin/net# iptables -A OUTPUT -p tcp --dport 25 -j REJECT
et donc: :~$ nc 127.0.0.1 25 (UNKNOWN) [127.0.0.1] 25 (smtp) : Connection refused :~$ /usr/bin/net/telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 darkstar.local.tux ESMTP Sendmail 8.13.4/8.13.4; Fri, 10 Mar 2006 13:31:23 +0100 quit 221 2.0.0 darkstar.local.tux closing connection Connection closed by foreign host. :~$
Et voila. Tu peux donc affiner selon si le reseau de destination est local ou distant, etc..
-- Kevin
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.