LINUX.ORG.RU
ФорумAdmin

Как лучше исправить WINE?

 , , , ,


1

3

Знаете ли вы надёжный способ отучить винишко сливать всё в интернет? Особенно этим страдают всякие юнити игры, но вообще любые. Причём, чем хуже и трешовее игра, тем более нагло она себя ведёт.

Я нашёл в интернете только вариант запускать от отдельного пользователя и резать в iptables (юзабилити этого способа так себе). Другой вариант пропатчить вайн и заменить пустышками функции вроде socket кажется мне более удобным. Насколько это надёжно, по-вашему? И как лучше сделать?

В виндоус я бы просто заблокировал доступ приложению в сеть штатным файрволом (через tinywall там или как угодно), но в линуксе такого пока нет.

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

Я переживаю за людей, которые подобно мне страдают из-за невозможности/нежеления пользования виндоус. Проблемы в основном от всяких мелочей вроде отсутствия уведомления о падении сети или внезапно закончившейся памяти. Теперь вот это, любое проприетарное прилложение в линуксе сливает приватную инфу в интернет. Тема о винишке, но стоило бы расширить её более глобально. Нам нужен нормальный полноценный интерактивный файрвол на уровне приложений.

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

Заодно можно было бы посмотреть в гуе статистику куда приложение подключалось и сколько передало (и опционально что). В виндоус эти вопросы давно решены. Линуксоиды же пока только привыкают к тому, что мир наполнен плохими озлобленными людьми, которые только и делают, что пытаются навредить незнакомым людям.

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

Я раньше об этом не думал, а потом я запустил fiddler и посмотрел, что и куда сливает. Неприятненько. Виндоус даже сама мимо своего файрвола не ходит, поэтому её телеметрия блокируется вполне успешно. Почему такого в линуксе не сделают?

linuxnewb13
() автор топика

юзабилити этого способа так себе

Почему это? Вполне себе нормальный способ. Еще есть вариант с unshare или другим network namespace, но тут надо понимать, что придется плясать с маршрутизацией для network namespace или отстреливать сеть для wine напрочь(то есть в сетевые игры нипаиграть без дополнительных телодвижений).

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

Потому что у другого пользователя будут другие файлы с другими правами. Иксы всё равно от рута работают и доступны напрямую всем клиентам при желании, не вижу особого повода вставлять палки в колёса себе.

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

Тем более что все варианты решения одновременного использования файлов разными пользователями наносят значительный урон защите. И не только от собственных ошибок.

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

Нам нужен нормальный полноценный интерактивный файрвол на уровне приложений.

Непонятно как. Если приложение онлайн, то он просто будет сливать инфу по основному каналу.

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

Если приложение не прибито к одному сертификату, можно прикинуться прокси и подменить ему серт. А если не онлайн? Большинство приложений не онлайн, онлайн им нужен только чтобы сливать данные о пользователях.

linuxnewb13
() автор топика

Особенно этим страдают всякие юнити игры, но вообще любые. Причём, чем хуже и трешовее игра, тем более нагло она себя ведёт

Шутка про мышей и кактус.

А вообще кури firejail.

Karthago ★★
()
Ответ на: комментарий от linuxnewb13

Запретить ему в сеть и дело с концом.

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

Если я правильно всё понимаю, вайн использует какие-то программные порты. Их же можно попросту заблокировать?

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

Всё, что я нашёл по поводу сигруп и неймспейсов, это вот эта водичка ни о чём. Все заставляют решать это отдельным пользователем и iptables. Подавляющее большинство решений датируется доисторическими временами.

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

Сейчас попробую, спасибо. Пока читал гайдик от DO, на первом же шаге

 * Messages for package dev-libs/libcgroup-0.41-r5:

 *   CONFIG_CONNECTOR:   is not set when it should be.
 *   CONFIG_PROC_EVENTS:         is not set when it should be.
 * Please check to make sure these options are set correctly.
 * Failure to do so may cause unexpected problems.
упс. Так много воды в интернете и никто не скажет что же нужно сделать обычному, ничем непримечательному пользователю, чтобы получить такой простой и очевидный результат.

linuxnewb13
() автор топика

Запускать внтури firejail и запретить ходить куда-то кроме того, куда сам разрешил. И пусть сливает инфу о самом себе до посинения. Это для начала.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от anonymous

Вроде бы работает под рутом. Пд пользователем нет. Из решений в интернете предлагают запускать через sudo или поставить suid бит.

linuxnewb13
() автор топика
Ответ на: комментарий от kekelia

Ему надо запретить приложению выходить в сеть. А из коробки это не делается.

peregrine ★★★★★
()
Ответ на: комментарий от Pinkbyte

Какие ваши предложения по поводу удобного пользования unshare непривилегированным пользователем? Оно же гарантирует, что у всех запускаемых процессом детей не будет сети?

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

Сейчас попробую, спасибо.

unshare -n -r ping 127.0.0.1

Но это запрещает сеть вообще. Если лупбэк нужен для приложения, то нужно

unshare -n -- sh -c 'ip link set dev lo up; ping 127.0.0.1'

Эта команда создаёт «локальный» лупбэк. Т.е. у запущенного приложения не будет доступа к 127.0.0.1 за пределами запущенного unshare.

И есть ещё nsenter, чтобы предоставить внешнюю сеть unshare-енному процессу по PID, например.

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

unshare: unshare failed: Invalid argument

От -r — ни под пользователем, ни под рутом не работает. Что бы это могло значить? Извините за глупые вопросы, я вообще не понимаю, что оно делает. Ведь в браузерах эта же штука? Но там песочница и суидный бит на ней. Вроде бы он не обязательный и суидная песочница считается легаси?

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

От -r — ни под пользователем, ни под рутом не работает.

У меня на Бубунту всё работает. Пинг, в смысле.

kostyarin_ ★★
()
Ответ на: комментарий от linuxnewb13

Вообще отправка ICMP пакетов для обычного пользователя запрещена. И утилита ping разрешает это по своему. Но если приложение начнёт слать само эти пакеты, то у него неичего не выйдет не из под рута.

Флаг -r

Run the program only after the current effective user and group IDs have been mapped to the superuser UID and GID in the newly created user namespace.

Это не значит, что приложение получит права суперпользователя.


Отчего это не работает у Вас я не в курсе.

kostyarin_ ★★
()
Ответ на: комментарий от Pinkbyte

Мерси. Это не опасно? А -r всё равно не работает. Как узнать, чего ему не хватает?

unshare: unshare failed: Invalid argument

linuxnewb13
() автор топика
Ответ на: комментарий от Deleted

Ну, самое главное. AppArmor я пытался использовать, но что-то устал правила создавать, потому что все старые правила и не рабочие. Yama в убунте и хромиуме, больше я не знаю, где она нужна.

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

Это не опасно?

Любой пользователь, вызывающий бинарник unshare будет вызывать его с capability SYS_ADMIN. Что даёт эта capability - гугл в помощь. Если в unshare будет дыра - будет опасно. Но альтернатива этому: выдача бинарю suid-бита или запуск через sudo с выдачей прав рута - это еще более опасно, не находишь? :-)

unshare(CLONE_NEWNET|CLONE_NEWUSER) = -1 EINVAL (Invalid argument)

Какой дистрибутив?
Что говорит getcap /usr/bin/unshare

А еще ты упоминал AppArmor... Он тоже может мешать.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

Лорчую firejail, очень удобная штука.

Singularity ★★★★★
()

Знаете ли вы надёжный способ отучить винишко сливать всё в интернет?

unshare --net

Другой вариант пропатчить вайн и заменить пустышками функции вроде socket кажется мне более удобным. Насколько это надёжно, по-вашему?

Смотря что ты понимаешь под «надёжностью». Такое решение поможет, но его будет очень легко обойти, так как никто не запрещает из вендопрограммы под вайном дёргать libc или сисколлы напрямую.

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