Мне нужно заблокировать доступ приложения к Интернету. Я исследовал и нашел этот рецепт:

-Создать группу "без интернета".

-Написать скрипт netblock.sh с этой строки:

sg no-internet "$1"

-Добавить это правило в iptables:

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

-Запуск приложения:

$ netblock.sh /path/to/binary

Обратите внимание, что я хочу заблокировать доступ к внешнему миру, но предоставить доступ к локальной сети.

Я видел отчеты, что это работает, но это не работает для меня.

Тестирование с помощью 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

Оно работает. Тем не мение...

$ 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

Локальная сеть тоже блокируется, и я этого не хочу. Что я делаю неправильно?

0