barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

воскресенье, 18 марта 2012 г.

Запрет приложениям Linux доступа в интернет

Некоторым программам иногда полезно запрещать лазить в интернет, например, чтобы не обновлялись или чтобы чего доброго не подумали что они нелицензионные ;). В Linux это делается просто, суть подхода следующая: создается группа пользователей, этой группе запрещается доступ в интернет, а программа запускается с ID этой группы. Шаги следующие:
1) Создаем группу и добавляем в неё текущего пользователя, чтобы он мог менять GID при запуске:
sudo groupadd noinet
sudo gpasswd -a `id -un` noinet
2) Создаем правило для iptables, которое будет выполняться перед подъемом сетевого интерфейса. Для этого создаем исполняемый файл в /etc/network/if-pre-up.d со следующим содержимым:
#!/bin/bash
iptables -A OUTPUT -m owner --gid-owner noinet -j DROP
3) Всё, теперь можно перезагрузиться и запустить необходимую программку через:
 sg noinet "<exec_name>"
, где <exec_name> - имя программы.
 4) Для удобства можно создать вспомогательный скрипт, назвав его noinet и поместив его, скажем, в /usr/local/bin/noinet, со следующим содержанием:

#!/bin/bash
sg noinet "$*
Теперь запускать программы с запретом доступа в интернет можно ещё проще:
noinet  <exec_name>
ЗЫ Взять с хабра: http://habrahabr.ru/post/82933/.
ЗЫЗЫ В частности, запрет доступа в инет полезен для Guitar Pro 6.

1 комментарий: