LINUX.ORG.RU

Посоветуйте, как проще всего ограничить доступ к сети для одной программы?

 , ,


0

1

Доброго времени суток

Сабж. По возможности - без виртуализации. Приоритеты: сначала надёжность, потом - простота для пользователя. Для запуска приложений, которым доверяю непубличную информацию. В частности - gnucash :)

Пока из вариантов

  • отдельный namespace
  • Переопределение некоторых сетевых функций через LD_PRELOAD
  • selinux ( но тут замучаешься правила проектировать ;) )

Первый вариант надёжен, но использовать его для пользовательских графических приложений не слишком удобно. Вдруг есть что-то лучше :)

★★★★★

SELinux не так сложен как кажется. Для твоего случая - пара правил в режиме targeted

anonymous
()
Ответ на: комментарий от anonymous

Нифига себе пара правил - создать отдельный домен, разрешить ему всё кроме доступа в сеть и разрешить unconfined пользователям обращаться к этому домену

router ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Текущий вариант я назвал в первом пункте, а selinux для данного случая - онанизм

И вопрос заключался не в «напишите за меня», я и сам это могу сделать, а в «не появилось ли чего-нибудь нового, что лучше подойдёт для данной задачи». Про те же namespace я узнал пару лет назад.

router ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Да, это вариант, останется только копировать xauthority файл

Но я уже сделал через namespace и оказалось, что конкретно gnucash жить не может без d-bus. Придётся и правда через selinux делать.

Через namespace так: ( Вдруг кому понадобится )

router@amalthea:~$ cat /opt/bin/without_net.sh 
#!/bin/bash

netns='scr';
cmd=$1;
user=$(whoami);

if [ -z "$cmd" ]; then
	echo "no command specified";
	exit 1;
fi

ip netns list | grep "$netns" >/dev/null 2>&1;

if [ $? -eq 0 ]; then
	# namespace already exists
	echo ok >/dev/null 2>&1
else
	sudo ip netns add "$netns"
	sudo ip netns exec "$netns" ip l set dev lo up
fi

sudo ip netns exec "$netns" sudo su - "$user" -c "$cmd"

Запуск:

router@amalthea:~$ /opt/bin/without_net.sh "ping ya.ru"
ping: unknown host ya.ru

router ★★★★★
() автор топика

chown :nonet /bin/gnucash

chmod g+s /bin/gnucash

Правило iptables запрещающее группе nonet лазить в сеть напиши сам :-)

no-dashi ★★★★★
()

запускай программу от определённого пользователя. Доступ ограничь iptables, критерием --uid.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.