Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

DS416j, DSM 6 i Pi-hole, czyli czarna dziura na reklamy

Pi-Hole, chroot, dnsmasq, lighttpd, blokowanie reklam i... serwer NAS DS416j

Pi-Hole na DS416j

Z projektem Pi-Hole zapewne zetknęli się już entuzjaści minikomputera spod znaku malinki oraz jej fork'ów. Zadaniem oprogramowania ma być blokowanie niechcianych treści, zgłaszanych przez społeczność jako śmieci. Całość odbywa się przez filtrowanie ruchu po DNS w odniesieniu do regularnie pobieranych z bazy projektu hostów szkodliwych. Czyli adresów serwerów nachalnych reklam. Podczas testowania Pi-Hole'a dziennie blokował około 1/2 tysiąca zapytań, a do pełni szczęścia uzupełniłem konfigurację ręcznie o wredne hosty, propagujące nachalne reklamy na lokalnym serwisie informacyjnym, którego społeczność Pi-Hole'a po prostu nie zna. Całość wraz ze statystykami funkcjonuje obłędnie, odfiltrowując zbędne treści. Podczas gdy dostałem do dyspozycji NAS firmy Synology na cztery dyski - postanowiłem sprawdzić czy jego 512-ramu poradzi sobie z udźwignięciem kilku niekonwencjonalnych usług oprócz działających już standardowych, obecnych w systemie "na gotowe". Postanowiłem zainstalować Pi-Hole'a na serwerze NAS.

chroot

Jak już pisałem w jednym z wpisów na temat DS416j - dostajemy DSM. Tylko i aż. Jest to poniekąd okrojony system i nie wszystko sobie tam zainstalujemy. Tu z pomocą przychodzi chroot. Jest to twór dostępny z repozytorium społeczności skupionej przy Synology i systemie DSM, a pobrać pakiet możemy z repozytorium tejże społeczności po dodaniu w panelu sterowania urządzenia DS416j. Chroot to nic innego jak pewnego rodzaju podsystem, który daje nam możliwość rozszerzenia funkcjonalności DSM'u o atrakcje oferowane przez pełnego Debiana. Działa yum i apt-get, możemy dorzucić curl'a a (mając na uwadze ograniczone sprzętowo zasoby) lekki serwer www lighttpd czy coś do pomieszania DNSem - dnsmasq. Właśnie sama się napisała swojego rodzaju recepta na doposażenie NAS'a w prywatny serwer DNS blokujący reklamy. Pi-hole. Dedykowany dla malinek projekt mający za zadanie odfiltrowywać niechciane treści na etapie DNS. W końcu bądź co bądź Raspbian to też taki Debian... i postanowiłem sprawdzić czy zadziała na DS416j. Nie dam sobie uciąć głowy czy będzie działać na każdym NAS'ie, gdyż zarówno specyfikacje sprzętowe jak i wersje DSM znacząco odbiegają od siebie w miarę oddalania się wzajemnie konfiguracji sprzętowej i ich wzajemnej zbieżności. Tak myślę. Chcę zainspirować Was do poeksperymentowania z różnymi urządzaniami i być może po jakimś czasie wyrysują się wnioski dające informacje na temat tego na jakim sprzęcie i systemie można w/w projektu używać.

od czego zacząć?

Na pewno zabawę zaczniemy od zainstalowanie i przygotowania chroot'a.
W tym celu udajemy się do panelu sterowania, centrum pakietów, zakładka społeczności (o ile dodano wcześniej repozytorium w źródłach pakietów).

Klikamy instaluj, a następnie uruchom. Logujemy się do serwera NAS przez SSH i wydajemy ciąg następujących poleceń:

sudo su (podnosimy uprawnienia do root'a na DSM)

/var/packages/debian-chroot/scripts/start-stop-status start

/var/packages/debian-chroot/scripts/start-stop-status chroot

w tym miejscu mogą pojawić się błędy, ale nie mają żadnego znaczenia, przy ponownym uruchomieniu NAS'a i chroot'a już ich nie będzie. Wydajemy następny ciąg poleceń:

apt-get update

apt-get upgrde

apt-get install locales

dpkg-reconfigure locales

wybieramy kodowanie UTF8 i języki polski oraz najbezpieczniej wszystkie rodziny En_en, En_us. Zatwierdzamy i czekamy na re konfigurację lokalizacji. Może to chwilę potrwać. Mi zajęło jakieś pięć minut. Postęp jest widoczny wyraźnie i nic nie wskazuje ani nie sugeruje tego, że coś się zawiesiło. Także bez stresu. Dodać należy też, że sam chroot jest tworem nieingerującym w system plików natywnego DSM'a, także nie musimy obawiać się o to, że namiesza nam w oryginalnej konfiguracji. Oczywiście jest jasne, że przed każdą modyfikacją czegokolwiek w serwerze wykonujemy kopię zapasową konfiguracji do pliku, ale uważam to za standard i specjalnie nie będę pisał gdzie i jak w DSM'ie to zrobić bo jest na tyle intuicyjny, że po minucie każdy znajdzie.

Po zakończonej konfiguracji pakietów językowych:

dpkg-reconfigure tzdata

apt-get install curl

mount /proc

cat /proc/mounts > /etc/mtab

Instalacja Pi-Hole'a

W celu właściwej instalacji oprogramowania Pi-Hole posługujemy się curl'em:

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

podążamy za wyświetlanymi na ekranie komunikatami, dopasowując program do swojego systemu i sieci. Konfiguracja jest prosta i w miarę intuicyjna. Nie należy bać się tego, że odbywa się w konsoli.

Ważną rzeczą po zakończonej instalacji jest nadanie nowego hasła do panelu administracyjnego strony web usługi. (wygenerowane podczas instalacji również można sobie zapisać, ale jest przypadkowo generowane i można zapomnieć) W tym celu wydajemy komendę:

pihole -a -p

zostaniemy poproszeni o podanie nowego hasła i jego ponowne wpisanie.

Serwer web (lighttpd) dla Pi-Hole domyślnie działa na porcie 80. Ale ponieważ na naszym NAS'ie już działa usługa wykorzystująca tenże port - musimy wybrać inny - aczkolwiek wyższy niż port 1023. Na przykład 8888. W tym celu musimy sobie wyedytować plik konfiguracyjny serwera lighttpd w miejscu server.port-xxxx. Znajduje się on w lokalizacji:

/etc/lighttpd/ i nazywa się lighttpd.conf.

Możemy użyć nano, doinstalować Midnight Commander'a (apt-get install mc), lub po prostu wkleić w terminal poniższą linijkę:

nano /etc/lighttpd/lighttpd.conf

wyszukujemy frazę server.port= poprzez wciśnięcie CTRL+W (wyszukiwanie w nano). Natomiast po skończonej edycji numeru portu CTRL+X i na pytanie czy zapisać zmiany odpowiadamy wciśnięciem klawisza Y.

Kolejną czynnością, którą należy dodać jest dodanie Pi-Hole'a do Cron'a. W tym celu klepiemy:

crontab /etc/cron.d/pihole

crontab -l

fonetycznie będzie tak: krontab minus EL - małe EL - piszę o tym bo często małe Ly lubi wyglądać jak jedynka abo jeszcze co innego, na przykład duże i. Swoją drogą przypomniały mi się kiedyś omawiane na łamach portalu podróbki i tam właśnie można było się spotkać z przebiegłym wykorzystaniem tej umyślnej literówki (ktoś pokazywał screeny z podróbkami telefonów nokia, na których była oferowana nokLa. (NOKIA NOKlA - przez el) oraz nokia nokla - przez el. ;-)

następnie restartujemy działające usługi celem sprawdzenia występowania ewentualnych błędów i konfliktów:

sudo service cron restartsudo service lighttpd restartsudo service dnsmasq restart

teraz powinno być możliwe dostanie się do panelu administracyjnego Pi-Hole'a:http://192.168.1.2:8888/admin

czyli :

http://twój-wewnętrzny-adres-ip-serwera-nas : wybrany port/admin

Pozostaje dodać jeszcze manewry z chroot'em do automatycznego uruchomienia.
Wychodzi z chroot'a poleceniem exit,
wydajemy następujące:

cd;wget https://gist.githubusercontent.com/bakman2/dcfe3fdfd02c9ff8326bbf35da539f27/raw/c177d818b878ab2ee5c7de54af35116e0ded2a37/gistfile1.txt

mv gistfile1.txt /usr/local/etc/rc.d/S99pihole.sh

chmod +x /usr/local/etc/rc.d/S99pihole.sh

i testujemy skrypt:

/usr/local/etc/rc.d/S99pihole.sh restart

Od tego momentu Pi-Hole powinien działać i zgłosić stronę administracyjną.

I tu ważna uwaga. Próbowałem wcześniej instalować Pi-Hole'a na VPS'ie od Aruby.
Niestety. Mimo, że instalacja przebiegła bezproblemowo i wszystko hulało aż miło, to serwer DNS z publicznym IP nie jest dobrym pomysłem. Można przypadkiem stać się ofiarą (albo raczej współsprawcą) ataków DoS. Także rozwiązanie oparte na Raspberry Pi lub jego zamiennikach czy jeśli jest się szczęśliwym posiadaczem NAS'a wydaje się idealną opcją.
Oczywiście Pi-Hole na VPS też będzie działał ale bezpieczni będziemy tylko wtedy, gdy postawimy tam VPN'a i ograniczymy połączenia przychodzące dla serwera DNS (Pi-Hole) tylko do lokalnego adresu. Tak jest bezpiecznie. Jest to jednak już trudniejsze niż (zwłaszcza mając w domu NAS czy Pi) umieścić lokalnie przed routerem. Szczerze polecam. Zabawka pięknie odfiltrowuje reklamy, bannery i efekty proponowane przez śledzące ciastka. Jeśli ktoś ma w domu NAS'a lub Pi to powinien spróbować.

konfiguracja klientów

Pozostaje skonfigurowanie routerów pod nowy adres IP serwera DNS z Pi-Hole. Chodzi o to, aby zamiast np. 8.8.8.8 i 4.4.4.4 ustawić sobie lokalny adres IP NAS'a z działającą instancją Pi-Hole. W tym przypadku wszystkie urządzenia za ruterem z nowym DNS'em będą odfiltrowywały reklamy.

Inna opcja jest taka, że możemy ręcznie na każdym urządzeniu ustawić te same DNS'y dla Pi-Hole. Robimy tak wtedy gdy chcemy decydować, które urządzenia ma odfiltrowywać, a które nie. W tym przypadku odfiltrowywanie będzie odbywało się z osobna dla każdego, wybranego urządzenia.

Jest to jedno z alternatywnych, komplementarnych uzupełnień funkcjonalności serwerów NAS (obecności Linux'a i odrobiny kombinatoryki). Pokazuje, że oprócz przeglądarkowych Ad-Block'ów istnieją inne narzędzia zwalczające coraz bardziej powszechny w internecie Syf. Pi-Hole jest dedykowany dla Maliny, ale uniwersalność Linux'a (z DSM jest trudniej, ale nie niemożliwe) pokazuje, że można korzystać z niego na każdej maszynce, w której żyje jakiś Pingwin.

alternatywa alternatywy czyli nie masz NASa, ani Pi? ... To nic! I tak się da.

Posiadam w domu urządzenie na kształt Intel Compute Stick - oryginał po półtora roku umarł i zastąpiłem go Modecom'em Free z procesorem obsługującym wirtualizację. Wyżej pokazane rozwiązanie testowałem również na maszynie wirtualnej pod takim patykiem. Jego wydajność jest jak najbardziej zadowalająca, ale to już temat na zupełnie inny wpis.

 

linux internet serwery

Komentarze

0 nowych
WODZU   17 #1 19.07.2017 20:41

Czy mi się wydaje, czy jako jedyny z testerów zająłeś się szerszym majstrowaniem w Synologach?

parranoya   9 #2 19.07.2017 21:28

Czekałem na taką recenzję. Nareszcie ktoś się przyłożył.

Autor edytował komentarz w dniu: 19.07.2017 21:28
b3rok   3 #3 20.07.2017 08:09

@vera109 - a jak masz skonfigurowaną sieć w domu? Bo jeśli dobrze rozumiem to masz NAS'a przed routerem "Jest to jednak już trudniejsze niż (zwłaszcza mając w domu NAS czy Pi) umieścić lokalnie przed routerem"? Czyli: internetnasrouterLAN. Czy inaczej?

sinio   3 #4 20.07.2017 09:28

To mnie zainteresowałeś chrootem , jak rozumiem dsm robi tu tylko jako serwer dns a czy miałbyś pomysł żeby zrobić na nim filtrowanie ruchu ale na firewallu (użycie 2 sieciówek w synology ewentualnie jednej pod usb). Fajnie wiedzieć że z maliny funkcjonalności można przeszczepić do synology i to bez większych niedogodności. Do edycji plików konfiguracyjnych używałem "Config File Editor" warto sprawdzić.

wojtekadams   18 #5 20.07.2017 09:40

Kandydat na główną nagrodę ;)

vera109   10 #6 20.07.2017 11:47

@b3rok: ISP(vectra) router TPLink 1043ND** NAS
.....................................................| | |
.....................................................| | ---- stacjonarne i laptopy
.....................................................| ----- telefony
..................................................... ------ telewizor i dziwoloągi

**Dostęp do NASa tylko po znanych mi portach z zewnątrz i po usłudze www po porcie 80. Serwer DNS tylko po lokalu na porcie 53 - nieNASowy tylko pod chrootem dnsmasq. No i inny IP dla instancji serwera chroot.
mniej wiecej wyglada to tak:

ISP(vectra) router TPLink 1043ND** NAS chroot na NAS*
.....................................................| | |
.....................................................| | ---- stacjonarne i laptopy
.....................................................| ----- telefony
..................................................... ------ telewizor i dziwoloągi

* serwer DNS tylko lokalnie. dla urządzeń "za routerem w sieci wewnętrznej)
z zewnątrz nie jest widoczny. Czyli metoda nie działa gdy wyjdziemy z domu i łączymy się np. po LTE. (raczej rzecz jasna)

Autor edytował komentarz w dniu: 20.07.2017 11:48
vera109   10 #7 20.07.2017 11:50

@sinio: można, ale nie trzeba, DSM na swój serwer DNS a pod chrootem na potrzeby pihole uruchomił się dnsmasq i lighttpd. Musisz albo rozdać różne adresy IP (skonfigurowac chroota jako inny IP inny klient inny web i dns serwer, albo uzyc innych portów). zwyczajnie by się nie gryzły. Ja chrootem jakby ominąłem DSM

vera109   10 #8 20.07.2017 11:53

@sinio: BTW działa też na pierwszym lepszym VPSie tylko pojawia się problem rekursywnego DNSu. i... blokują port 53 aby nie stać się współautorem ataku DoS. Zrobię o tym wpis tylko mój osobisty korektor (czytaj druga, lepsza połowa od jednej całości) wróci ze spaceru z trzecią połową :) Literówki trzeba posprawdzać.

Autor edytował komentarz w dniu: 20.07.2017 11:56
vera109   10 #9 20.07.2017 11:57

@b3rok: czyli z grubsza dokładnie tak jak napisałeś. :)

vera109   10 #10 20.07.2017 12:09

@WODZU: ...no tak majstrowałem, że czepialstwo odwalałem w domu po północy na łebki od śrubek tacek mocujących dyski... żebyś wiedział Ile się naklełem (na łebki od śrubek i na trzęsące się ręce) to już tylko mój korektor wie :) ... ale jakoś poszło - potem było już tylko przyjemniej. Najpierw 16 nie tych co trzeba śrubek ... i dawaj - odkręcaj je z powrotem, potem - nie mogę trafić w dziurki i techniką "po palcu" kolejne szesnaście sztuk... tym razem skutecznie. To chyba najtrudniejsza część testów była. No i rozpakowanie. Chociaż gorzej było z pakowaniem. Przy okazji mam nadzieję, że do redakcji NAS dojechał cały. ;-)

Pudel89   10 #11 20.07.2017 18:04

To jeszcze PXE opisz na Synology wraz z serwerem DHCP lub z DHCP na ruterze.DSM ma masę funkcji lecz by wykorzystać wszystkie wypadałoby mieć NAS z i3

grocalt   7 #12 14.08.2017 10:48

Bierzesz pierwszy lepszy router z Tomato i masz filtrowanie DNSów bez kombinowania.

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłeś(aś) naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.