Nowe posty
|
Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.
Wiadomości - andrewdre
Strony: [1]
1
« dnia: 2023-07-27, 21:25:04 »
Do tej pory by połączyć się z Xsem używałem: xauth add "$DISPLAY" MIT-MAGIC-COOKIE-1 <hex key>
i jeśli usunę: int namespace_fd = open("/var/run/netns/chromium_netns", O_RDONLY|O_CLOEXEC); setns(namespace_fd, CLONE_NEWNET);
to Chromium uruchamia się i łączy się z Xsem poprzez "/tmp/.X11-unix/X0". Log strace: connect(25, {sa_family=AF_UNIX, sun_path=@"/tmp/.X11-unix/X0"}, 20) = 0
Nie rozumiem tylko dlaczego połączenie z Xsem poprzez MIT-MAGIC-COOKIE-1 nie działa w nowej przestrzeni nazw sieciowych. Proszę o pomoc Edit: Próbuję połączyć się przez localhosta - ustawiłem w pliku xserverrc: exec /usr/bin/X -listen tcp "$@"
"nmap 127.0.0.1 -p-" pokazuje: a strace: connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("127.0.0.1")}, 16) = 0 getsockname(3, {sa_family=AF_INET, sin_port=htons(50425), sin_addr=inet_addr("127.0.0.1")}, [28 => 16]) = 0 connect(3, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Połączenie odrzucone)
dodatkowo "nc -v 127.0.0.1 6000" w systemie głównym: Connection to 127.0.0.1 6000 port [tcp/x11] succeeded!
w odizolowanym środowisku: nc: connect to 127.0.0.1 port 6000 (tcp) failed: Connection refused
i ciągle nie mogę uruchomić Chromium
2
« dnia: 2023-07-26, 19:19:43 »
Dzięki za odpowiedź. Używam ciągle zasłużonego iptables Nazwę interfejsu zmieniłem wcześniej. Polecenie "ip a" w chroocie pokazuje: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 3: veth1@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether c6:6e:c5:db:81:ab brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.0.1/24 scope global veth1 valid_lft forever preferred_lft forever inet6 fe80::c46e:c5ff:fedb:81ab/64 scope link valid_lft forever preferred_lft forever
a "ifconfig" lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 255.255.255.0 broadcast 0.0.0.0 inet6 fe80::c46e:c5ff:fedb:81ab prefixlen 64 scopeid 0x20<link> ether c6:6e:c5:db:81:ab txqueuelen 1000 (Ethernet) RX packets 12 bytes 936 (936.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 13 bytes 1006 (1006.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Zresztą curl łączy się z internetem. Jeśli chodzi o Chromium, to problem jest z z samym chrootem, bo jeśli usunę: mount("none", "/", NULL, MS_PRIVATE|MS_REC, NULL); chroot("/path/to/new/root/"); chdir("/"); mount("proc", "/proc", "proc", MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL);
czyli kod który odpowiada za tworzenie chroota, to ciągle jestem w przestrzeni nazw sieciowych "chromium_netns" ("ip a" zwraca to samo co w chroocie), a Chromium uruchamia się i łączy się z internetem.
3
« dnia: 2023-07-25, 23:25:59 »
Cześć, próbuję odizolować Chromium od systemu głównego w Arch Linuksie. Użyłem do tego: unshare(CLONE_NEWNS|CLONE_NEWCGROUP|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWPID); mount("none", "/", NULL, MS_PRIVATE|MS_REC, NULL); chroot("/path/to/new/root"); chdir("/"); mount("proc", "/proc", "proc", MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL); setresuid(-1, 1001, 1001);
Program ma ustawiony bit setuid. Chromium uruchamia się i nie zauważyłem żadnych problemów. Te pojawiają się jednak gdy próbuję dodać do programu przestrzeń nazw sieciowych za pomocą: int namespace_fd = open("/var/run/netns/chromium_netns", O_RDONLY|O_CLOEXEC); setns(namespace_fd, CLONE_NEWNET)
Curl działa, ale przy próbie uruchomienia Chromium pojawiają się błędy: [3:3:0721/210403.008132:ERROR:ozone_platform_x11.cc(239)] Missing X server or $DISPLAY [3:3:0721/210403.008334:ERROR:env.cc(255)] The platform failed to initialize. Exiting.
strace: connect(29, {sa_family=AF_UNIX, sun_path=@"/tmp/.X11-unix/X0"}, 20) = -1 ECONNREFUSED (Połączenie odrzucone) connect(29, {sa_family=AF_INET6, sin6_port=htons(6000), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_scope_id=0}, 28) = -1 ECONNREFUSED (Połączenie odrzucone) connect(29, {sa_family=AF_INET, sin_port=htons(6000), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 ECONNREFUSED (Połączenie odrzucone)
Przy ustawianiu przestrzeni nazw sieciowych skorzystałem z tego tutoriala (do punktu czwartego - ostatnie polecenie to "sudo iptables -A FORWARD -i veth0 -o eth0 -j ACCEPT"). Link do kodu programu. Proszę o pomoc:)
Strony: [1]
|