Подскажите простой способ блокирования доступа к интернет программе

antiron
все понял и решил не мучаться и создать пользователя:
sudo useradd noinet
sudo iptables -A OUTPUT -p tcp -m owner --uid-owner noinet -j DROP
sudo -u noinet ping google.ru
,но
[[email protected] ~]$ sudo -u noinet ping google.ru
PING google.ru (85.172.1.35) 56(84) bytes of data.
64 bytes from 85.172.1.35: icmp_seq=1 ttl=59 time=41.5 ms
ЧЯДНТ?

Вы зачем-то задали лишний условие – протокол только TCP, а пинг это вообще-то ICMP.
Будьте проще, не добавляйте лишних сущностей, и всё получится :)
iptables -A OUTPUT -m owner --uid-owner noinet -j DROP

naszar
С пингом такой фокус не канает, ибо у него стоит capability. Он вообще с сетью вытворят то, что дано только руту:
Ещё как "канает" :)
Ядро отслеживает в пакетах начальный UID, а не дополнительные привилегии, и даже не заметит рут, полученный через SUID (если ping его имеет). Так что прекрасно всё работает, в том числе и с пингом.
вопрос на заданную тему, как сделать доступ к определенным ресурсам в интернете, а все остальное закрыть, в буквальном смысле чтобы работал только список сайтов, порядка 20.
Заранее благодарю за ответ.
п.с. на данный момент блокирую список самых паразитирующих сайтов через hosts, но этот способ не подходит, ибо список стремиться к бесконечности.
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
palpalych
вопрос на заданную тему, как сделать доступ к определенным ресурсам в интернете, а все остальное закрыть, в буквальном смысле чтобы работал только список сайтов, порядка 20.
Заранее благодарю за ответ.
п.с. на данный момент блокирую список самых паразитирующих сайтов через hosts, но этот способ не подходит, ибо список стремиться к бесконечности.
Если через роутер подключение,то там или попробовать dns от яндекса.
Последний крик моды - эхо 30-летней давности.
Natrio
Вы зачем-то задали лишний условие – протокол только TCP, а пинг это вообще-то ICMP.
Будьте проще, не добавляйте лишних сущностей, и всё получится :)
iptables -A OUTPUT -m owner --uid-owner noinet -j DROP
большое спасибо,то что надо
есть еще маленький вопросик,иксовые приложения через sudo -u не запускаются,как быть?
sudo -u noinet firefox
(process:1390): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
No protocol specified
No protocol specified
Error: cannot open display: :0.0
проделал вот это и о чудо,все работает
вот подробно
1)sudo nano /usr/local/bin/xsu
#!/bin/sh
if [ $# -lt 2 ]
then echo "usage: `basename $0` noinet command" >&2
     exit 2
fi
NOINET="$1"; shift
exec su - "$NOINET" -c "xauth add `xauth list \"$DISPLAY\"`; \
                            exec env DISPLAY='$DISPLAY' "'"$SHELL"'" -c '$*'"
2)sudo chmod 754 /usr/local/bin/xsu
3)sudo xsu noinet 'firefox &'
кто из просвещенных может объяснить все ли правильно сделано и нет ли никаких подводных камней?

upd почему-то язык этих программ английский,хотя во всей системе стоит русский..
Non progredi - est regredi
наведу на мысль, есть такие проги как соксификаторы, придуманы они для того что бы научить прогу которая изначально не умеет работать с socks.
так вот запускаем прогу через такой скосификатор и весь трафик должен пойте через него, а дальше дело техники, хотим блочим весь трафик, хотим фильтруем/обрезаем, но это уже на стороне прокси.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
naszar
P.S. Только что проверил, с огнелисом работает(в смысле блочит)
как вы запускали firefox,вот что мне нужно узнать
Non progredi - est regredi
antiron
как вы запускали firefox,вот что мне нужно узнать
У меня фаерфокс работает от отдельного пользователя. Добавил правило:
sudo iptables -A OUTPUT -p tcp -m owner --uid-owner chromeuser -j DROP
И тыкнул иконку, выполняющую команду:
sudo -u chromeuser  firefox
По запуску XFCE выполняется
xhost +si:localuser:chromeuser
 
Зарегистрироваться или войдите чтобы оставить сообщение.