Skip to content

Artykuły oznaczone jako: dns

Jak zaszyfrować zapytania DNS na smartfonie (dnscrypt-proxy)

Smartfony to takie małe komputery, z których praktycznie każdy z nas korzysta na co dzień. Nie różnią się one zbytnio od tych domowych PC czy laptopów, no może za wyjątkiem rozmiarów. Wszystkie elementy tyczące się spraw sieciowych, np. korzystanie z internetu za pomocą przeglądarki, są dokładnie taka same co w przypadku zwykłych komputerów. Na smartfonach domeny również trzeba jakoś rozwiązać. Standardowo w Androidzie są wykorzystywane serwery od Google (8.8.8.8 i 8.8.4.4). Jeśli nasza sieć WiFi oferuje inne DNS'y, to wtedy one mają pierwszeństwo. Niemniej jednak, nie zawsze będziemy w stanie kontrolować środowisko sieciowe, do którego zostaniemy podłączeni. W takiej sytuacji będziemy zdani na łaskę admina obcej sieci w kwestii poufności odwiedzanych przez nas stron www czy jakichkolwiek innych domen w internecie. Z doświadczenia wiem, by nie składać swojej prywatności w czyjeś ręce i dlatego też postanowiłem poszukać sposobu na zaszyfrowanie zapytań DNS bezpośrednio na smartfonie. Długo nie musiałem szukać, bo okazuje się, że dnscrypt-proxy jest dostępny również na Androida.

Czytaj cały wpis

Cannot move /etc/resolv.conf.dhclient-new to /etc/resolv.conf: Operation not permitted

Użytkownicy linux'a przykładają nieco większą wagę do konfiguracji swojego systemu. Te nieco bardziej świadome jednostki zdają sobie sprawę, że różnego rodzaju automaty są w stanie przepisywać konfigurację systemową bez naszej wiedzy. Weźmy sobie resolver DNS. To bardzo krytyczna usługa, nie tylko z punktu widzenia bezpieczeństwa ale też i prywatności. Zakładając, że chcemy korzystać z pewnych określonych serwerów DNS lub też mamy skonfigurowaną usługę dnscrypt-proxy, trzeba zadbać o to, by adresy w pliku /etc/resolv.conf nie zostały z jakiegoś powodu przepisane. Użytkownicy zwykle nadają temu plikowi atrybut odporności ( chattr +i ) . Niemniej jednak, przy pobieraniu konfiguracji sieciowej za sprawą protokołu DHCP, w logu można zaobserwować komunikat: mv: cannot move '/etc/resolv.conf.dhclient-new' to '/etc/resolv.conf': Operation not permitted . Niby w niczym on nie przeszkadza ale możemy tak skonfigurować demona dhclient , by tę wiadomość wyeliminować.

Czytaj cały wpis

Blokowanie zapytań DNS z dnscrypt-proxy na linux'ie

Narzędzie dnscrypt-proxy począwszy od wersji 1.7.0 ma domyślnie włączoną obsługę wtyczek. W standardzie nie ma ich dużo, bo jedynie trzy ale mogą one się okazać dla pewnych osób bardzo użyteczne. Dzięki tym plugin'om możemy, np. zablokować rozwiązywanie nazw w protokole IPv6 na wypadek, gdyby ten protokół nie był wspierany w naszej sieci domowej czy też u naszego ISP. Możemy także zdefiniować sobie adresy/domeny, które powinny zostać zablokowane i w efekcie użytkownicy nie będą w stanie odwiedzić tych miejsc w internecie. Jest także wtyczka, która może nam pomóc zalogować zapytania DNS. Jak widać, całkiem przyzwoite są te dodatki. W tym wpisie przyjrzymy się nieco bliżej konfiguracji poszczególnych wtyczek dla dnscrypt-proxy .

Czytaj cały wpis

Konfiguracja DDNS dla OpenDNS

Ludzkość w dalszym ciągu siedzi na przestarzałym już od prawie 20 lat protokole IPv4. Nie widać, też by w najbliższym czasie coś miało się w tej kwestii zmienić. Można, co prawda, wykupić sobie stały adres IP ale to kosztuje, no i płacimy za coś co powinniśmy mieć w standardzie, gdyby ludzie w końcu zaczęli korzystać z IPv6. Niemniej jednak, by te wszystkie nasze maszyny podłączyć jakoś do sieci, potrzebne nam są prywatne adresy IP + NAT lub też dynamicznie zmieniające się adresy publiczne. Bywają też przypadki, że mamy przydzielane dynamicznie adresy z puli prywatnej, np. w wyniku dbania o prywatność w sieciach WiFi przez generowanie sobie przy każdym połączeniu losowego adresu MAC. Zwykle w takiej sytuacji zmienia nam się adres zewnętrzny (publiczny), który wskazuje na jeden z adresów naszego ISP. Taki zmieniający się adres powoduje problemy przy konfiguracji poszczególnych usług sieciowych, np. gdy w grę wchodzi konfiguracja filtra DNS, który jest zapewniany przez OpenDNS. By tego typu niedogodności rozwiązać, możemy posłużyć się DDNS (dynamic DNS). Za każdym razem, gdy adres IP ulega zmianie, klient DDNS informuje o tym fakcie skonfigurowane usługi. W tym artykule przyjrzymy się nieco bliżej temu mechanizmowi.

Czytaj cały wpis

DHCP i DNS, czyli konfiguracja sieci w OpenWRT

Rutery WiFi są w stanie zorganizować przewodową i/lub bezprzewodową sieć w naszych domach. By taka sieć działała bez zarzutu, potrzebna jest odpowiednia adresacja wszystkich komputerów wewnątrz niej. W obecnych czasach już praktycznie nie stosuje się statycznej konfiguracji, bo to zadanie zostało zrzucone na barki serwera DHCP. W OpenWRT do tego celu oddelegowane jest oprogramowanie dnsmasq. Zapewnia ono nie tylko wspomniany wyżej serwer DHCP ale także serwer cache'ujący zapytania DNS. Ten drugi z kolei jest niezastąpiony w przypadku przekazywania zapytań o nazwy domen do upstream'owego serwera DNS, który zajmuje się rozwiązywaniem tych nazw na odpowiadające im adresy IP. Bez dnsmasq ogarnięcie naszej sieci przerodziłoby się w istne piekło. Dlatego też w tym artykule przybliżymy sobie nieco konfigurację tego narzędzia.

Czytaj cały wpis

Przeciek DNS (DNS leak) w VPN (resolvconf)

Przeciek DNS (dns leak) to nic innego jak wyciek poufnej informacji, za sprawą nieprawidłowej konfiguracji resolver'a DNS. Może niekoniecznie jest winne tutaj samo oprogramowanie, które realizuje zapytania DNS, czy też serwer domen jakiejś organizacji. Chodzi głównie o tematykę VPN, gdzie cały ruch sieciowy powinien być wrzucany do tunelu SSL/TLS i szyfrowany. W pewnych sytuacjach, zapytania DNS mogą zostać wysyłane pod zewnętrzny resolver, często w formie niezaszyfrowanej i do tego poza połączeniem VPN. Ten ruch można podsłuchać, przechwycić i poddać analizie. Celem tego artykułu jest tak skonfigurowanie linux'a (w tym przypadku dystrybucja Debian), by te przecieki wyeliminować. Jest to możliwe za sprawą narzędzia resolvconf.

Czytaj cały wpis

Konfiguracja dnscrypt-proxy w OpenWRT

Realizowanie zapytań DNS jest kluczowe do poprawnego działania min. stron internetowych. Router z OpenWRT na pokładzie bez problemu potrafi rozwiązywać domeny na adresy IP. Jest to realizowane przez oprogramowanie dnsmasq . Problem w tym, że zwykle resolver, który będzie uwzględniany w konfiguracji routera, wskazuje na serwery DNS naszego ISP, czy też jakiejś większej korporacji. W ten sposób, wszystkie dane z przeglądania stron internetowych podajemy tym organizacjom za free. Przy pomocy narzędzia dnscrypt-proxy jesteśmy w stanie zabezpieczyć naszą sieć przed tego typu zabiegami zbierania danych. Po części też możemy uchronić się przed cenzurą, którą może nam zafundować lokalny provider internetowy. W tym artykule zaimplementujemy obsługę szyfrowanego resolver'a DNS na naszym domowym routerze.

Czytaj cały wpis

Konfiguracja cache DNS w Firefox'ie

We wpisie poświęconym systemowemu cache DNS w linux'ie mieliśmy okazję zobaczyć jak wzrasta wydajność po zaimplementowaniu tego mechanizmu. W skrócie, to ponad drugie tyle zapytań było rozwiązywanych lokalnie bez potrzeby odwoływania się do zdalnego serwera DNS, co zajmuje sporo czasu (20-40ms). Przeglądarki internetowe, np. Firefox, mają swoje wynalazki, które potrafią wyeliminować opóźnienia związane z surfowaniem po stronach www. Do nich zalicza się również cache DNS, z tym, że w tym przypadku zaimplementowany jest on na poziomie przeglądarki, a nie globalnie w systemie. Dzięki temu rozwiązaniu, nawet bez dnsmasq , Firefox jest nam w stanie zaoszczędzić sporo czasu przy przeglądaniu internetu. Zajrzyjmy zatem Firefox'owi pod maskę i sprawdźmy, które parametry dotyczące cache DNS wymagają

Czytaj cały wpis

Cache DNS, czyli włączenie buforowania zapytań

Większość z nas wie, że standardowe instalacje systemu linux nie buforują żadnych zapytań do serwerów DNS. Dzieje się tak dlatego, że te systemy domyślnie nie mają zainstalowanego żadnego oprogramowania, które by im to umożliwiało. Niesie to ze sobą zwiększenie opóźnień transakcji krótkoterminowych, np. tych w protokole http czy https. Za każdym razem gdy odwiedzamy jakiś serwis www, musimy wykonać szereg zapytań DNS, by rozwiązać nazwy domen na adresy IP. W przypadku gdybyśmy mieli cache DNS, to te nazwy nie musiałyby być za każdym każdym razem rozwiązywane na nowo, przynajmniej nie przez odpytywanie zdalnego serwera DNS, do którego RTT wynosi jakieś 20-40ms. Przydałoby się zatem nieco poprawić wydajność stron www i w tym wpisie postaramy się zaimplementować prosty cache DNS z wykorzystaniem narzędzia dnsmasq.

Czytaj cały wpis

DNScrypt-proxy, czyli szyfrowanie zapytań DNS

Do protokołów SSL/TLS w serwisach www chyba wszyscy już przywykli. Obecnie praktycznie na każdej stronie, gdzie jest okienko logowania, mamy do czynienia z szyfrowaniem danych przesyłanych w różnego rodzaju formularzach. Co prawda, klucze nie są zbyt długie (512-2048 bitów) ale zawsze to lepsze niż nic. O ile dane służące do logowania czy też wszelkie operacje dokonywane w panelach administracyjnych da radę ukryć bez większego problemu, o tyle zapytania DNS są przesyłane otwartym tekstem i każdy może je sobie podejrzeć. Pytanie tylko, po co szyfrować ruch DNS? Czy są tam przesyłane jakieś ważne informacje? Jeśli przyjrzymy się jak działa system DNS, możemy dojść do wniosku, że szyfrowanie zapytań jest pozbawione sensu, bo z reguły nazwa domeny oznacza konkretny adres IP. Znając adres IP, możemy ustalić kto na jakie strony wchodzi. Nie do końca jest to prawdą, poza tym istnieją jeszcze inne czynniki, które sprawiają, że ukrycie zapytań DNS ma jak najbardziej sens. W tym wpisie zaimplementujemy sobie na naszych linux'ach szyfrowanie zapytań DNS przy wykorzystaniu narzędzia dnscrypt-proxy.

Czytaj cały wpis