Blocage d'applications spécifiques avec iptables

0

Je dois bloquer l'accès d'une application à Internet. J'ai recherché et trouvé cette recette:

-Créer le groupe "no-internet".

-Ecrivez le script netblock.sh avec cette ligne:

sg no-internet "$1"

-Ajouter cette règle à iptables:

iptables -I OUTPUT 1 -m owner --gid-owner no-internet ! -d 192.168.1.0/24 -j DROP

-L'application:

$ netblock.sh /path/to/binary

Notez que je veux bloquer l'accès au monde extérieur mais accorder l'accès au réseau local.

J'ai vu des rapports selon lesquels cela fonctionne, mais cela ne fonctionne pas pour moi.

Test avec ping:

$ ping www.google.com
PING www.google.com (216.58.222.100) 56(84) bytes of data.
64 bytes from rio01s16-in-f100.1e100.net (216.58.222.100): icmp_seq=1 ttl=54 time=43.5 ms
64 bytes from rio01s16-in-f100.1e100.net (216.58.222.100): icmp_seq=2 ttl=54 time=42.3 ms
^C

$ netblock.sh "ping www.google.com"
ping: www.google.com: Temporary failure in name resolution

Ça marche. Pourtant...

$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.324 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.379 ms
^C

$ netblock.sh "ping 192.168.1.1"
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C

Le réseau local est également bloqué et je ne le souhaite pas. Qu'est-ce que je fais mal?


la source
Les instructions que vous avez suivies fonctionnent comme prévu sur mon système. Avez-vous vérifié iptablessi d'autres règles de pare-feu interféraient?
dsstorefile1
Oui désolé. J'ai oublié. J'utilise "rc.firewall Linux Firewall version 2.0rc9 - 05/02/03" et la ligne iptables que j'ai mentionnée dans le message d'origine se trouve à la fin du script. La seule ligne configurable que j'utilise est PERMIT = "192.168.0.0/24".