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)
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
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
Postaw obok pihole wireguard VPN i puszczaj ruch prze niego ze smartfona i komputera.
Używam takiego zestawu od lat (wcześniej openvpn)
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.
No i to już trochę mnie przeraża ;) Jeszcze jakbym umiał w Ansible to są skrypty na githubie do postawienia takiego zestawu.
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.
zawsze możesz skorzystać z dns od adguard
nie używajcie uBlock
https://twitter.com/gorhill/status/1477665332156420096
polecam uBlock Origin (to inny produkt)
Jak wciągnąć listę certu do blokady na android ?
Wchodzisz w konfigurację, Ad Blocking -> Hosts List -> Add new host list (na samej górze) i dodajesz url https://hole.cert.pl/domains/domains.txt
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.
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
Zgoda – sam uzywam PI-Hole od przeszlo roku, najpierw w trybie DNS over HTTPS z cloudflarem wg tej instrukcji https://docs.pi-hole.net/guides/dns/cloudflared/ a pozniej zmienilem i obecnie korzystam z DNS over TLS i quada jako primary ( cloud jako secondary ) wg tego how – to: https://bartonbytes.com/posts/configure-pi-hole-for-dns-over-tls/.
Orientujesz się czy da się to skonfigurować jak Pi-hole stoi jako docker container?
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
A skąd wziąć dobre listy blokad do pi-hole?
Sama lista CERTu to chyba za mało.
Listy mozesz znalesc na rededicie albo na forum pihole.
Jesli nie chce CI sie szukac moge CI podac nadmiarowe ktore uzywam:
https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt
https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
https://raw.githubusercontent.com/AdguardTeam/cname-trackers/master/combined_disguised_trackers_justdomains.txt
https://hole.cert.pl/domains/domains.txt
+ ban na facebooka i jego apki:
https://raw.githubusercontent.com/anudeepND/blacklist/master/facebook.txt
Czym się różni lista
https://hole.cert.pl/domains/domains.txt
od
http://hole.cert.pl/domains/domains_hosts.txt
czy mam dodać obie do addlist?
https://cert.pl/lista-ostrzezen/
W sekcji „Dostępne formaty listy” jest wytłumaczone. To ta sama lista w innych formatach. Dla pihole jest domains.txt.
Zerknij tu https://www.tranzystor.pl/artykuly-i-schematy/raspberrypi/pi-hole-polskie-filtry-reklam.html
A dla mniej technicznych czytelników polecam https://nextdns.io/
Artykuł fajny, chętnie skorzystam, ale brakuje mi najistotniejszej informacji – jaki najtańszy model Raspberry zakupić, by sobie wszystko tak skonfigorwać?
@dcdfg Pi Zero z obudową i zasilaczem to 99 zetów w Botlandzie.
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.
Ja bym polecał coś z portem sieciowym, zużycie zasobów jest minimalne (https://docs.pi-hole.net/main/prerequisites/) więc każda wersja się nada.
Kwestia ceny i tego czy chcesz coś jeszcze na tym stawiać.
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/
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.
Da radę to postawić równolegle obok Home Assistant na HA OS?
Jasne, najprościej jako addon (przez menu Supervisor): Adguard. Mam i polecam.
A czy nie lepiej dodać filtry CERT Polska do pliku Hosts jeżeli tylko Ty będziesz ich używać?
Można, ale musisz sobie zrobić mechanizm updateów. Chyba nawet na którymś rSHP było pokazywane jak to zrobić.
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.
Uzywa kilka lat i nie zauwazam bledow w wyswietlaniu stron.
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/
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.
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ą.
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
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.
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ć…
Czy jeśli mam aktualnie na rpi Wireguarda, to ten instalator postawi PiHole obok i WG tak bedzie działał, jak działa?
Bez problemu. Najprościej to poszukaj sobie na githubie wirehole.
Mozna tez dużo prościej jeśli nie chce się komuś bawić: https://www.quad9.net
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ć?
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ć?
Ustaw sobie dhcp z pihole
i oczywście forwarder na routerze
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.
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.
na tv zainstaluj sobie you tube next i wtedy nie bedziesz mial reklam w ogole
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?
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
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.
https://youtu.be/FnFtWsZ8IP0
https://docs.pi-hole.net/guides/dns/unbound/
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 ??
Hej a co jeśli mam router z UPS i tam nie mam możliwości skonfigurowania DNS?
To puść AdGuard Home przez jego DHCP zamiast przez DHCP routera.
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ź!
Fajny artykuł.
Z mojej strony pytanie czy konfiguracja opendns’a nie dałaby takich samych rezultatów?
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.