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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Zamiast instalować Tor`a można "zaciemnić" swój adres IP rozprowadzany po świecie przez nasze okno, z którego codziennie korzystamy czyli przeglądarkę internetową. Powiedzmy, że jest nią Chromium. Jest ciekawa strona opisująca sposób na stworzenie dedykowanej przestrzeni sieciowej dla przeglądarki.
https://morfikov.github.io/post/jak-uruchomic-firef … w-sieciowych/
Prześledziłem całą procedurę ale coś mi nie wyszło, bo nie uzyskałem zmiany IP. Zacznę od początku opiszę co wykonałem.
Korzystam z dnscrypt-proxy więc szyfrowania DNS, którego resolver używa DNSSEC.
Moja sieć:
# ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
Teraz po kolei co zrobiłem:
# ip netns add chromium ip link add veth90 type veth peer name veth91 ip link set veth91 netns chromium ip addr flush dev veth90 ip addr add 192.168.1.11/24 dev veth90 ip link set dev veth90 up ip netns exec chromium ip addr flush dev veth91 ip netns exec chromium ip addr add 192.168.1.11/24 dev veth91 ip netns exec chromium ip link set dev veth91 up ip netns exec chromium ip route show 192.168.1.0/24 dev veth91 proto kernel scope link src 192.168.1.11
Teraz pytanie, czy plik z regułami nftables powinien wyglądać jak poniżej oraz w jaki sposób dodać te reguły?
#!/usr/sbin/nft -f add rule inet filter FORWARD meta iifname { wlp3s0 } meta oifname { veth90 } counter jump check-state add rule inet filter FORWARD meta iifname { veth90 } meta oifname { wlp3s0 } counter accept add rule inet filter check-state ct state { established, related } accept add rule inet filter check-state ct state { invalid } counter drop add rule ip nat POSTROUTING meta oifname != "veth-90" ip saddr { 192.168.1.10/24 } counter masquerade
mkdir -p /etc/netns/chromium touch /etc/netns/chromium/resolv.conf echo "nameserver 1.1.1.1" > /etc/netns/chromium/resolv.conf
Używam DNS Cloudflare stąd adres 1.1.1.1
Test wypadł źle:
ip netns exec chromium su -c 'ping 1.1.1.1 -c 4' marek sieć niedostępna
O dziwo pomimo tego przeglądarka uruchamia się w oddzielnej przestrzeni sieciowej lecz test np. WebRTC leak test nie potwierdził zmiany IP.
ip netns exec chromium su -c 'chromium' marek
Ostatnio edytowany przez mark (2020-11-09 18:32:06)
Offline
Pewnie dlatego, że masz ten sam adres IP na dwóch interfejsach:
ip addr add 192.168.1.11/24 dev veth90
ip netns exec chromium ip addr add 192.168.1.11/24 dev veth91
Nie dodałeś też bramki dla przestrzeni nazw (przeczytaj uważnie tamten wpis polecenie po poleceniu).
Co do samego rozwiązania to jest ono jednak trochę do dupy. Wolę maszyny wirtualne xD
Ostatnio edytowany przez morfik (2020-11-09 19:57:28)
Offline
Jest jeszcze firejail
Offline
Wzorowałem się Twoim opisem https://morfikov.github.io/post/jak-uruchomic-firef … w-sieciowych/
W nim do wirtualnego interfejsu sieciowego veth90 przypisałeś adresację IP 192.168.10.1/24 na bazie sieci 192.168.10.0/24
veth90 - 192.168.10.1/24 veth91 - 192.168.10.2/24
U mnie, kierując kierując się tym co podał ifconfig, mam sieć 192.168.1.10 przypisaną do interfejsu wlp3s0 podałem więc w ten sposób:
veth90 192.168.1.1/24 veth91 192.168.1.2/24
Postęp tworzenia przestrzeni nazw wygląda więc dalej jak poniżej:
ip netns add chromium ip link add veth90 type veth peer name veth91 ip link set veth91 netns chromium ip addr flush dev veth90 ip addr add 192.168.1.1/24 dev veth90 ip link set dev veth90 up ip netns exec chromium ip addr flush dev veth91 ip netns exec chromium ip addr add 192.168.1.2/24 dev veth91 ip netns exec chromium ip link set dev veth91 up ip netns exec chromium ip route add default via 192.168.1.1 ip netns exec chromium ip route show default via 192.168.1.1 dev veth91 192.168.1.0/24 dev veth91 proto kernel scope link src 192.168.1.2 ip netns exec chromium ip link set dev lo up echo 1 > /proc/sys/net/ipv4/ip_forward
A to konfiguracja netfiltera:
#!/usr/sbin/nft -f add rule inet filter FORWARD meta iifname { wlp3s0 } meta oifname { veth90 } counter jump check-state add rule inet filter FORWARD meta iifname { veth90 } meta oifname { wlp3s0 } counter accept add rule inet filter check-state ct state { established, related } accept add rule inet filter check-state ct state { invalid } counter drop add rule ip nat POSTROUTING meta oifname != "veth-90" ip saddr { 192.168.1.10/24 } counter masquerade
Czy prawidłowo zrobiłem kojarząc interfejs dla pakietów wychodzących z wlp3s0. Ty podałeś bond0. Dalej napisałeś: "Powyższy plik można dołączyć do obecnej konfiguracji filtra pakietów lub też uruchomić go bezpośrednio z terminala wpisując: # nft -f firefox-ns"
Wydaje się że lepsza byłaby opcja druga jednak tak to nie działa:
nft -f chromium-ns bash: nft: nie znaleziono polecenia
Nie wiem w którym momencie popełniłem błąd gdyż metoda się u mnie nie sprawdza.
Offline
bash: nft: nie znaleziono polecenia
su - lub sudo -i lub sudo nft...
Offline
@mark: to ma być inna sieć (trzeba ją stworzyć) w stosunku do tej swojej sieci domowej -- w końcu chcesz odpalić ff w innej przestrzeni nazw sieciowych. Więc stwórz sobie te interfejsy dokładnie w taki sposób jak są w artykule bez zmiany czegokolwiek. Przeczytaj ten artykuł powoli proszę ciebie. xD
Ostatnio edytowany przez morfik (2020-11-10 17:15:08)
Offline
morfik napisał(-a):
@mark: to ma być inna sieć (trzeba ją stworzyć) w stosunku do tej swojej sieci domowej — w końcu chcesz odpalić ff w innej przestrzeni nazw sieciowych. Więc stwórz sobie te interfejsy dokładnie w taki sposób jak są w artykule bez zmiany czegokolwiek. Przeczytaj ten artykuł powoli proszę ciebie. xD
Wielokrotnie czytałem Twój artykuł próbując zrozumieć istotę całej procedury. Od początku przyjąłem złe założenie iż mam dopasować swoje IP. Tak robiłem i nie wychodziło. Obecnie powtórzyłem całość nie zmieniając żadnego parametru który podałeś. Jest źle. Ping nie odpowiada. Parokrotne próby stworzenia nazwy dla chromium a teraz dla firefox namieszały w systemie.
# ip netns add firefox Cannot create namespace file "/var/run/netns/firefox": File exists # rm /var/run/netns/firefox rm: nie można usunąć '/var/run/netns/firefox': Urządzenie lub zasoby zajęte # rm /var/run/netns/chromium rm: nie można usunąć '/var/run/netns/chromium': Urządzenie lub zasoby zajęte
Chyba za wysokie progi jak dla mnie.
1. Nie wiem jak powyższe pozostałości wyczyścić?
2. Z konfiguracją netfiltera bez Twojej pomocy nie dam rady. @samu podpowiadał lecz to także nie działa!
Offline
Patrz w manual, skoro można dodać ns, to można go i usunąć:
https://man7.org/linux/man-pages/man8/ip-netns.8.html
Reguły zapory masz tam podane, po prostu w miejsce bond0 wpisz nazwę interfejsu, którym net u ciebie wychodzi w świat. Poza tym reszta jest ta sama.
Ostatnio edytowany przez morfik (2020-11-10 18:41:43)
Offline
morfik napisał(-a):
Patrz w manual, skoro można dodać ns, to można go i usunąć:
https://man7.org/linux/man-pages/man8/ip-netns.8.html
Reguły zapory masz tam podane, po prostu w miejsce bond0 wpisz nazwę interfejsu, którym net u ciebie wychodzi w świat. Poza tym reszta jest ta sama.
OK z pierwszym już porządek. Dalej poszło tak:
# ip netns add firefox # ip netns list firefox # ip link add veth90 type veth peer name veth91 RTNETLINK answers: Operation not supported
Ups. Chyba z rozpędu usunąłem moduł veth
ls -l /lib/modules/4.19.0-12-amd64/kernel/net/ipv4/ razem 644 -rw-r--r-- 1 root root 21948 paź 18 10:43 ah4.ko -rw-r--r-- 1 root root 33636 paź 18 10:43 esp4.ko -rw-r--r-- 1 root root 14068 paź 18 10:43 esp4_offload.ko -rw-r--r-- 1 root root 35196 paź 18 10:43 fou.ko -rw-r--r-- 1 root root 12164 paź 18 10:43 gre.ko -rw-r--r-- 1 root root 38500 paź 18 10:43 inet_diag.ko -rw-r--r-- 1 root root 11628 paź 18 10:43 ipcomp.ko -rw-r--r-- 1 root root 53892 paź 18 10:43 ip_gre.ko -rw-r--r-- 1 root root 24588 paź 18 10:43 ipip.ko -rw-r--r-- 1 root root 42588 paź 18 10:43 ip_tunnel.ko -rw-r--r-- 1 root root 27356 paź 18 10:43 ip_vti.ko drwxr-xr-x 2 root root 4096 paź 21 19:07 netfilter -rw-r--r-- 1 root root 12796 paź 18 10:43 raw_diag.ko -rw-r--r-- 1 root root 16292 paź 18 10:43 tcp_bbr.ko -rw-r--r-- 1 root root 11452 paź 18 10:43 tcp_bic.ko -rw-r--r-- 1 root root 15236 paź 18 10:43 tcp_cdg.ko -rw-r--r-- 1 root root 10836 paź 18 10:43 tcp_dctcp.ko -rw-r--r-- 1 root root 9452 paź 18 10:43 tcp_diag.ko -rw-r--r-- 1 root root 7836 paź 18 10:43 tcp_highspeed.ko -rw-r--r-- 1 root root 10780 paź 18 10:43 tcp_htcp.ko -rw-r--r-- 1 root root 8316 paź 18 10:43 tcp_hybla.ko -rw-r--r-- 1 root root 9668 paź 18 10:43 tcp_illinois.ko -rw-r--r-- 1 root root 9172 paź 18 10:43 tcp_lp.ko -rw-r--r-- 1 root root 14028 paź 18 10:43 tcp_nv.ko -rw-r--r-- 1 root root 6748 paź 18 10:43 tcp_scalable.ko -rw-r--r-- 1 root root 11756 paź 18 10:43 tcp_vegas.ko -rw-r--r-- 1 root root 8444 paź 18 10:43 tcp_veno.ko -rw-r--r-- 1 root root 8916 paź 18 10:43 tcp_westwood.ko -rw-r--r-- 1 root root 8572 paź 18 10:43 tcp_yeah.ko -rw-r--r-- 1 root root 14180 paź 18 10:43 tunnel4.ko -rw-r--r-- 1 root root 15556 paź 18 10:43 udp_diag.ko -rw-r--r-- 1 root root 14148 paź 18 10:43 udp_tunnel.ko -rw-r--r-- 1 root root 8340 paź 18 10:43 xfrm4_mode_beet.ko -rw-r--r-- 1 root root 8540 paź 18 10:43 xfrm4_mode_transport.ko -rw-r--r-- 1 root root 9300 paź 18 10:43 xfrm4_mode_tunnel.ko -rw-r--r-- 1 root root 9636 paź 18 10:43 xfrm4_tunnel.ko
Ostatnio edytowany przez mark (2020-11-10 19:21:21)
Offline
ip netns add firefox
Z tego co widzę, pominąłeś:
ip netns exec firefox ip link set dev lo up
Offline
samu napisał(-a):
Z tego co widzę, pominąłeś:
Kod:
ip netns exec firefox ip link set dev lo up
Usunąłem też przez pomyłkę moduł kernela veth.ko stąd niemożność dalszego postępu.
# ip netns exec firefox No command specified # ip link add veth90 type veth peer name veth91 RTNETLINK answers: Operation not supported
Jak teraz przywrócić moduł verth.ko?
Offline
Jak teraz przywrócić moduł verth.ko?
sudo apt install linux-modules-$(uname -r) --reinstall
ponownie zainstaluje wszystkie moduły wymagane przez system
Ostatnio edytowany przez developer (2020-11-10 21:43:00)
Offline
developer napisał(-a):
Jak teraz przywrócić moduł verth.ko?
Kod:
sudo apt install linux-modules-$(uname -r) --reinstallponownie zainstaluje wszystkie moduły wymagane przez system
dam@debian:~/Pulpit$ aptitude search linux-modules adam@debian:~/Pulpit$
Mówimy o debianie czy ubuntu?
Offline
morfik napisał(-a):
mark napisał(-a):
Jak teraz przywrócić moduł verth.ko?
Przeinstaluj pakiet kernela (linux-image-*).
Nie potrafię
$ uname -r 4.19.0-12-amd64
sudo apt install linux-modules-4.19.0-12-amd64 --reinstall E: Nie udało się odnaleźć pakietu linux-modules-4.19.0-12-amd64 E: Couldn't find any package by glob 'linux-modules-4.19.0-12-amd64' E: Nie udało się znaleźć żadnego pakietu według wyrażenia regularnego "linux-modules-4.19.0-12-amd64"
ls /lib/modules/4.19.0-12-amd64/kernel/drivers/ acpi dax hid media parport ssb video android dca hv memstick pci staging virt ata devfreq hwmon message pcmcia target virtio atm dma hwtracing mfd platform thermal w1 bcma edac i2c misc power thunderbolt watchdog block extcon iio mmc powercap tty xen bluetooth firewire infiniband mtd pps uio cdrom firmware input net ptp usb char gnss isdn nfc pwm uwb cpufreq gpio leds nvdimm scsi vfio crypto gpu md nvme spi vhost
Chodzi o to że przypadkowo wyciąłem moduł verth.ko
Offline
Na początek, zamiast certolić się tydzień z ip netns, lepiej pobaw się dockerem, FF w kontenerze dockera ma własnie osobną przestrzeń nazw sieciowych i szereg innych mechanizmów izolujących go od systemu operacyjnego.
Morfik opisał na blogu sposób na firefoxa w dockerze, tylko chyba nieco później, niż mechanizm netns.
Ostatnio edytowany przez Jacekalex (2024-01-24 03:44:15)
Offline
mark napisał(-a):
Przeinstaluj pakiet kernela (linux-image-*).
Nie potrafię
# dpkg -l | grep -i linux-image ii linux-image-5.9.1-amd64 5.9.1-amd64-1 amd64 Linux kernel, version 5.9.1-amd64
i reinastall ten pakiet, który ci zwróci.
Jacekalex napisał(-a):
Morfik opisał na blogu sposób na firefoxa w dockerze, tylko chyba nieco później, niż mechazm netns.
Tu jest i to ogólnie dotyczyło uruchamiania graficznych appek w kontenerach, a nie tylko samego FF. A i tu jeszcze info jak przekierować dźwięk z dokera do PA, bo bez tego to będzie można przeglądać net bez dźwięku. xD Tak czy inaczej wszystkie takie zabiegi nieco degradują szczelność zamknięcia takiego kontenera, dlatego jednak wole VM. xD
Ostatnio edytowany przez morfik (2020-11-11 12:21:20)
Offline
morfik napisał(-a):
Przeinstaluj pakiet kernela (linux-image-*).
Kod:
# dpkg -l | grep -i linux-imagei reinastall ten pakiet, który ci zwróci.
Poszło! Zainstalowałem ponownie nową nazwę sieciową FF (tak jak zalecałeś czyli z takim IP jak u Ciebie na stronie, jedyna zmiana to mój interfejs wlp3s0 podany w pliku "nft" w miejsce bond0.)
Coś jednak nie trybi- brak netu.
# ip netns exec firefox su -c 'ping 8.8.8.8 -c 4' marek PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. --- 8.8.8.8 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 69ms
A dlaczego wychodzi mi to:
# nft -f firefox-ns bash: nft: nie znaleziono polecenia
Offline
Pokaż wynik:
ip addr show veth91
ping -I veth90 adres_IP_veth91
ip netns exec firefox ping adres_IP_veth90
ip netns exec firefox cat /etc/resolv.conf
Ostatnio edytowany przez samu (2020-11-11 22:09:46)
Offline
mark napisał(-a):
A dlaczego wychodzi mi to:
Kod:
# nft -f firefox-ns bash: nft: nie znaleziono polecenia
# which nft /usr/sbin/nft # apt-file search /usr/sbin/nft nftables: /usr/sbin/nft
Jak zaaplikujesz reguły firewall'a, to ci będzie działać.
Offline
@samu
ip addr show veth91 Device "veth91" does not exist. ping -I veth90 adres_IP_veth91 ping: adres_IP_veth91: Ta nazwa lub usługa jest nieznana ping adres_IP_veth90 ping: adres_IP_veth90: Ta nazwa lub usługa jest nieznana sudo ip netns exec firefox cat /etc/resolv.conf nameserver 8.8.8.8
ip link add veth90 type veth peer name veth91 RTNETLINK answers: File exists ip link set veth91 netns firefox Cannot find device "veth91"
@morfik
which nft <bez odpowiedzi> apt-file search /usr/sbin/nft bash: apt-file: nie znaleziono polecenia
ip a 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 2: enp2s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000 link/ether 14:dd:a9:8e:bc:48 brd ff:ff:ff:ff:ff:ff 3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether dc:85:de:fc:a5:59 brd ff:ff:ff:ff:ff:ff inet 192.168.1.10/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp3s0 valid_lft 83867sec preferred_lft 83867sec inet6 fe80::de85:deff:fefc:a559/64 scope link noprefixroute valid_lft forever preferred_lft forever 5: veth90@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 3e:1a:cc:a7:7d:41 brd ff:ff:ff:ff:ff:ff link-netns firefox inet 192.168.10.1/24 scope global veth90 valid_lft forever preferred_lft forever inet6 fe80::3c1a:ccff:fea7:7d41/64 scope link valid_lft forever preferred_lft forever
lsmod Module Size Used by veth 20480 0
Ostatnio edytowany przez mark (2020-11-11 18:54:31)
Offline
Jak tak będziesz wpisywał polecenia bez zainteresowania się co one robią oraz nie będziesz czytał co ci na terminalu system wypisuje, to daleko nie zajedziesz.
Ostatnio edytowany przez morfik (2020-11-11 19:32:25)
Offline
@mark
Zamiast
adres_IP_veth91 adres_IP_veth90
Wpisz IP interfejsów veth
192.168.10.2 192.168.10.1
Nie wiem czy swoimi wskazówkami, nie wprowadzam Cię w błąd. Jeśli tak, to przepraszam.
Najlepiej będzie, jak będziesz sugerował się podpowiedziami @morfik.
Ostatnio edytowany przez samu (2020-11-11 22:12:25)
Offline
Jacekalex napisał(-a):
Na początek, zamiast certolić się tydzień z ip netns, lepiej pobaw się dockerem, FF w kontenerze dockera ma własnie osobną przestrzeń nazw sieciowych i szereg innych mechanizmów izolujących go od systemu operacyjnego.
Morfik opisał na blogu sposób na firefoxa w dockerze, tylko chyba nieco później, niż mechazm netns.
Spierdolony docker!!!!!!!!!
Od czasu gdy zlimitowali pobranie kontenera hostowanego w DH za free ja przestałem używać dockera i to samo polecam innym.
Offline
developer napisał(-a):
Spierdolony docker!!!!!!!!!
Od czasu gdy zlimitowali pobranie kontenera hostowanego w DH za free ja przestałem używać dockera i to samo polecam innym.
Czekaj... masz ból dupy o to, że DARMOWA usługa wprowadziła limity pobierania elementów nie ograniczając przy tym możliwości kupna płatnej usługi albo postawienia własnego DARMOWEGO repo?
Wszystko wporządku?
Swoją drogą te limity nie są jakieś super niskie...
https://docs.docker.com/docker-hub/download-rate-limit/
A z samego DH pobierasz obraz a nie kontener...
Ostatnio edytowany przez urbinek (2020-11-11 22:43:18)
Offline