Jak używać Raspberry Pi jako routera i filtru zawartości

  • Thomas Glenn
  • 0
  • 4395
  • 688

Jeśli masz w domu dzieci, być może poczułeś potrzebę zablokowania pewnych niepożądanych witryn internetowych. Innym częstym problemem są serwisy społecznościowe - możesz odnieść wrażenie, że dzieci (i dorośli) tracą zbyt dużo czasu na Facebooku, Twitterze itp. I chcą je zablokować lub przynajmniej udostępnić tylko w określonych porach dnia.

Aby było to możliwe, potrzebujemy pliku router plus filtr zawartości - urządzenie, za pośrednictwem którego wszystkie nasze urządzenia, takie jak laptopy, smartfony i tablety, łączą się z Internetem. To urządzenie przechwytuje również witryny internetowe, do których te urządzenia mają dostęp, i blokuje je, jeśli próbują uzyskać dostęp do czarnej listy.

Na rynku są dostępne komercyjne, gotowe do użycia filtry treści, ale dla nas, majsterkowiczów, nie ma w tym zabawy. W ten sposób pobrudzimy sobie ręce i skonfigurujemy Raspberry Pi do tego zadania. Wybraliśmy Raspberry Pi do tego projektu ze względu na jego niewielki rozmiar i znikome zużycie energii. jednak, te instrukcje będą działać prawie niezmienione na prawie każdym komputerze z systemem Debian Linux lub jego pochodną (Ubuntu, Mint itp.).

Zrzeczenie się: Ten przewodnik zakłada średni poziom doświadczenia z Linuksem i chęć rozwiązywania problemów, jeśli i kiedy się pojawią. Wcześniejsze doświadczenie z wierszami poleceń i zaporami ogniowymi jest dodatkowym atutem.

Jak to działa

Sprzęt komputerowy

Będziemy używać Raspberry Pi 3 jako filtra zawartości routera. Do tego będziemy potrzebować dwa interfejsy sieciowe na nim - jeden do łączenia się z Internetem, a drugi do działania jako hotspot Wi-Fi, z którym mogą łączyć się nasze inne urządzenia. Raspberry Pi 3 ma wbudowane gniazdo Ethernet i moduł WiFi. Więc w tym scenariuszu możemy użyć kabla Ethernet (eth0) do połączenia z internetem, podczas gdy moduł WiFi (wlan0) będzie działać jako hotspot.

Oczywiście połączenie z Internetem przez Ethernet nie zawsze jest możliwe. W takim przypadku będziesz potrzebować kompatybilnego klucza USB WiFi (wlan1) do łączenia się z internetem, natomiast wbudowany moduł WiFi (wlan0) będzie działać jako hotspot. To jest konfiguracja, której będziemy używać w tym przewodniku.

Pamiętaj, że podczas gdy Raspberry Pi 3 jest w większości odpowiedni do konfiguracji domowej z kilkoma laptopami i smartfonami, nie zapewni wydajności wymaganej w konfiguracji dużego biura. Sprawdź bardziej wydajny sprzęt, jeśli wielu klientów będzie łączyć się z filtrem zawartości.

Oprogramowanie

Użyjemy doskonałego narzędzia E2guardian do przechwytywania i filtrowania naszych żądań internetowych. Ponieważ filtrowanie treści może mieć wpływ na wydajność (w zależności od rozmiaru listy blokowanych), użyjemy pamięci podręcznej Squid, aby zrównoważyć to uderzenie w wydajność.

Wymagania wstępne

1. Raspberry Pi 3 z zainstalowaną najnowszą wersją Raspbian OS i dostępem do internetu. Jeśli dopiero zaczynasz z Raspberry Pi, zalecamy przeczytanie naszego przewodnika, jak rozpocząć pracę z Raspberry Pi 3.

2. [Opcjonalny] Klucz USB WiFi - Jest to potrzebne wtedy i tylko wtedy, gdy nie możesz podłączyć Raspberry Pi 3 do Internetu za pomocą kabla Ethernet. Jeśli planujesz korzystać z WiFi zarówno do łączenia się z Internetem, jak i jako hotspot, jest to wymagane.

3. Fizyczny dostęp do Raspberry Pi - Ze względu na naturę tego artykułu pojedynczy błąd w konfiguracji zapory może zablokować ci dostęp do twojego Pi, jeśli używasz go w trybie bezgłowym. Dlatego zaleca się podłączenie monitora, klawiatury i myszy podczas konfiguracji, aż wszystko zostanie skonfigurowane.

Użyj Raspberry Pi jako routera

1. Podłącz swoje Pi do Internetu przez Ethernet (eth0). Jeśli używasz klucza USB WiFi (prawdopodobnie wlan1) zamiast tego połącz go z Internetem. Pozostaw wbudowany moduł WiFi (wlan0) tak, jak jest na razie.

2. Uzyskać wymagane oprogramowanie że potrzebujemy:

sudo apt install iptables iptables-persistent hostapd dnsmasq squid3

3. Ustawimy się hostapd więc nasz Pi może działać jako hotspot WiFi. W tym celu utwórz plik konfiguracyjny, używając na przykład swojego ulubionego edytora tekstu sudo nano /etc/hostapd/hostapd.conf, i wklej zawartość z naszej strony GitHub.

Niektóre wiersze, które możesz chcieć zmodyfikować według gustu, to:

ssid = RaspberryPiAP

Ta linia określa, jaka będzie nazwa punktu dostępu. wybieram RaspberryPiAP.

wpa_passphrase = beebom.com

Określa hasło używane do uzyskania dostępu do punktu dostępu. użyłem beebom.com, ale zaleca się, aby zmienić je na wybrane przez siebie silne hasło.

4. Następnie będziemy skonfigurować serwer DHCP za pomocą dnsmasq. Edytuj plik konfiguracyjny /etc/dnsmasq.conf, i na końcu dodaj następujące wiersze:

[kod źródłowy] interface = lo, wlan0

no-dhcp-interface = lo

zakres dhcp = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ kod źródłowy]

Powoduje to włączenie interfejsu wlan0 (wbudowany moduł WiFi) przekazuje adresy IP klientom w 192.168.8.20 do 192.168.8.254 zasięg.

5. Ustawiać statyczny adres IP dla wbudowanego modułu WiFi wlan0. Otwórz plik / etc / network / interfaces. Prawdopodobnie wygląda to mniej więcej tak (moje podkreślenie):

[kod źródłowy] katalog-źródłowy /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet instrukcja
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet podręcznik
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Tutaj, odszukaj linie wytłuszczone z wlan0, i zmienić je, tak, aby plik wyglądał następująco:

[kod źródłowy] katalog-źródłowy /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet static
hostapd /etc/hostapd/hostapd.conf
adres 192.168.8.1
maska ​​sieci 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet podręcznik
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Spowoduje to ustawienie statycznego adresu IP 192.168.8.1 na wlan0. Zapamiętaj ten adres, jako to jest adres, którego będziemy używać do późniejszej komunikacji z naszym Raspberry Pi.

6. Teraz skonfigurować przekazywanie IP. Edytuj plik /etc/sysctl.conf, i dodaj do niego następujący wiersz:

net.ipv4.ip_forward = 1

7. Teraz będziemy skonfigurować translację adresów sieciowych (NAT) w naszej zaporze. Aby to zrobić, wprowadź następujące 2 polecenia:

sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24! -d 192.168.8.0/24 -j MASKARADA sudo iptables-save | sudo tee /etc/iptables/rules.v4

Pierwsze polecenie konfiguruje NAT, podczas gdy drugie polecenie zapisuje naszą obecną konfigurację firewalla do pliku o nazwie /etc/iptables/rules.v4. Daje to pewność, że konfiguracja będzie się powtarzać po ponownym uruchomieniu.

8. W tym momencie, zrestartuj swoje Raspberry Pi. Ma to na celu upewnienie się, że wszystkie zmiany, które wprowadziliśmy w plikach konfiguracyjnych, działają.

9. Po ponownym uruchomieniu powinieneś być w stanie zobaczyć nowo utworzony plik RaspberryPiAP hotspot (chyba że zmieniłeś nazwę w kroku 3) na innych urządzeniach, takich jak laptopy i smartfony. Możesz połączyć się z nim za pomocą określonego hasła i uzyskać dostęp do Internetu.

To wszystko, co musisz zrobić, jeśli potrzebujesz prostego routera o małej mocy. Jeśli chcesz również skonfigurować filtr treści, czytaj dalej.

Skonfiguruj filtr treści za pomocą E2guardian

E2guardian nie jest obecny w domyślnych repozytoriach Raspbian. Aby go zainstalować, przejdź do strony Github projektu i pobierz plik kończący się na armhf.deb. Teraz otwórz Terminal, przejdź do swojego Pliki do pobrania folder (lub gdziekolwiek zdecydowałeś się pobrać plik) i zainstaluj go:

cd ~ / Downloads sudo dpkg -i ./e2guardian_*_jessie_armhf.deb

Prawdopodobnie zobaczysz kilka błędów dotyczących brakujących pakietów podczas instalacji E2guardian. Aby to naprawić, pozwól instalacji zakończyć się i wprowadź następujące polecenie:

sudo apt-get install -f

Korzystanie z list zawartości

Istnieje kilka list obecnych w / etc / e2guardian / lists informator. Pliki te obejmują listę bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, wyjątki i nie tylko. Pliki te są odpowiednio udokumentowane z komentarzami. Przyjrzyj się im, aby się zapoznać.

Jako przykład załóżmy, że chcesz blokować niektóre popularne sieci społecznościowe. Otworzyć / etc / e2guardian / lists / bannedsitelist plik i pod Kocyk SSL / CONNECT block (ponieważ te strony używają https zamiast zwykłego http) dodaj następujące wiersze:

facebook.com twitter.com reddit.com

Teraz przeładuj usługę E2guardian za pomocą polecenia usługa sudo przeładuj e2guardian (będziesz musiał uruchamiać to polecenie za każdym razem, gdy modyfikujesz pliki konfiguracyjne). Żaden klient korzystający z filtru zawartości nie będzie teraz mógł uzyskać dostępu do tych witryn internetowych. Nawet strony mobilne (np. M.twitter.com) i dedykowane aplikacje na smartfony nie będą działać.

E2guardian również domyślnie blokuje porno. Jeśli chcesz na to zezwolić (hej, nie oceniamy), otwórz plik / etc / e2guardian / lists / bannedphraselist plik i zlokalizuj następujący wiersz:

.Zawierać

Skomentuj to, dodając haszysz (symbol #) do przodu, tak aby wyglądało to tak:

#.Zawierać

Ponownie załaduj ponownie konfigurację za pomocą usługa sudo przeładuj e2guardian, i jesteś skończony.

Konfigurowanie klientów

Teraz, gdy nasz serwer proxy jest już skonfigurowany, możemy przejść do konfiguracji klientów. Aby korzystać z filtru zawartości, wszyscy klienci muszą być połączeni z hotspotem Rapberry Pi i skonfigurowani do korzystania z serwera proxy. Konfiguracja serwera proxy różni się we wszystkich systemach operacyjnych i urządzeniach. Jednak pokażemy, jak skonfigurować go w systemie Windows i Android, ponieważ są one bardziej popularne.

Windows

Iść do Panel sterowania> Sieć i Internet> Opcje internetowe. W oknie, które zostanie otwarte, przejdź do pliku Znajomości i kliknij ustawienia sieci LAN.

Tutaj kliknij zaawansowane, i wejdź 192.168.8.1 jako adres proxy i 8080 jako port. Upewnij się, że Użyj tego samego serwera proxy dla wszystkich protokołów pole jest zaznaczone. Kliknij dobrze.

To wszystko, co musisz zrobić. Większość popularnych przeglądarek internetowych, takich jak Google Chrome i Firefox, automatycznie przejmuje systemowe ustawienia serwera proxy.

Android

Iść do Ustawienia systemowe> WiFi. Teraz dotknij i przytrzymaj hotspot Raspberry Pi, a następnie wybierz Zmodyfikuj sieć. Pod Zaawansowane opcje, Ustaw Pełnomocnik opcja podręcznik. Teraz pod Nazwa hosta proxy, wprowadź adres IP Pi 192.168.8.1. Pod Port proxy, wchodzić 8080, i dotknij Zapisać.

Możesz teraz przetestować konfigurację serwera proxy. Spróbuj przejść do witryny znajdującej się na czarnej liście - zobaczysz stronę „Odmowa dostępu”, taka jak ta:

Wymuszanie korzystania z serwera proxy

Do tej pory polegamy na tym, że klienci bawią się dobrze i korzystają z internetu przez filtr treści. Oczywiście rzadko zdarza się to w prawdziwym świecie. Aby wymusić na wszystkich klientach korzystanie z serwera proxy, uruchom następujące polecenia:

sudo iptables -A PREROUTING -t nat -p tcp --destination-port 80 -j REDIRECT --to-porty 8080 sudo iptables -A PREROUTING -t nat -p tcp --destination-port 443 -j REDIRECT --to- porty 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4

Spowoduje to automatyczne przekierowanie wszystkich http (port 80) i https (port 443) ruch na hotspocie Raspberry Pi do proxy filtru zawartości. Teraz, bez konfigurowania ustawień proxy na Twoich urządzeniach, nie będą one mogły uzyskać dostępu do bezpiecznego https strony internetowe, takie jak Facebook, Gmail, Twitter itp. Daje to pewność, że każdy, kto chce połączyć się z twoim hotspotem Pi, musi przejść przez proxy.

To wszystko, co musisz wiedzieć, aby korzystać z podstawowego filtru zawartości. Jeśli chcesz poznać zaawansowane funkcje, czytaj dalej.

Zaawansowane scenariusze użytkowania

Konfigurowanie filtru opartego na czasie

Załóżmy, że chcesz zablokować witryny, o których wspominaliśmy w Korzystanie z list zawartości sekcja powyżej, ale tylko w określonych porach dnia. Osobiście wolę blokować Reddit, Facebook i Twitter w godzinach pracy (9:00 - 17:00) w dni powszednie, ponieważ są one koszmarem produktywności.

Otworzyć / etc / e2guardian / lists / bannedsitelist file i dodaj do niego następujący wiersz:

czas: 9 0 17 0 01234

Ta linia działa w następujący sposób - licznik czasu zaczyna się o 9 (9 rano) 0 (00 minut), do 17 (17:00 w formacie 24-godzinnym) 0 (00 minut), od 0 (Poniedziałek) do 4 (Piątek).

Weźmy inny przykład:

czas: 10 30 20 45 024

Spowoduje to zablokowanie skonfigurowanych witryn od 10:30 (10 30) do 20:45 (20 45) w poniedziałek (0), środę (2) i piątek (4).

Zezwalanie niektórym adresom IP na omijanie serwera proxy

Możliwe jest zezwolenie niektórym adresom IP na ominięcie filtru zawartości. Można to ustawić przez konfigurowanie firewalla. Być może zauważyłeś to w naszym dnsmasq.conf, ustawiamy tylko hotspot do przypisywania adresów IP z 192.168.8.20 do 192.168.8.254 klientom. Oznacza to adresy od 192.168.8.2 do 192.168.8.19 nie zostanie automatycznie przypisany do żadnego klienta (nie możemy użyć 192.168.8.1 bo to właśnie wykorzystuje nasze Raspberry Pi).

Aby to zrobić, najpierw skonfigurować statyczny adres IP na urządzeniu, któremu chcesz dać pełny dostęp. Na przykład, aby skonfigurować statyczny adres IP 192.168.8.2 na komputerze z systemem Windows użyj następujących ustawień:

Teraz na swoim Raspberry Pi uruchom następujące polecenia.

sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 80 -j RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 443 -j RETURN

Teraz, wyłącz korzystanie z serwera proxy na swoim urządzeniu, i spróbuj otworzyć zablokowaną witrynę. Powinieneś móc go otworzyć. Jeśli istnieje więcej adresów IP, które chcesz dodać do białej listy, uruchom ponownie powyższe dwa polecenia, ale zamień adres IP na ten, który chcesz. Gdy będziesz zadowolony z białej listy, uruchom następujące polecenie, aby zapisać konfigurację zapory:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Jedną z ważnych rzeczy, o których należy pamiętać, jest to, że nie należy nikomu informować o adresach IP umieszczonych na białej liście. W przeciwnym razie mogą po prostu ustawić swoje urządzenie na ten adres IP, aby ominąć serwer proxy.

Obawy dotyczące bezpieczeństwa

Ponieważ Twój Raspberry Pi będzie punktem wejścia i wyjścia dla całej komunikacji, ważne jest, aby go zabezpieczyć. Oto kilka wskazówek, jak poprawić bezpieczeństwo. Należy pamiętać, że są to tylko podstawowe wskazówki, a nie wyczerpująca lista pułapek bezpieczeństwa. Poziom zabezpieczeń będzie zależał od charakteru Twojej sieci (dom, małe biuro itp.) Oraz tego, jak złośliwi są użytkownicy.

Wyłącz niepotrzebne usługi

Ponieważ jest to router, najlepiej jest uruchamiać tylko te usługi, których potrzebujemy. Więcej uruchomionych usług oznacza więcej luk w zabezpieczeniach, które można potencjalnie wykorzystać. Zdecydowanie nie używaj tego systemu jako zwykłego pulpitu.

Iść do Menu> Preferencje> Konfiguracja Raspberry Pi. w Interfejsy wyłącz wszystkie usługi, których nie potrzebujesz.

Zmień domyślne hasło

Nowa instalacja Raspbian zawiera domyślne hasło „raspberry” dla domyślnego użytkownika „pi”. Zaleca się zmianę tego hasła na bezpieczniejsze. Aby to zmienić, otwórz terminal i uruchom to polecenie:

passwd

Usuń monitor i inne urządzenia peryferyjne

Ponieważ wszystko, co będzie działać na tym Pi, to oprogramowanie wymagane do używania go jako routera i filtru internetowego, nie potrzebujemy monitora ani innych urządzeń peryferyjnych, takich jak mysz i klawiatura do niego podłączona. Jeśli musisz zmienić ustawienia i tym podobne, zawsze możesz użyć SSH lub podłączyć monitor i klawiaturę w razie potrzeby.

Wyłącz automatyczne logowanie

Raspbian jest skonfigurowany tak, aby automatycznie logował się przy użyciu danych uwierzytelniających użytkownika „pi” bez pytania o hasło. Może to być w porządku w przypadku rodzinnego komputera stacjonarnego ogólnego przeznaczenia, ale niebezpieczne dla routera. Aby to wyłączyć, na pulpicie Raspbian przejdź do Menu> Preferencje> Konfiguracja Raspberry Pi. w System zakładka z przodu Automatyczne logowanie nagłówku, usuń zaznaczenie Zaloguj się jako użytkownik „pi” pole wyboru.

W tym samym oknie dialogowym zaleca się również ustawienie Bagażnik ustawienie na Do CLI. Pozwoli to zaoszczędzić zasoby, ponieważ nie potrzebujemy GUI na routerze. Jeśli z jakiegoś powodu chcesz korzystać z pulpitu, zaloguj się przy użyciu swojej nazwy użytkownika i uruchom plik startx polecenie, aby włączyć interfejs graficzny.

Rozwiązywanie typowych problemów

Nazwy interfejsów są wciąż zmieniane

Jest to bardzo częste, jeśli używasz dwa interfejsy bezprzewodowe na twoim Pi. Jeśli używasz Ethernetu do podłączenia Pi do Internetu, możesz bezpiecznie zignorować tę sekcję. Problem w tym, że oba interfejsy bezprzewodowe (wlan0 i wlan1) czasami zamieniają nazwy po ponownym uruchomieniu. Oznacza to, że wbudowany moduł WiFi wlan0 zostanie zmieniona na wlan1, i wzajemnie. Jest to oczywiście duży problem, ponieważ polegamy na tym, że mają one spójną nazwę dla naszych plików konfiguracyjnych. Oto, jak sprawić, by był spójny po ponownym uruchomieniu:

1. Dowiedz się Adres MAC twoich interfejsów. Uruchom polecenie ifconfig | grep HWaddr na twoim Raspberry Pi. Zobaczysz wynik podobny do następującego:

Zanotuj tekst po prawej stronie słowa „HWaddr” w pliku wlan0 i wlan1 Sekcja. Możesz bezpiecznie zignorować eth0 Sekcja. To są adresy MAC twoich interfejsów bezprzewodowych.

Jeśli nie masz pewności, który adres MAC należy do którego interfejsu, po prostu odłącz klucz sprzętowy USB WiFi i ponownie uruchom polecenie. Plik WLAN Interfejs, który się teraz pojawi, to wbudowany interfejs Wi-Fi, a drugi to USB.

2. Utwórz nowy plik /etc/udev/rules.d/10-network.rules używając swojego ulubionego edytora tekstu. Na przykład :

sudo nano /etc/udev/rules.d/10-network.rules

3. Wprowadź następujący tekst w tym pliku. Zastąp xx: xx: xx: xx itd. Odpowiednim adresem MAC:

[kod źródłowy] # Ustaw wbudowany moduł WiFi jako wlan0. Zastąp xx: xx: xx itp. Rozszerzeniem
# adres MAC wbudowanego modułu
PODSYSTEM == "net", AKCJA == "dodaj", ATTR adres == "xx: xx: xx: xx: xx: xx", NAZWA = "wlan0"

# Skonfiguruj klucz USB WiFi jako wlan1. Zamień yy: yy: yy itp. Na
# Adres MAC klucza USB
PODSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]

Upewnij się, że adres MAC wbudowanego interfejsu Wi-Fi jest zgodny z wlan0, i USB WiFi do wlan1 ponieważ jest to konwencja, którą przestrzegamy w tym przewodniku.

4. Uruchom ponownie Raspberry Pi. Twoje interfejsy będą teraz rozpoczynać się z poprawną nazwą.

Resetowanie konfiguracji zapory

Innym częstym problemem jest źle skonfigurowana zapora. W zależności od konfiguracji sieci może minąć kilka prób, zanim zapora będzie działać prawidłowo. Jeśli w dowolnym momencie myślisz, że mogłeś pomieszać konfigurację zapory, uruchom następujące polecenia, aby rozpocząć od zera:

sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain

To usunie wszystko konfiguracja zapory. Możesz teraz rozpocząć konfigurowanie zapory od podstaw. Gdy będziesz zadowolony, uruchom polecenie sudo iptables-save | sudo tee /etc/iptables/rules.v4 aby stała się konfiguracją.

ZOBACZ TAKŻE: Jak uruchamiać polecenia na Raspberry Pi przez e-mail

Użyj swojego Raspberry Pi jako routera i filtru zawartości

To wszystko po to, aby zmienić Raspberry Pi w potężny router i proxy z filtrem zawartości. Możesz pobrać dokładne pliki konfiguracyjne, których użyliśmy do naszej konfiguracji na naszej stronie GitHub. Daj nam znać, jak to działa. Jeśli coś nie działa zgodnie z oczekiwaniami lub krok wydaje się zbyt zagmatwany, możesz zadać nam pytanie w sekcji komentarzy poniżej.




Jeszcze bez komentarzy

Poradniki dotyczące kupowania gadżetów, technologie, które mają znaczenie
Publikujemy szczegółowe poradniki dotyczące zakupu sprzętu, tworzymy ciekawe listy najlepszych produktów na rynku, opisujemy aktualności ze świata technologii