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/.
Strony: 1
Użytkownik

Cześć.
Kilka dni temu włączyłem DNSoverTLS, co można uzyskać poprzez plik /etc/systemd/resolved.conf. (Jest to zrobione tylko dla testów).
W tym pliku dostępna jest opcja ReadEtcHosts dzięki której resolver, będzie "czytał"
plik /etc/hosts. Po dodaniu większej ilości domen z kilku list i stosując
0.0.0.0 zacząłem sprawdzać, czy dodane domeny są blokowane.
Okazało się, że są blokowane. Po wpisaniu w przeglądarce dodanej do pliku hosts domeny, pojawia się
komunikat: "Niestety, nie udało się odnaleźć tej strony".
To co mnie zastanawia to polecenie dig(1) i wynik jego działania dla domen. Poniżej skrócony przykład:
,----[ [~]$ dig bugsense.com ]
| (...)
| ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28648
| (...)
`----
Czy status nie powinien zawierać np.: NXDOMAIN, ERROR?
Co o tym myślicie? Czy jest to problem, a może to zupełnie normalne zachowanie i wynik?
Sorry za tak naiwne pytanie.
Pozdrawiam Was!
Ostatnio edytowany przez wiarus (2024-01-18 20:20:04)
Offline





Cenzor wirtualnego świata
Użytkownik

Cześć Morfik.
Szczerze? Nie wiem, dlaczego. Po prostu skorelowałem to chyba z tym, że np. DoH włączony
w przeglądarce obejmuje, tylko jej działanie.
A skoro DoT jest włączone dla "całego systemu", to... i tu właśnie pojawia się kwestia dig(1).
W każdym razie, jest jakaś odpowiedź czy to po prostu było głupie pytanie, pozbawione
wszelkiego sensu, którego nigdy nie powinienem był zadać?
Miłego dnia, pozdro!
Offline





Cenzor wirtualnego świata
No np. zgodnie z tym opisem:
Google napisał(-a):
NXDOMAIN means that the domain is non-existent, providing a DNS error message that is received by the client (Recursive DNS server). This happens when the domain has been requested but cannot be resolved to a valid IP address. All in all, NXDOMAIN error messages simply mean that the domain does not exist.
Czyli taki błąd mówi, że domena nie istnieje i dzieje się to gdy robisz zapytanie i nie można tego zapytania rozwiązać na poprawny adres IP. Ty jednak, podałeś adres 0.0.0.0, który to w linux jest adresem poprawnym:
0.0.0.0 as a target address refers variously to a non-routable host or to “this host” (RFC 5735 section 3). In practice connecting to 0.0.0.0 is, in most scenarios, equivalent to connecting to localhost. Strictly speaking it isn’t valid as a destination address, on the wire (RFC 1122 section 3.2.1.3), only as a source address, so the operating system has to ensure that a packet with destination address of 0.0.0.0 doesn’t leave the system as-is. In practice, when the Linux kernel sees a packet with a destination address of 0.0.0.0 (i.e. no destination address), it copies the source address to the destination address, and if the packet doesn’t have a source address either, it sets both to the loopback address. In both cases the packet is “sent out” over the loopback interface, so it never leaves the system.
-- https://en.wikipedia.org/wiki/0.0.0.0
-- https://unix.stackexchange.com/questions/419880/con … 419881#419881
Wiec wychodzi na to, że na linux, IP 0.0.0.0 w adresie docelowym to nic innego jak 127.0.0.1, który jest prawidłowy i nie generuje błędów. xD
Ostatnio edytowany przez morfik (2024-01-19 08:53:42)
Offline
Użytkownik

Oki, dzięki za odpowiedź. Temat można uznać za rozwiązany.
Pozdro Morfik!
Offline





Cenzor wirtualnego świata
Użytkownik

Cześć Morfik. Podzielisz się z Nami tym, co znalazłeś w odniesieniu do Linuksa? :)
—————————————
A, i jeszcze jedno pytanie: wspomniane w pierwszym poście testy dotyczą również DNSoverHTTPS włączonego w Firefoksie.
Kiedy włączone są obie metody szyfrowania DNS to oczywiście blokowanie domen z pliku /etc/hosts
nie działa.
W Firefoksie jest opcja dostępna przez about:config - chodzi o network.trr.exclude-etc-hosts
z domyślną wartością ustawioną na true. Z tego co pamiętam, zmieniłem wspomnianą wartość
na false, ale to nie zadziałało. Domeny z pliku /etc/hosts nie były blokowane.
(Być może nie zrobiłem np. restartu systemu, ale nie pamiętam tego. Restart Firefoksa miał miejsce. Raczej... Ech!)
Wie ktoś z Was, jak to zmienić? Tak, żeby obie metody szyfrowania DNS były włączone i jednocześnie blokowanie
domen było możliwe? Albo np. włączone DoH w Firefoksie a wyłączone DoT poprzez systemd-resolved.
Sorry za te pytania. Odpowiedź pewnie jest w internecie, ale w tej chwili
nie jestem w stanie szukać odpowiedzi. Oczywiście nie chodzi o to, żeby ktoś z Was specjalnie
szukał rozwiązania!!! Po prostu może znacie przyczynę i rozwiązanie opisanych problemów?
Dzięki!!!
Offline





Cenzor wirtualnego świata
No tam w poprzednim poście dopisałem.
Zmiany w /etc/hosts nie wymagają restartu.
Ja nie używam systemd-resolved -- ja korzystam z dnscrypt-proxy i dnsmasq. W dnscrypt-proxy mam ustawiony DoH, bo DoT jest trochę bez sensu, tj. ma własny port i określoną strukturę pakietów, którą można odfiltrować na FW i wyciąć ten ruch nawet jak nie używasz standardowego portu. W przypadku DoH ruch jest bardzo zbliżony do ruchu https i wykorzystuje też ten port i tutaj ewentualna cenzura nie do końca może być skuteczna. Dlatego korzystaj z DoH, a DoT sobie zwyczajnie odpuść.
Mi przy takiej konfiguracji system bez poblemu blokuje domeny w /etc/hosts, które wskazują 0.0.0.0 czy 127.0.0.1, przykład:
# ping wp.pl -c 4 PING wp.pl (212.77.98.9) 56(84) bytes of data. 64 bytes from www.wp.pl (212.77.98.9): icmp_seq=1 ttl=51 time=45.9 ms 64 bytes from www.wp.pl (212.77.98.9): icmp_seq=2 ttl=51 time=60.0 ms 64 bytes from www.wp.pl (212.77.98.9): icmp_seq=3 ttl=51 time=34.2 ms 64 bytes from www.wp.pl (212.77.98.9): icmp_seq=4 ttl=51 time=42.2 ms --- wp.pl ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 34.176/45.584/60.029/9.357 ms
Adres jest 212.77.98.9 . Teraz edytuję plik /etc/hosts i dopisuję 0.0.0.0 wp.pl i co otrzymuję?
# ping wp.pl -c 4 PING wp.pl (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.066 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.078 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.082 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.093 ms --- wp.pl ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3062ms rtt min/avg/max/mdev = 0.066/0.079/0.093/0.009 ms
Odpowiedź pochodzi z 127.0.0.1 czyli wpis w /etc/hosts został uwzględniony.
No ale to ping, a jak bym chciał odwiedzić stronę www?
Bez wpisu w /etc/hosts:
# curl --head wp.pl HTTP/1.1 301 Moved Permanently Server: nginx Date: Fri, 26 Jan 2024 19:53:17 GMT Content-Type: text/html Content-Length: 162 Connection: keep-alive Location: https://www.wp.pl/
I z wpisem:
# curl --head wp.pl curl: (7) Failed to connect to wp.pl port 80 after 0 ms: Couldn't connect to server
Także wszystko działa bez problemu i przekierowanie zapytania działa bez zarzutu.
Offline
Użytkownik

Cześć Morfik.
Dzięki za niezłe rozwinięcie tematu i sorry za zwłokę z odpowiedzią!
Masz oczywiście rację jeśli chodzi o DoT, ale nie chciałem, po prostu,
żeby pozostały ruch, poza przeglądarką latał na pocie 53 itd., dlatego
wolałem już włączyć ten protokół za pomocą systemd-resolved i dodatkowo
DoH w przeglądarce (poszukam jeszcze rozwiązania tej kwestii dot. ignorowania pliku
/etc/hosts nawet, gdy opcja network.trr.exclude-etc-hosts ma wartość false itd).
Normalnie również korzystam z DNSCrypt-Proxy, ale w tym przypadku
konieczna będzie chyba "instalacja" z wykorzystaniem tar.gz, bo wersja pakietu libc6
dostępna w systemie jest za stara, żeby zainstalować przynajmniej wersję DNSCrypt-Proxy 2.0.45
za pomocą np. APT'a. Ale to kwestia na - ewentualnie - nowy temat.
Nie miałem jeszcze czasu, żeby sprawdzić wspomnianą metodę z paczką tar.gz i
najnowszą wersją DNSCrypt (mam nadzieję, że to zadziała i nie będzie problemu np. z libc6,
w razie problemów, utworzę nowy temat).
Jeszcze raz dzięki Morfik za pomoc. Pozdro!
Offline
Strony: 1