LINUX.ORG.RU

изолировать программу от сети?


1

2
интересует самый простой и несложный вариант как запустить одну из программ чтобы она не видела сеть. чем проще способ - тем лучше.

программа для wine и хочется чтобы другие программы wine все ж таки запускались нормально с сетью

★★★★★
Ответ на: комментарий от anonymous
вариант не годится,

от отдельного пользователя - это гарантия того что оно не напортит файлы

iptables - банить destination? оно на разные хосты тыкается, мне кажется полностью запретить сеть для конкретного приложения будет идеальным вариантом.

Sylvia ★★★★★
() автор топика
Другой вариант — перехватывать вызовы с помощью LD_PRELOAD.
Например написать такую библиотеку:

#define _GNU_SOURCE
#include <dlfcn.h>
#include <sys/socket.h>

static int (*real_socket)(int domain, int type, int protocol) = 0;
int socket(int domain, int type, int protocol)
{
        if(!real_socket) real_socket = dlsym(RTLD_NEXT, "socket");
        if(domain == AF_INET) return -1;
        return real_socket(domain, type, protocol);
}

gcc -fPIC -shared -Wl,-soname,nonet.so -o nonet.so nonet.c

Ну и дальше LD_PRELOAD=nonet.so programm_name
Deleted
()
Ответ на: комментарий от Deleted
вот об этом как раз и думала, наверное проще чем фильтровать через iptables по owner-uid, хотя и тот вариант хорошо для completely untrusted программ (тоже спасибо)

спасибо, самый простой вариант ))

Sylvia ★★★★★
() автор топика
>как запустить одну из программ чтобы она не видела сеть

>программа для wine

над qip-ом издеваемся?

lazyklimm ★★★★★
()
А Arch все до безобразия просто. Создается пользователь, НЕ включается в группу net и вперед...

//armlows

anonymous
()
Ответ на: комментарий от ovax
> Ничего Вы не поняли. От другого пользователя, чтобы потом по --owner-uid в иптаблесе зарубить.

+1

soomrack ★★★★★
()
Ответ на: комментарий от lazyklimm
Spore )

по сети пытается лазить

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от HighwayStar
apparmor сейчас исключают отовсюду, можно конечно как вариант использовать selinux, но путь всё ж таки получится не совсем простой, а разбираться пока лениво )

И не совсем понятно что именно блокировать в случае WINE

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от Sylvia
Если не ошибаюсь, то Spore не запустится, если не получит от своего сервера активацию. Надо или купить, или взломать. После покупки необходимость блокировки исчезнет, а после взлома оно само не будет пытаться лезть в сеть.
RommeDeSerieux
()
Ответ на: комментарий от RommeDeSerieux
А для wine LD_PRELOAD работает? Я когда-то подсовывал ему библиотечку одну, и он не мог её подгрузить...
anonymous
()
Ответ на: комментарий от Deleted
Библиотечка скомпилировалась, но:

LD_PRELOAD=nonet.so telnet www.ru 80 ERROR: ld.so: object 'nonet.so' from LD_PRELOAD cannot be preloaded: ignored.

anonymous
()
Ответ на: комментарий от anonymous
:~/ooo-build/build/ooo300-m9/basic/util$ LD_PRELOAD=/etc/nonet.so telnet microsoft.com 80 -NONET--NONET--NONET--NONET-telnet: could not resolve microsoft.com/80: Name or service not known :~/ooo-build/build/ooo300-m9/basic/util$

у меня все работает, причем на каждую попытку получения сокета выдало -NONET-

(Debian)

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от Sylvia
Всё, вкурил. Заработало только когда указал полный путь к библиотеке.
anonymous
()
Ответ на: комментарий от Sylvia
> у меня все работает, причем на каждую попытку получения сокета выдало -NONET-

а у меня просто тупо отрубает :

[denis@phobos][~/Dev/nonet]$> LD_PRELOAD=/home/denis/Dev/nonet/nonet.so telnet 192.168.1.1 80
Trying 192.168.1.1...
[denis@phobos][~/Dev/nonet]$> LD_PRELOAD=/home/denis/Dev/nonet/nonet.so telnet google.com 80
telnet: google.com: Temporary failure in name resolution
google.com: Host name lookup failure

opensuse 11.0
isden ★★★★★
()
Ответ на: комментарий от isden
я fprintf(stderr

добавила в код Chaoser ) буду хотя бы считать попытки коннекта, хотя неплохо бы видеть куда оно тыкается, но это уже надо не socket() перехватывать, AF_INET , SOCK_STREAM, tcp в данном случае не информативно

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