Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book

Zabezpieczamy domową sieć przed stronami wyłudzającymi od nas dane (konfiguracja Pi-Hole)

12 maja 2021, 17:14 | Teksty | komentarzy 57
Tekst oryginalnie ukazał się w piśmie Programista Junior. Publikujemy go na sekuraku za zgodą autora

Jest wieczór. Za oknem prószy śnieg. Kładziesz się właśnie, aby odpocząć, gdy nagle twój telefon krótko wibruje – dostałeś/aś wiadomość. Obojętnym wzrokiem zerkasz na ekran i widzisz treść SMSa: „Wysyłka pod wskazany adres jest droższa. Prosimy dopłacić 1 PLN, brak dopłaty oznacza anulowanie zamówienia. http://…”. Podnosisz się gwałtownie, do twojej głowy wpada myśl: „o nie… mój nowy Xbox nie dojdzie na czas!”. W tym samym czasie po drugiej stronie globu przestępca zaciera ręce. Czeka, aż ktoś kliknie w zastawioną przez niego pułapkę i tym samym umożliwi mu uzyskanie loginów i haseł do systemów bankowych.

W internecie grasują prawdziwi przestępcy!

Powyższa historia, co prawda zmyślona, mogła się wydarzyć naprawdę. Żyjemy w czasach globalnej wioski i wszystkie elementy naszego życia przenoszą się do sieci. Wiedzą o tym także przestępcy, którzy już dawno zaczęli wykorzystywać Internet do tego, aby wzbogacić się czyimś kosztem.

W ostatnim czasie bardzo popularne są ataki internetowych oszustów na internautów. Za pomocą masowej korespondencji e-mail lub SMS przestępcy rozsyłają komunikaty, które mają na celu zachęcić do wejścia na fałszywą stronę internetową i podania wrażliwych informacji (na przykład. loginów czy haseł). Ta technika wyłudzania danych nazywa się phishing i była szeroko omawiana w poprzednim numerze PJR. 

W tym artykule zajmiemy się budowaniem narzędzia, które ochroni naszą sieć domową przed tego typu atakami i jednocześnie pozwoli nam dokładnie zrozumieć, jak działa DNS.

Co to jest adres IP?

Szacuje się, że sieć Internet składa się z około 50 miliardów urządzeń (nie tylko komputerów i telefonów, ale także kamer, oczyszczaczy powietrza czy inteligentnych żarówek), które są ze sobą połączone i potrafią się komunikować. Część z nich ma tak zwany publiczny adres IP. Jest to adres, pod którym można to urządzenie znaleźć w sieci. 

Aby dokładniej to zrozumieć, wyobraź sobie, że wchodzisz na stronę internetową, na której umieszczone jest śmieszne zdjęcie z kotem. Żeby wyświetlić zdjęcie na twoim komputerze, serwer, na którym ono się znajduje, musi je do ciebie wysłać. Wyobraźmy więc sobie, że połączenie sieciowe pomiędzy serwerem a twoim komputerem to koperta, w której znajduje się obrazek naszego kotka. Na kopercie trzeba wpisać twój adres domowy, aby przesyłka mogła dotrzeć. Tak samo jest w Internecie – każde urządzenie ma swój adres. Przykładowy adres IP wygląda tak:

216.58.215.78

Składa się on z 4 części nazywanych oktetami. Oddzielone są one od siebie kropką. Każdy z oktetów może przyjmować wartości liczbowe od 0 do 255. Wadą (dla człowieka) tej notacji jest to, że bardzo trudno zapamiętać taki adres. Na przykład ten powyższy to adres wyszukiwarki Google. Wyobraź sobie, że za każdym razem musiałbyś wpisywać ten ciąg cyfr zamiast www.google.com. Niewygodne, prawda? Dlatego też wymyślono DNS.

Co to jest DNS?

DNS (Domain Name System) to rozproszony system informatyczny, który ma na celu zamianę domen internetowych (łatwych do zapamiętania dla ludzi) na odpowiadające im adresy IP (zrozumiałe dla komputerów). Gdy wpisujesz w przeglądarkę internetową adres https://www.google.com/, twój komputer wysyła zapytanie do serwera DNS o to, jaki adres IP kryje się pod tą nazwą. Dzięki temu może odpowiednio zaadresować pakiety sieciowe, które będzie tam wysyłał.

Każdy komputer (ale także tablet, telefon, telewizor czy inne podłączone do sieci urządzenie) ma w swojej konfiguracji informację o adresie serwera DNS, z którego ma korzystać, do tłumaczenia domen na adresy IP. Adres ten najczęściej jest wskazywany w sposób automatyczny przez router, do którego jesteśmy podłączeni, i jest to serwer DNS zarządzany przez naszego dostawcę Internetu.

Warto wiedziećCzy wiesz, że możesz samodzielnie sprawdzić, jakie adresy IP mają twoje ulubione strony? Wystarczy uruchomić wiersz poleceń (lub terminal w przypadku systemów macOS i Linux), a następnie wpisać komendę “nslookup” wraz z adresem strony, której adres chcemy poznać:

lukasz@mac ~ % nslookup www.programistajr.pl
Server: 192.168.68.117
Address: 192.168.68.117#53
Non-authoritative answer:
www.programistajr.pl canonical name = programistajr.pl.
Name: programistajr.pl
Address: 91.185.185.169

Domena www.programistajr.pl wskazuje na adres IP 91.185.185.169.

Każdy komputer (ale także tablet, telefon, telewizor, czy inne podłączone do sieci urządzenie) ma w swojej konfiguracji informację o adresie serwera DNS, z którego ma korzystać do tłumaczenia domen na adresy IP. Adres ten najczęściej jest wskazywany w sposób automatyczny przez router, do którego jesteśmy podłączeni i jest to serwer DNS zarządzany przez naszego dostawcę internetu.

Nic nie stoi na przeszkodzie, abyś postawił/a serwer DNS samodzielnie w sieci domowej i, za jego pomocą, przekierował/a złośliwe domeny na nieistniejące adresy IP. Dzięki temu, nawet jeżeli ktoś z domowników kliknie w złośliwy link, to jego urządzenie nie będzie w stanie wejść na stronę przestępców.

Stawiamy własny serwer DNS!

Serwer DNS możemy zainstalować w zasadzie na dowolnym komputerze. Może to być stary „pecet”, którego już nie używamy, może to być mniejsze urządzenie, takie jak na przykład komputer Raspberry Pi, ale równie dobrze może to być nasza stacja robocza. Warto jednak pamiętać, że decydując się na postawienie takiego serwera w naszej sieci domowej, musimy zapewnić, że w każdej chwili będzie on dostępny dla innych urządzeń (czyli krótko mówiąc, będzie on cały czas włączony). W innym przypadku urządzenia, które  znajdują się w naszej sieci, nie będą w stanie tłumaczyć nazw domenowych na adresy IP, a tym samym przestanie nam działać Internet. Aby się przed tym zabezpieczyć, można wskazać drugi adres (zapasowy), publicznego serwera DNS dostępnego w Internecie. Przykłady takich adresów znajdziesz w ramce “Warto wiedzieć” z poprzedniej sekcji. 

Na potrzeby tego projektu wybrałem leżący u mnie w szufladzie komputer Raspberry Pi z systemem operacyjnym Linux Raspberry Pi OS. Jest to małe urządzenie, które zajmuje mniej miejsca niż router Wi-Fi i jednocześnie ma bardzo niski pobór prądu. Więcej na temat tych komputerów, jak również dostępnych dla nich systemów operacyjnych przeczytasz na stronie ich producenta: https://www.raspberrypi.org.

Pierwszym krokiem, który musimy wykonać jest instalacja systemu operacyjnego, który będzie zarządzał naszym nowym serwerem. Ja wybrałem Raspberry Pi OS (dawniej nazywany Raspbian). Jest to dystrybucja Linuksa, która jest rekomendowana przez producenta jako najbardziej zgodna z architekturą urządzenia Raspberry. Co najważniejsze, system Raspberry Pi OS jest oparty na Debianie, co powoduje, że mamy dostęp do szerokiej liczby pakietów. Jeżeli zdecydujemy się kiedyś na rozszerzenie możliwości naszego serwera, będzie to stosunkowo łatwe.

Rolę dysku twardego w komputerach Raspberry Pi pełni zazwyczaj karta pamięci typu SD. Najprostszym sposobem na instalację na niej systemu operacyjnego jest pobranie na swój komputer aplikacji Raspberry Pi Imager ze strony https://www.raspberrypi.org/software/ (należy wybrać odpowiednią wersję, w zależności od wykorzystywanego przez nas systemu operacyjnego). Następnie należy umieścić kartę SD w czytniku naszego komputera. Po uruchomieniu aplikacji zobaczymy stosunkowo prosty interfejs:

Ilustracja 1. Raspberry Pi Imager – narzędzie do tworzenia karty pamięci z systemem operacyjnym

Musimy wybrać system operacyjny (“Choose OS”) oraz wskazać kartę pamięci (“Choose SD Card”). Następnie należy kliknąć przycisk „Write”, aby pobrać i zapisać obrazu systemu operacyjnego na naszej karcie. Gdy zobaczymy komunikat o zakończeniu procesu, mamy już gotową, bootowalną kartę z systemem operacyjnym Raspberry Pi OS. Moglibyśmy w zasadzie umieścić ją już w Raspberry Pi, lecz warto wcześniej wykonać dodatkową czynność.

Standardowo zainstalowany przez nas system operacyjny nie ma aktywnego serwera SSH. Oznacza to, że nie będziemy mieli możliwości zdalnego logowania się na niego z naszego komputera, w celu przeprowadzenia odpowiedniej konfiguracji. Aby to zmienić, należy utworzyć na karcie pamięci, w jej głównym katalogu pusty plik (bez rozszerzenia) o nazwie SSH. To wszystko. Teraz możesz wysunąć bezpiecznie kartę ze swojego komputera  i umieścić ją w Raspberry Pi. Następnie uruchom Raspberry, podłączając je do prądu oraz internetu za pomocą kabla sieciowego.

Po wykonaniu tych czynności, w naszej sieci lokalnej powinien już działać Raspberry Pi z zainstalowanym systemem operacyjnym Linux, który docelowo zostanie serwerem DNS. Pozostaje tylko pytanie, w jaki sposób się do niego zalogować, skoro nie znamy adresu IP? Prawdopodobnie serwer DHCP przydzielił naszemu Raspberry Pi w sposób dynamiczny losową wartość. 

Istnieje kilka sposobów zlokalizowania naszego nowego urządzenia w sieci. Możemy np. zalogować się na router i zobaczyć listę podłączonych urządzeń. Możemy wykorzystać narzędzie nmap, które jest niesamowicie rozbudowanym skanerem sieci (potrafi wyszukiwać w sieci urządzenia oraz otwarte na nich porty sieciowe). Możemy również skorzystać z tego, że Raspberry Pi standardowo powinien być dostępny pod nazwą (domeną) raspberrypi.local. Wynika to z wykorzystania przez niego tzw. multicast DNS.

Warto wiedziećCzy wiesz, że adres IP możesz uzyskać także za pomocą narzędzia ping, które dostępne jest w większości systemów operacyjnych? Uruchom wiersz poleceń i wpisz polecenie:
Ilustracja 2. Wynik polecenia ping wskazujący nam adres IP serwera Dzięki tej prostej komendzie udało nam się dowiedzieć, że nasz nowy serwer otrzymał adres 192.168.68.117 w naszej sieci lokalnej.

Instalacja i konfiguracja Pi-hole

Skoro mamy już urządzenie z zainstalowanym systemem Linux, możemy zabrać się za instalację oprogramowania Pi-hole. Jest to aplikacja, która zmienia nasz komputer w pełnoprawny serwer DNS i umożliwia zarządzanie nim przy użyciu wygodnego panelu WWW. Dodatkowym atutem tej aplikacji jest możliwość pobierania z Internetu list domen do blokowania, co zwiększy nasze bezpieczeństwo w sieci. Więcej na temat tego rozwiązania można przeczytać na stronie https://pi-hole.net

Pierwszym krokiem będzie zalogowanie się na Raspberry Pi za pomocą protokołu SSH (secure shell). Jest to szyfrowany protokół komunikacyjny często wykorzystywany przez administratorów do zarządzania serwerami. Aby z niego skorzystać, będziemy potrzebowali klienta SSH na komputerze. W przypadku macOS oraz Linux jest to standardowa komenda w terminalu. W systemie Microsoftu jest ona dostępna dopiero od Windows 10. W przypadku starszych systemów operacyjnych Windows, można wykorzystać popularny program PuTTY.

Składnia tego polecenia nie jest skomplikowana. Jako argumenty podajemy nazwę użytkownika, kolejno znak „@„, a następnie adres IP serwera. W moim przypadku składnia wygląda jak na ilustracji 3. Standardowym użytkownikiem jest “pi”, a hasłem „raspberry” (uwaga: wielkość liter ma znaczenie!).

Ilustracja 3. Logowanie do serwera z użyciem SSH

Kolejnym krokiem jest aktualizacja systemu operacyjnego i zainstalowanych na nim pakietów (oprogramowania). Wykonujemy to za pomocą komend:

apt update

apt upgrade

W zależności od aktualności obrazu naszego systemu, ta operacja może potrwać od kilku do kilkunastu minut. Należy uzbroić się w cierpliwość.

Po zakończonej aktualizacji możemy przystąpić do instalacji oprogramowania Pi-hole. Nie będzie to skomplikowane, ponieważ jego twórcy przygotowali dla nas skrypty, które przeprowadzą nas krok po kroku przez ten proces. Wpisujemy komendę, której wynikiem będzie pobranie ze strony producenta skryptu instalacyjnego  i jego uruchomienie:

curl -sSL https://install.pi-hole.net | sudo bash

Ilustracja 4. Instalator Pi-hole

Podczas instalacji skrypt będzie zadawał nam pytania i informował o postępie prac. Dwa pierwsze ekrany, które zobaczymy mają charakter informacyjny. Na pierwszym z nich zostaniemy poinformowani o tym, co zrobi instalator.

Ilustracja 5. Ekran powitalny instalatora

Drugi ekran zachęci nas do wsparcia finansowego jego twórców.

Ilustracja 6. Informacja o możliwości przekazania dotacji autorowi projektu Pi-hole

Na kolejnym ekranie zobaczymy informację o tym, że nasz serwer musi mieć przypisany stały adres IP (a nie jak dotychczas zmienny, przypisywany przez DHCP) – musimy wiedzieć, jaki adres IP wpisywać w późniejszej konfiguracji urządzeń, które z tego serwera DNS będą korzystać. Klikamy przycisk OK.

Ilustracja 7. Informacja o konieczności przypisania stałego adresu IP

Kolejny krok wymaga podjęcia od nas bardzo ważnej decyzji. Otóż skąd nasz serwer ma mieć całą wiedzę o domenach i przypisanych im adresach IP? DNS to sieć hierarchiczna. Dlatego też jej członkowie wymieniają pomiędzy sobą informacje o domenach. Są w tej sieci serwery wyższego rzędu (ważniejsze), od których te niższego rzędu pobierają informacje. Taki właśnie serwer musimy teraz wybrać. Ja na potrzeby tego projektu wybrałem serwery OpenDNS, które są szybkie i nie zbierają danych o użytkownikach. Godną uwagi opcją jest także Quad9 – to serwery amerykańskie, które dodatkowo szczycą się tym, że bronią nas przed stronami ze złośliwym oprogramowaniem. Nie jest to dla nas aż tak istotne, ponieważ, w ramach tego projektu, zbudujemy samodzielnie taką usługę, ale będzie ona koncentrowała się w szczególności na zagrożeniach dla użytkowników z naszego kraju.

Ilustracja 8. Wybór nadrzędnego serwera DNS

W kolejnym kroku Pi-hole zaproponuje nam wstępne listy do blokowania reklam oraz złośliwych stron . Warto skorzystać i za pomocą spacji zaznaczyć pola wyboru przy obu pozycjach.

Ilustracja 9. Wybór wstępnych list do blokowania

Na następnym ekranie zaznaczamy, że interesuje nas usługa DNS zarówno dla IPv4, jak i IPv6. 

Skrypt instalacyjny sam sugeruje nam, z jakiego adresu IP możemy korzystać na stałe. Zgadzamy się, klikając “Yes”.

Ilustracja 11. Wybór adresu IP dla naszego serwera

Na kolejnym ekranie zobaczymy ostrzeżenie, że istnieje możliwość przydzielenia tego adresu przez router innemu urządzeniu. Klikamy przycisk OK i przechodzimy dalej.

Ilustracja 12. Ostrzeżenie o możliwym konflikcie adresów IP

Musimy zdecydować, czy chcemy mieć możliwość zarządzania naszą usługą za pomocą wygodnego panelu WWW. Oczywiście, zgadzamy się na takie rozwiązanie i przechodzimy dalej.

Ilustracja 13. Podjęcie decyzji o instalacji panelu administratora

Ponieważ zdecydowaliśmy się na panel web, w kolejnym kroku musimy odpowiedzieć na pytanie, czy chcemy, aby na naszym serwerze został zainstalowany serwer lighttpd. Oczywiście zgadzamy się. Osoby bardziej zaawansowane mogą pokusić się o instalację własnego serwera WWW takiego jak np. Apache, czy nginx.

Ilustracja 14. Podjęcie decyzji o instalacji serwera lighttpd

Kolejny ekran, to pytanie, czy nasz serwer DNS ma zapisywać w logach zapytania urządzeń, które są z nim połączone. W celach edukacyjnych zaznaczamy opcję “On”. Natomiast warto mieć na uwadze, że ingeruje to w prywatność osób, które z naszego serwera będą korzystały. Z logów będzie można ustalić, jakie urządzenie łączyło się z danymi stronami WWW. Jeżeli pozostawiasz tę opcję włączoną, poinformuj o tym swoich domowników.

Ilustracja 15. Podjęcie decyzji o włączeniu logowania

Kolejny krok służy do określenia, jak szczegółowe informacje mają się znaleźć w naszych logach. Traktując ten projekt jako edukacyjny, wybrałem opcję “Show everything”.

Ilustracja 16. Wybór poziomu logowania

Po serii pytań, szczęśliwie docieramy do ekranu podsumowującego i kończącego instalację. Znajdziemy tu adres panelu WWW, z którego możemy skorzystać do zalogowania się na nasz Pi-hole, jak również hasło (które warto sobie skopiować na bok).

Ilustracja 17. Ekran z podsumowaniem

Logujemy się do Pi-hole

Przyszedł czas, aby zalogować się do naszego nowego serwera DNS i skonfigurować go pod nasze potrzeby. W tym celu otwieramy przeglądarkę internetową i w pasku wpisujemy adres podany na ekranie z podsumowania instalacji. W moim przypadku będzie to http://192.168.68.117/admin. Na głównym ekranie zobaczymy podstawowe statystyki ruchu (które w chwili obecnej są puste, ale nie ma się co martwić). Klikamy przycisk „login” w menu po lewej stronie i podajemy hasło. Na Ilustracji 6 pokazana jest moja instalacja Pi-hole po kilku dniach używania. Jak widać, istotny odsetek ruchu jest blokowany. Nie są to tylko strony wyłudzające dane, ale również różne hosty odpowiedzialne za szpiegowanie, analitykę ruchu czy męczące reklamy.

 Ilustracja 18. Panel administratora po zalogowaniu 

Lista ostrzeżeń przed niebezpiecznymi stronami od CERT Polska

CERT Polska (Computer Emergency Response Team) to zespół odpowiedzialny za rejestrowanie i obsługę zdarzeń, które naruszają bezpieczeństwo sieci. Działa on w strukturach Naukowej i Akademickiej Sieci Komputerowej (NASK) i zajmuje się aktywnym reagowaniem w przypadku wystąpienia bezpośrednich zagrożeń dla użytkowników Internetu. Wspólnie z operatorami telekomunikacyjnymi CERT prowadzi walkę ze stronami wyłudzającymi dane osobowe czy też dane do logowania. CERT zajmuje się monitoringiem i identyfikacją złośliwych stron , a także udostępnia formularz (dostępny na stronie internetowej https://incydent.cert.pl/phishing), który pozwala każdemu internaucie na zgłaszanie zagrożenia. 

Lista domen identyfikowanych jako złośliwe jest publicznie dostępna i aktualizowana co 5 minut. Wykorzystamy ją, aby nasz serwer DNS pobierał, a następnie blokował podejrzane adresy, broniąc nas tym samym przed zagrożeniami. Lista dostępna jest w różnych formatach (między innymi. zwykły tekst, JSON, XML). My wykorzystamy format „hosts”, który będzie zrozumiały dla serwera DNS.

Rozwijamy menu „Group Management”, które znajduje się po lewej stronie naszego panelu Pi-hole, a następnie wybieramy opcję „Adlists”. W polu „Address” wpisujemy: http://hole.cert.pl/domains/domains_hosts.txt i klikamy przycisk „Add”.

Ilustracja 19. Dodawanie listy złośliwych domen

Aby lista została pobrana i przetworzona przez nasz serwer, należy wejść w menu „Tools”, a następnie „Update Gravity” i kliknąć przycisk „Update”. To jednorazowa czynność, dzięki której  wszystkie niezbędne listy zostaną pobrane i uwzględnione w konfiguracji blokowania domen. Standardowo lista ta będzie aktualizowana przez nasz serwer automatycznie raz w tygodniu. Jeżeli jesteśmy użytkownikiem zaawansowanym i chcemy zmienić ten interwał, należy zalogować się z użyciem SSH na nasz serwer, a następnie zmodyfikować ustawienia CRON w katalogu /etc/cron.d. Ja na swoje potrzeby ustawiłem aktualizację raz na 24 godziny.

Ilustracja 20. Pobranie list złośliwych domen

Nasz serwer działa i jest gotowy do obsługi naszych zapytań o domeny.

Konfiguracja komputera i sieci

Pozostało nam jedynie zmusić nasz komputer (lub wszystkie komputery w sieci domowej) do wykorzystywania nowego serwera DNS. Aby zrobić to na swoim komputerze należy zmienić ustawienia połączenia sieciowego i podać adres IP naszego serwera. Czynność ta wykonywana jest inaczej w zależności od systemu operacyjnego. 

W przypadku systemów Windows 10 można to zrobić poprzez Panel Sterowania -> Sieć i Internet -> Połączenia sieciowe. Należy kliknąć prawym przyciskiem myszy połączenie sieciowe, z którego korzystamy (może się nazywać np. Wi-Fi), wybrać opcję “Właściwości”, zaznaczyć pozycję “Protokół internetowy w wersji 4 (TCP/IPv4)” i kliknąć “Właściwości”. Zaznaczamy opcję “Użyj następujących adresów serwerów DNS”, a następnie wpisujemy adres naszego serwera. Operację zatwierdzamy, klikając przycisk “OK”. Więcej o zmianie ustawień protokołu TCP/IP można przeczytać na stronie Microsoftu https://support.microsoft.com/pl-pl/windows/zmienianie-ustawień-protokołu-tcp-ip-bd0a07af-15f5-cd6a-363f-ca2b6f391ace 

Ilustracja 21. Konfiguracja DNS w systemie Windows 10

W przypadku komputera z systemem macOS klikamy “Preferencje systemowe” -> “Sieć”. Wybieramy nasze połączenie sieciowe z menu po lewej stronie (np. Wi-Fi), klikamy przycisk “Zaawansowane” i w zakładce DNS podajemy adres naszego serwera. Więcej na temat ustawień sieci można znaleźć na stronach firmy Apple: https://support.apple.com/pl-pl/guide/mac-help/mchlp2718/mac 

Ilustracja 22. Konfiguracja DNS w systemie macOS Big Sur

To wszystko. Nasz komputer powinien już korzystać z postawionego przez nas serwera DNS i blokować złośliwe strony. Poprawne działanie naszej konfiguracji możemy sprawdzić poprzez zalogowanie się do panelu administracyjnego. Powinniśmy tam zobaczyć listę domen, z którymi łączy się nasz komputer.

Jeżeli chcemy, aby wszystkie nasze domowe urządzenia korzystały z nowego serwera Pi-hole, musimy zmienić ustawienia routera, podając w ustawieniach DNS adres IP Raspberry Pi. Dzięki takiej konfiguracji nasz router za pomocą protokołu DHCP (Dynamic Host Configuration Protocol) będzie przyznawał urządzeniom w sieci lokalnej ich adresy IP wraz ze wskazaniem adresu IP naszego serwera DNS. Jak to skonfigurować? Nie ma tu niestety uniwersalnej instrukcji i w zależności od wykorzystywanego modelu musisz samodzielnie poszukać dokumentacji do swojego urządzenia. 

Ilustracja 23. Przykładowa konfiguracja routera

O autorze: Łukasz Basa
E-mail: kontakt@bezpieczny.blog
https://bezpieczny.blog

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Marek

    Cały czas nie mogę się przekonać do Pi-Hole. Na desktopie mam uBlocka, na telefonach Blokadę. W obydwu wciągniętą listę od CERTu. Taka konfiguracja ma ten plus, że działa poza siecią domową. Niby można postawić Pi-Hole w chmurze, ale to już większa zabawa się robi, VPN trzeba postawić, nie chce mi się. :P

    Odpowiedz
    • Baltazar

      Postaw obok pihole wireguard VPN i puszczaj ruch prze niego ze smartfona i komputera.
      Używam takiego zestawu od lat (wcześniej openvpn)

      Odpowiedz
      • Darek

        Zawsze mnie zastanawia czemu WireGuard a nie np: ZeroTier ? ZT przy dobrej konfiguracji daje urządzeniom zdalnym dostęp do całej sieci, a przy tym nie wymaga stalego nasłuchiwania na określonym porcie .

        Oczywiście wiem, że te 2 rozwiązania mają trochę inne przeznaczenie.

        Odpowiedz
      • Marek

        No i to już trochę mnie przeraża ;) Jeszcze jakbym umiał w Ansible to są skrypty na githubie do postawienia takiego zestawu.

        Odpowiedz
    • abc

      Wszystkie listy z Pi-Hole/Adguard Home/PfSense możesz też dodać na poziomie przeglądarki do uMatrix – wtedy dochodzi dużo bardziej granualna kontrola niż w uBlocku.

      Odpowiedz
    • Maciej

      zawsze możesz skorzystać z dns od adguard

      Odpowiedz
  2. Marek

    Jak wciągnąć listę certu do blokady na android ?

    Odpowiedz
  3. abc

    Warto dodać instrukcję konfiguracji unbound albo cloudflared jak upstream DNS. Bez tego pihole funduje nam DNS czystym tekstem. W takim wypadku już lepszy będzie Adguard Home, który natywnie obsługuje DoH i DoT.

    Odpowiedz
    • Darek

      Zdecydowanie polecam PiHole z Unbound.

      Adguard…. Nie wiedzieć czemu… Po krótkotrwałej utracie neta potrzebował dłuższej chwili zanim zaczął jarzyc że Internet wrócił.

      Z PiHole nie miałem takich problemów nigdy

      Odpowiedz
    • Patryk
      Odpowiedz
      • Marcin

        Orientujesz się czy da się to skonfigurować jak Pi-hole stoi jako docker container?

        Odpowiedz
        • Marcin

          Ja postawiłem Pi Hole na OMV w dokerze to jest wpis do composera:

          version: „3”

          services:
          pihole:
          container_name: pihole
          image: pihole/pihole:latest
          mac_address: „00:00:00:00:00:00” # Wpisz właściwy adres MAC
          networks:
          pi_network:
          ipv4_address: 192.168.1.88 # Adres serwera DNS
          environment:
          TZ: 'Europe/Warsaw’
          WEBPASSWORD: '123456′
          volumes:
          – ’./etc-pihole:/etc/pihole’
          – ’./etc-dnsmasq.d:/etc/dnsmasq.d’
          restart: unless-stopped

          networks:
          pi_network:
          driver: macvlan
          driver_opts:
          parent: xxxxxxx # Użyj poprawnej nazwy interfejsu LAN
          ipam:
          config:
          – subnet: 192.168.1.0/24
          gateway: 192.168.1.1
          ip_range: 192.168.1.88/32

          Odpowiedz
  4. gabrychu

    A skąd wziąć dobre listy blokad do pi-hole?
    Sama lista CERTu to chyba za mało.

    Odpowiedz
  5. htrshfrjt
    Odpowiedz
  6. dcdfg

    Artykuł fajny, chętnie skorzystam, ale brakuje mi najistotniejszej informacji – jaki najtańszy model Raspberry zakupić, by sobie wszystko tak skonfigorwać?

    Odpowiedz
    • Mario

      @dcdfg Pi Zero z obudową i zasilaczem to 99 zetów w Botlandzie.

      Odpowiedz
      • Luigi

        Pi Zero się do tego nie nadaje bo nie ma karty sieciowej. Być może chciałeś napisać Pi Zero W, ale podałeś nazwę innego urzadzenia.

        Odpowiedz
    • mulat
      Odpowiedz
    • SakuraThai

      Cześć!

      Wszystko zależy do czego chcesz Raspberry wykorzystać. Jeśli tylko Pi-Hole to wystarczą jakieś starsze modele natomiast jeśli będziesz chciał zrobić na przykład własny serwer chmurowy to polecam P4 choćby ze względu na dwa porty usb 3.0 i możliwość podpięcia dwóch takich dysków usb w macierz typu mirror.

      Ja używam dwóch malin na dwóch różnych „publikach”. Jedna to RP2 i tam mam tylko Pi-Hole i nie zauważyłem żadnych problemów. Na drugiej maszynce RP4 (ta z największą wartością pamięci) mam Pi-Hole, chmurę Nextcloud’a (dwa dyski usb 3.0 spięte w macierz), która u mnie działa bez zarzutu (wiadomo po zainstalowaniu wszystkiego trzeba jeszcze uporządkować błędy, które pokazują się po weryfikacji ale to do zrobienia).

      Jeśli chodzi o instalację i konfigurację Pi-Hole to polecam ten film (którego nie trzeba oglądać bo pod spodem są wszystkie kroki jak to zrobić .. zakładając, że Pi będzie po update instalacja Pi-Hole to max 15 minut a reszta to wklepywanie zestawów blokowanych domen do Gravity).

      https://www.youtube.com/watch?v=FnFtWsZ8IP0

      Jeśli chodzi o inne tutoriale opisane przystępnie i nie zawierające jakichś rażących błędów to polecam te ze strony (z tych wartych uwagi na pewno: Adding Two-Factor Authentication to SSH, Using Fail2Ban to Block Attackers, Setting up a Firewall on your Raspberry Pi, i ewentualnie https://pimylifeup.com/raspberry-pi-nextcloud-server/ jeśli masz przyzwoite łącze, własną domenę (bez hostingu, który jest pstryknięciem palca to groszowe sprawy), nie masz potrzeby trzymania wszystkiego w telefonie za to tworząc własną chmurkę jesteś ograniczony tylko przestrzenią dysków a aplikacje z google play i apple store dają możliwość korzystania z Nextclouda w telefonie .

      https://pimylifeup.com/

      Odpowiedz
    • SakuraThai

      Zapomniałem dopisać. Nie wiem czy nie warto poczekać na RP5 bo coraz więcej plotek na ten temat w sieci. Jeśli w nowej malinie znalazłby się port SATA, akceleracja sprzętowa nowszych kodeków wideo i może lepsze GPU to byłoby super.

      Odpowiedz
  7. Kmq

    Da radę to postawić równolegle obok Home Assistant na HA OS?

    Odpowiedz
    • Majster

      Jasne, najprościej jako addon (przez menu Supervisor): Adguard. Mam i polecam.

      Odpowiedz
  8. Adam

    A czy nie lepiej dodać filtry CERT Polska do pliku Hosts jeżeli tylko Ty będziesz ich używać?

    Odpowiedz
    • Marek

      Można, ale musisz sobie zrobić mechanizm updateów. Chyba nawet na którymś rSHP było pokazywane jak to zrobić.

      Odpowiedz
  9. Jan

    Szkoda, że nie ma krótkiej informacji o wadach całego tego rozwiązania i wynikających z tego ograniczeniach. Chociażby, że działa tylko wewnątrz sieci lokalnej. Ze względu, że działa na zasadzie filtrowania odpowiedzi DNS to powoduje nie poprawnie wyświetlanie części stron.

    Odpowiedz
    • Filip

      Uzywa kilka lat i nie zauwazam bledow w wyswietlaniu stron.

      Odpowiedz
  10. Albo… jeśli ktoś woli usługę DNS to polecam nextDNS, która zależnie od ustawień blokuje reklamy, phishing, kryptokoparki i wiele, wiele więcej. Oto mój poradnik jak ustawić nextDNS: https://soo.bearblog.dev/nextdns/

    Odpowiedz
  11. czesław

    Jakby co to można postawić ubuntu server na hyperv, zainstalować zgodnie z poradnikiem z tego artykułu i takie rozwiązanie również zadziała.

    Odpowiedz
  12. Igor

    Bardzo fajny i przydatny poradnik. Ale mam jednak mały problem.
    Najpierw testowo dodałem listę CERT do pliku hosts i wszystko zadziałało – przeglądarki pokazywały czerwony komunikat.
    Teraz podpiąłem IP od RPi do konfiguracji routera Ubiquity i mam mały problem, bo wchodząc z komputera podpiętego przez LAN mogę otworzyć adresy z listy. Wchodząc po połączenie przez WiFi czy z telefonu strony są zablokowane. Jak ustawię DNSy na komputerze na RPi to wtedy jest blokowane co trzeba, więc zapewne coś jest po stronie routera, chociaż automatyczne DNSy dobrze się ustawiają.

    Odpowiedz
    • czesław

      ipconfig /all

      co pokazuje?

      ipconfig /flushdns
      wyczyści cache w kompie.

      PS. warto usunąć plik hosts w komputerze i stworzyć go od nowa. To głupie, ale czasem pomaga

      Odpowiedz
      • igor

        Dzięki, ale już ogarnąłem :) Jak myślałem, problem był w konfiguracji routera USG, to jednak trochę bardziej złożony sprzęt niż TP-Link za kilkadziesiąt złotych.

        Dodałem sobie te ważne listy, parę wyjątków związanych z Google (nawet Google Fonts) i na ten moment blokuję od 20 do 30% ruchu w ciągu dnia.

        Odpowiedz
  13. Michał

    Zabrakło info o ekranie wyboru sieci eth0/wlan0 – ja no nie spojrzałem na to, włączyłem samo eth0 – no i na WiuFiu nie banglało, chyba, że to ja coś kokaszaniłem bo powinno działać…

    Odpowiedz
  14. Sbsb

    Czy jeśli mam aktualnie na rpi Wireguarda, to ten instalator postawi PiHole obok i WG tak bedzie działał, jak działa?

    Odpowiedz
    • Jan Rodo

      Bez problemu. Najprościej to poszukaj sobie na githubie wirehole.

      Odpowiedz
  15. Mat
    Odpowiedz
  16. Darek

    U mnie pojawił się problem gdy podałem w ustawieniach DNS routera adres IP Raspberry Pi. Po tym zabiegu pi-hole nie miało dostępu do internetu. Jak mam się z tym uporać?

    Odpowiedz
  17. Sylwiusz

    U mnie pojawił się problem gdy podałem w ustawieniach DNS routera adres IP Raspberry Pi. Po tym zabiegu pi-hole nie miało dostępu do internetu. Jak można się z tym uporać?

    Odpowiedz
    • Jan Rodo

      Ustaw sobie dhcp z pihole
      i oczywście forwarder na routerze

      Odpowiedz
  18. Patryk

    Witam wszystkich.

    Czy istnieje już jakaś dobra lista blokad by blokowało reklamy na YT na TV? Stawiałem pi-hole rok temu i zrezygnowałem bo nie ważne ile i jakie listy dawałem to nie blokowało reklam na yt na tv.

    Odpowiedz
    • Jan Rodo

      Na początek upewnij się, czy masz wbity tylko jeden DNS pihole po drodze z routera

      Filtry same w sobie zapewniają tylko częściową ochronę. Często nie nadarzają za zmianami google itd. Poszukaj na githubie producenta sprzętu plus youtube. Raz działa raz nie.

      Jedyną słuszną metoda to dodać regułę na firewall. Przekierowanie DNS z tv do pihole i spokój. Wtedy okiwasz 'za-hard-kodowane’ dns’y na sprzęcie.

      Odpowiedz
    • tobi

      na tv zainstaluj sobie you tube next i wtedy nie bedziesz mial reklam w ogole

      Odpowiedz
      • Marcin

        Działa Ci jeszcze ta metoda? Postawiłem PiHole na kompie, wszystkie urządzenia przełączyłem na IP statyczny pod DNS PiHole, ale na TV niestety reklamy nadal są w youtube. Moze ktoś zna metodę jak to cholerstwo blokować w YT na TV?

        Odpowiedz
  19. Tomasz

    Witam

    Proszę o podpowiedź czy jeśli chciałbym ustawić pihole jako podstawowy DNS z poziomu routera (TP-LINK C7) to adres pihole powinien być wpisany w ustawieniach WAN czy w konfiguracji serwera DHCP, w obu tych miejscach można wpisać DNS-y

    Odpowiedz
  20. Andrzej

    Pi-hole działa na dockerze. Mam na stałe odpalony na laptopie z Windowsem. Działa znakomicie w każdej sieci. Nie trzeba żadnych dodatkowych sprzętów.

    Odpowiedz
  21. Radek

    Hej wszystkim,
    czy jak skonfiguruje Pi-hole na adresie IP np. w pracy , a później wezmę raspberry do domu, to będzie działać ? chodzi o adres IP, mogę go zmienić już po instalacji czy tylko w trakcie ??

    Odpowiedz
  22. Igor

    Hej a co jeśli mam router z UPS i tam nie mam możliwości skonfigurowania DNS?

    Odpowiedz
    • Mariusz

      To puść AdGuard Home przez jego DHCP zamiast przez DHCP routera.

      Odpowiedz
  23. janek

    Cześć! Pytanko mam, chciałbym ustawić Pihole na serwerze w domu, ale często korzystam ze stron z cashbackiem (goodie itp.). Czy w związku z blokowaniem reklam na poziomie sieci stracę też możliwość korzystania z cashbacków? Tego typu strony zawsze każą wyłączyć AdBlocka.

    Z góry dziękuję za odpowiedź!

    Odpowiedz
  24. Adrian

    Fajny artykuł.
    Z mojej strony pytanie czy konfiguracja opendns’a nie dałaby takich samych rezultatów?

    Odpowiedz
  25. Jarosław

    Jest 5 miliardów takich samych tutoriali na temat Pi-hole, pokazują tylko konfigurację i wszystkie są takie same, ale nikt nie mówi od podstaw jak to zrobić, krok po kroku. Co jest potrzebne, jak ma być podłączony Raspberry Pi, gdzie ma być podłączony. Krótko mówiąc dla przeciętnego człowieka, których chciałby spróbować to zrobić, takie tutoriale, są bezużyteczne.

    Odpowiedz

Odpowiedz