Назад | Перейти на главную страницу

Как заблокировать доступ в Интернет для определенных программ в Linux

Недавно я столкнулся с проблемой ограничения доступа в Интернет для определенных программ. Может ли кто-нибудь порекомендовать хороший способ сделать это без использования какого-либо конкретного программного обеспечения?

Решение для меня оказалось простым.

  1. Создать, проверить новая группа; добавить в эту группу необходимых пользователей:
    • Создайте: groupadd no-internet
    • Подтвердить: grep no-internet /etc/group
    • Добавить пользователя: useradd -g no-internet username

      Примечание. Если вы изменяете уже существующего пользователя, вам следует запустить: usermod -a -G no-internet userName проверить с : sudo groups userName

  2. Создать сценарий на вашем пути и сделайте его исполняемым:
    • Создайте: nano /home/username/.local/bin/no-internet
    • Исполняемый: chmod 755 /home/username/.local/bin/no-internet
    • Содержание: #!/bin/bash
                    sg no-internet "$@"

  3. Добавить правило iptables для сброса сетевой активности для группы нет интернета:


4. Проверьте это, например, в Firefox, запустив:

  • no-internet "firefox"

Если вы хотите сделать исключение и разрешить программе доступ локальная сеть:

  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP

НОТА: В случае нереста правила сохранятся. Например, если вы запускаете программу с нет интернета rule, и эта программа откроет окно браузера, но правила будут применяться.