…kiedy odciąć pewnego rodzaju, internetową aktywność swych dzieci. Koniec, kropka.
Nadeszła właśnie TA chwila, a że nie zanosi się na szybki powrót do szkoły, zaś po wielu rozmowach i ustaleniach NIC się nie zmienia, więc od PERSWAZJI czas przejść do PREWENCJI.
Pi-hole to oprogramowanie, które jest pośrednikiem pomiędzy serwerem DNS, a naszą, domową siecią. Na podstawie samodzielnie stworzonych białych i czarnych list decyduje czy dać dostęp do danej strony www czy też dostępu odmówić. Tej właściwości, domowy oczywiście, postanowiłem użyć we własnym domu.
Na RaspberryPi postawiłem kontener Pi-hole , robi się to naprawdę w 2 minuty (włącznie z pobraniem obrazu). Na Malince używam HyperiotOS więc mam na niej Dockera. Tworzę plik docker-compose.yml z następującą zawartością:
version: "3"
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "80:80/tcp"
- "443:443/tcp"
environment:
TZ: 'Europe/Warsaw'
# WEBPASSWORD: 'set a secure password here or it will be random'
# Volumes store your data between container upgrades
volumes:
- './etc-pihole/:/etc/pihole/'
- './etc-dnsmasq.d/:/etc/dnsmasq.d/'
# Recommended but not required (DHCP needs NET_ADMIN)
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add:
- NET_ADMIN
restart: unless-stopped
Do ustawienia są 2 linijki, ta ze strefą czasową, oraz następna gdzie można ustawić stałe hasło do interfejsu www.
Po zapisaniu pliku opdaliłem komendę:
docker-compose up --detach
Uwaga! Należy sprawdzić czy na tym samym hoście jakiś serwis już nie blokuje portów: 53, 67, 80 i 443.
No i już! Na Malince działa Pi-hole!
Aby to sprawdzić, wystarczy w przeglądarce wejść pod adres http://IP-MALINKI/admin/, gdzie IP-MALINKI to adres IP RaspberryPi na którym zainstalowane jest Pi-hole.
Nie będę opisywał tu szczegołów posługiwania się Pi-hole, wystarczy poczytać dokumentację, ale tak na szybko dodam:
najciekawsze było dla mnie samo blokowanie niepożądanych stron www. Można skorzystać z dziesiątków istniejących blacklist ale jeszcze fajniejsza była próba, której efekt uzyskałem niemal natychmiast.
W interfejsie Pi-hole włazłem w sekcję Blacklist (w menu po lewej):

wpisałem „youtube.com”, zaznaczyłem opcję „Add domain as wildcard” i kliknąłem „Add to Blacklist”. Spróbowałem wejść na youtube.com i… wszedłem! Kicha! Nie działa!
No, nie. Tak głupi nie jestem. Pewnie, że nie zadziała. Ale dlaczego?
Każdy komputer, ten w domowej sieci, ma przypisany numer IP. Może mieć ustawiony na stałe, może też mieć pobierany automatcznie z serwera DHCP. Wraz z tym numerem ma też, a raczej powinien mieć ustawiony adres serwera DNS. Może nie mieć, ale wtedy wszędzie trzeba wchodzić po numerze IP. Kto to spamięta? (można sobie zrobić plik hosts – ktoś doda)
Co stało gdy wszedłem na stronę youtube.com? Moja przeglądarka wysłała, po cichu, zapytanie do serwera DNS: jaki adres IP ma youtube.com? Serwer DNS jej odpowiedział, że taki a taki i przeglądarka połaczyła się z serwerem youtube.
Skoro Pi-hole jest pośrednikiem pomiędzy serwerem DNS to powinien się pojawić w powyższym opisie, powinien ale go nie ma. Dlaczego? Dlatego, że jeszcze czegoś zabrakło w powyższym opisie.
Przeglądarka zna adres IP serwera DNS ale komunikuje się z nim poprzez bramę na świat jaką w każdym domu jest router. Tak, to małe pudełko które zostawiają instalatorzy Orange, Netii czy innego tzw. providera. Router przesyła dalej zapytanie z przeglądarki, a to oznacza że to właśnie jego trzeba zmusić by każde zapytanie DNS najpierw przesyłał przez pośrednika jakim jest Pi-hole.
Mój router to Mikrotik i żeby przechwytywać każde zapytanie DNS muszę do jego konfiguracji dopisać dwie dyrektywy, w moim przypadku wyglądają tak:
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=192.168.1.3 protocol=udp src-address=!192.168.1.3 dst-address=!192.168.1.3 dst-port=53 in-interface=bridge /ip firewall nat add chain=srcnat action=masquerade protocol=udp src-address=192.168.1.0/24 dst-address=192.168.1.3 dst-port=53
Adres 192.168.1.3 to adres Malinki z Pi-holem.
W skrócie: cokolwiek przyjdzie do routera z sieci wewnętrznej i jest zapytaniem DNS, przekieruj to zapytanie na adres 192.168.1.3, a resztą zajmie się Pi-hole.
Proces jeszcze się nie zakończył, teraz dopiero zaczęła się ciężka harówa – trzeba całość dopieścić tak, żeby technologia pomagała, a nie przeszkadzała. Uczyła, a nie deprawowała.
dePRAWOwać, pasuje mi to słowo, oznacza likwidację naturalnych praw człowieka, a prawa to obowiązki. Człowiek zdeprawowany jest zlewicowany, nieodpowiedzialny i samolubny.
I tym filozoficznym akcentem kończę ten radosny wpis.