Eu preciso bloquear o acesso de um aplicativo à Internet. Eu pesquisei e encontrei esta receita:
-Crie o grupo "no-internet".
- Escreva o script netblock.sh com esta linha:
sg no-internet "$1"
-Adicione esta regra ao iptables:
iptables -I OUTPUT 1 -m owner --gid-owner no-internet ! -d 192.168.1.0/24 -j DROP
Aplicação -Run:
$ netblock.sh /path/to/binary
Observe que desejo bloquear o acesso ao mundo externo, mas concedo acesso à rede local.
Eu vi relatórios que funcionam, mas não está funcionando para mim.
Testando com 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
Funciona. No entanto ...
$ 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
A rede local também está sendo bloqueada e não quero isso. O que estou fazendo errado?
Tags networking iptables firewall