Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2023-05-12 21:52:06

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

unshare chroot z chromium - czy da się z włączonym sanboxem?

Cześć.
próbuję uruchomić chromium w chroocie odizolowanym od systemu za pomocą unshare, a dokładnie:

Kod:

unshare --ipc --mount --pid --uts --user --cgroup --fork --kill-child --mount-proc --map-user=1000 --map-group=users --root=/home/ja/nowyroot

Mam dwa pytania:
1. Czy da się uruchomić chromium z włączonym sandboxem? Log błedu:

Kod:

[18:18:0512/203402.482738:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /usr/lib/chromium/chrome-sandbox is owned by root and has mode 4755.
[0512/203402.491240:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0512/203402.491292:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
Trace/breakpoint trap (core dumped)

Problem oczywiście znika jak uruchomię:

Kod:

chromium --no-sandbox

2. Jak rozwiązać problem z GPU:

Kod:

chromium --no-sandbox
[83:97:0512/203708.546719:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
Gtk-Message: 20:37:08.591: Failed to load module "canberra-gtk-module"
[83:102:0512/203708.652527:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:102:0512/203708.652601:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:97:0512/203708.656770:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:97:0512/203708.656852:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:83:0512/203708.672744:ERROR:chrome_browser_cloud_management_controller.cc(162)] Cloud management controller initialization aborted as CBCM is not enabled.
[83:97:0512/203708.686943:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:97:0512/203708.687036:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:83:0512/203708.725322:ERROR:gpu_process_host.cc(947)] GPU process launch failed: error_code=1002
[83:83:0512/203708.750757:ERROR:gpu_process_host.cc(947)] GPU process launch failed: error_code=1002
[83:125:0512/203708.751178:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:125:0512/203708.751262:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:125:0512/203708.751338:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:125:0512/203708.751423:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:125:0512/203708.751554:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/dbus/system_bus_socket: No such file or directory
[83:83:0512/203708.761190:ERROR:gpu_process_host.cc(947)] GPU process launch failed: error_code=1002
[83:96:0512/203708.775705:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:83:0512/203708.810028:ERROR:gpu_process_host.cc(947)] GPU process launch failed: error_code=1002
[83:97:0512/203708.830483:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:97:0512/203708.831018:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:83:0512/203709.217332:ERROR:object_proxy.cc(623)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[83:94:0512/203709.217509:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:83:0512/203709.244514:ERROR:gpu_process_host.cc(947)] GPU process launch failed: error_code=1002
[83:83:0512/203709.338314:ERROR:object_proxy.cc(623)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[83:94:0512/203709.338474:ERROR:bus.cc(399)] Failed to connect to the bus: Failed to connect to socket /run/user/1000/bus: No such file or directory
[83:83:0512/203709.343500:ERROR:gpu_process_host.cc(947)] GPU process launch failed: error_code=1002
[83:83:0512/203709.343535:FATAL:gpu_data_manager_impl_private.cc(440)] GPU process isn't usable. Goodbye.
[0512/203709.372017:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0512/203709.372110:ERROR:file_io_posix.cc(144)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
Trace/breakpoint trap (core dumped)

Chromium uruchamia się poleceniem:

Kod:

chromium --no-sandbox --in-process-gpu

ale nie można otworzyć żadnej strony internetowej. Dodam, że firefox uruchamia się bez problemu.

Ostatnio edytowany przez andrewdre (2023-05-12 21:54:09)

Offline

 

#2  2023-05-13 02:05:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: unshare chroot z chromium - czy da się z włączonym sanboxem?

Unshare nie tworzy chroota, tylko osobną przestrzeń adresową (linux namespaces).
tego samego mechanizmu namespaces używają sandboxy firefoxa i chromium,
o ile masz w kernelu włączoną opcję

Kod:

# root ~> grep -i CONFIG_USER_NS /boot/config-$(uname -r)
CONFIG_USER_NS=y

Także z ushare prochu nie wymyślisz, zainteresuj się Apparmorem, albo skryptem firejail.
Jest jeszcze nowszy projekt bubblewrap, który jest podobno konkurencją dla firejail.

Sznurki:
https://wiki.debian.org/AppArmor/HowToUse
https://wiki.archlinux.org/title/firejail
https://wiki.archlinux.org/title/Bubblewrap

Ostatnio edytowany przez Jacekalex (2023-05-13 02:08:31)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2023-05-13 17:13:29

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Re: unshare chroot z chromium - czy da się z włączonym sanboxem?

Na Linuksach znasz się lepiej ode mnie, ale:

Kod:

strace -f -p pid_termniala_z_unshare
3587  execve("/usr/bin/unshare", ["unshare", "--ipc", "--mount", "--pid", "--uts", "--user", "--cgroup", "--fork", "--kill-child", "--mount-proc", "--map-user=1000", "--map-group=users", "--root=/home/ja/nowyroot"], 0x55d11d2de380 /* 36 vars */) = 0
...
3588  chroot("/home/ja/nowyroot") = 0

Jeśli dobrze rozumiem chroot jest tworzony. Dzięki za dobre chęci, ale uparłem się na unshare :) Prosiłbym o odpowiedź jak wygląda jego współpraca z chromium.

Ostatnio edytowany przez andrewdre (2023-05-13 17:17:21)

Offline

 

#4  2023-05-13 23:13:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: unshare chroot z chromium - czy da się z włączonym sanboxem?

andrewdre napisał(-a):

Na Linuksach znasz się lepiej ode mnie, ale:

Kod:

strace -f -p pid_termniala_z_unshare
3587  execve("/usr/bin/unshare", ["unshare", "--ipc", "--mount", "--pid", "--uts", "--user", "--cgroup", "--fork", "--kill-child", "--mount-proc", "--map-user=1000", "--map-group=users", "--root=/home/ja/nowyroot"], 0x55d11d2de380 /* 36 vars */) = 0
...
3588  chroot("/home/ja/nowyroot") = 0

Jeśli dobrze rozumiem chroot jest tworzony. Dzięki za dobre chęci, ale uparłem się na unshare :) Prosiłbym o odpowiedź jak wygląda jego współpraca z chromium.

Tylko potem Chromium nie ma uprawnień, żeby w tym unsharowym chroocie stworzyć drugiego chroota przy pomocy chrome-sandbox.
Dlatego to u Ciebie nie działa.

Ostatnio edytowany przez Jacekalex (2023-05-14 07:46:05)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2023-05-15 16:22:06

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Re: unshare chroot z chromium - czy da się z włączonym sanboxem?

Chciałbym jeszcze zapytać Cie o trzy sprawy :)
1. Czy jest w ogóle jakiś sposób by unshare współpracowało z chromium i umożliwiło mu tworzenie sandboxa (przy założeniu, że używam unshare w sposób, który wcześniej opisałem)?
2. Co jest bezpieczniejsze unshare z chromium bez sandboxa, czy chromium bez unshare?
3. Chcę użyć chroota by chromium nie miało dostępu do żadnego z plików głownego systemu. Czy są jakieś inne sposoby, poza tymi które wymieniłeś wcześniej i maszynami wirtualnymi?

Offline

 

#6  2023-05-16 04:10:51

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: unshare chroot z chromium - czy da się z włączonym sanboxem?

Moim zdaniem nie ma.

Chromium w chroocie nie ma uprawnień do tworzenia takiego samego chroota i kropka.
Unshare i chrome-sandbox używają tego samego mechanizmu namespaces.

Prochu tu nie wymyślisz.

Możesz Chromium i Firefoxa uzbroić profilami apparmora, ale sanboxy zostaw mechanizmom zawartym w przeglądarkach, programiści tych przeglądarek troszkę lepiej znają swoje produkty niż użytkownicy.
Zwłaszcza, że unshare to nie jest produkcyjny mechanizm  tyko referencyjny mechanizm demonstracyjny, do tworzenia w locie sanboxów są inne narzędzia jak bubblewrap czy firejail.

Z resztą bubblewrap to jest mechanizm sanboxa wyciągnięty z przeglądarki chromium dla zewnętrznych aplikacji.

Ostatnio edytowany przez Jacekalex (2023-05-16 15:40:39)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)