У меня есть скрипт Python, который использует pywebkitgtk для извлечения веб-страниц, и мне иногда нужно блокировать сетевой доступ для него. Есть идеи как это сделать?

1 ответ1

1

Если вы являетесь системным администратором, вы можете использовать iptables (как root) для блокировки доступа определенных команд к определенным портам или (по вашему выбору) ко всем портам (что эквивалентно тому, что он полностью не может получить доступ к сети).

Хорошая ссылка здесь, но существенный момент:

Если ваше ядро было скомпилировано с CONFIG_IP_NF_MATCH_OWNER, то вы можете настроить брандмауэр iptables для разрешения или отклонения пакетов для каждой команды.

В следующем примере показано, как отбросить все исходящие пакеты из команды acroread:

iptables -A OUTPUT -m owner --cmd-owner acroread -j DROP

Модуль владельца позволяет использовать несколько различных параметров для сопоставления, позволяя сопоставлять либо с идентификатором процесса, либо с идентификатором пользователя, либо с именем команды.

--uid-owner userid
Соответствует, если пакет был создан процессом с заданным эффективным идентификатором пользователя

--gid-owner userid
Соответствует, если пакет был создан процессом с заданным эффективным идентификатором группы

--pid-id processid
Соответствует, если пакет был создан процессом с заданным идентификатором процесса

имя владельца
Соответствует, если пакет был создан процессом с заданным именем команды.

Модуль "владелец" допускает только совпадения в цепочке OUTPUT, что несколько снижает его полезность - но если вы находитесь в стандартной ситуации NAT, этого должно быть достаточно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .