Pokud máte doma děti, možná jste cítili potřebu blokovat určité nežádoucí webové stránky. Další běžnou problémovou oblastí jsou weby sociálních médií - můžete mít pocit, že děti (i dospělí) ztrácejí příliš mnoho času na Facebooku, Twitteru atd. A chtějí je zablokovat, nebo alespoň zpřístupnit pouze v určitou denní dobu.
Aby to bylo možné, potřebujeme a router Plus filtr obsahu - zařízení, jehož prostřednictvím se všechna naše zařízení, jako jsou notebooky, smartphony a tablety, připojují k internetu. Toto zařízení také zachytí weby, na které tato zařízení přistupují, a zablokuje je, pokud se pokusí získat přístup na web na černé listině.
Na trhu jsou k dispozici komerční filtry obsahu připravené k použití, ale pro nás kutilské typy to není žádná zábava. Takže si zašpiníme ruce a nastavíme Raspberry Pi pro tuto práci. Pro tento projekt jsme si vybrali Raspberry Pi kvůli jeho malé velikosti a zanedbatelné spotřebě energie. nicméně, tyto pokyny budou fungovat téměř beze změny s téměř jakýmkoli počítačem se systémem Debian Linux nebo derivátem (Ubuntu, Mint atd.).
Zřeknutí se odpovědnosti: Tato příručka předpokládá střední úroveň zkušeností s Linuxem a ochotu řešit problémy, pokud a kdy nastanou. Bonusem jsou předchozí zkušenosti s příkazovými řádky a branami firewall.
Jak to funguje
Hardware
Raspberry Pi 3 budeme používat jako filtr obsahu routeru. K tomu budeme potřebovat dvě síťová rozhraní na něm - jeden se připojuje k internetu a druhý slouží jako hotspot WiFi pro připojení našich dalších zařízení. Raspberry Pi 3 má vestavěný ethernetový konektor a modul WiFi. V tomto scénáři tedy můžeme použít ethernetový kabel (eth0) pro připojení k internetu, zatímco WiFi modul (wlan0) bude fungovat jako hotspot.
Připojení k internetu pomocí Ethernetu samozřejmě není vždy možné. V tomto případě budete potřebovat kompatibilní USB WiFi dongle (wlan1) pro připojení k internetu, zatímco vestavěný modul WiFi (wlan0) bude fungovat jako hotspot. Toto je konfigurace, kterou použijeme v této příručce.
Mějte na paměti, že zatímco Raspberry Pi 3 je většinou vhodný pro domácí nastavení s několika notebooky a smartphony, neposkytne výkon potřebný pro nastavení velké kanceláře. Pokud se k vašemu filtru obsahu připojí spousta klientů, podívejte se na schopnější hardware.
Software
K zachycení a filtrování našich webových požadavků použijeme vynikající E2guardian. Protože filtrování obsahu může mít dopad na výkon (v závislosti na velikosti seznamu bloků), použijeme mezipaměť Squid k vyrovnání tohoto zásahu do výkonu.
Předpoklady
1. Raspberry Pi 3 s nejnovější verzí operačního systému Raspbian a přístupem k internetu. Pokud s Raspberry Pi teprve začínáte, doporučujeme si přečíst našeho průvodce, jak začít s Raspberry Pi 3.
2. [Volitelný] USB WiFi dongle - To je nutné tehdy a jen tehdy, když nemůžete připojit svůj Raspberry Pi 3 k internetu pomocí ethernetového kabelu. Pokud plánujete používat WiFi pro připojení k internetu i jako hotspot, je to nutné.
3. Fyzický přístup k Raspberry Pi - Vzhledem k povaze tohoto článku vás může jediná chyba v konfiguraci brány firewall zablokovat, pokud ji používáte v bezhlavém režimu. Proto se doporučuje, abyste při konfiguraci konfigurovali monitor, klávesnici a myš, dokud nebude vše nastaveno.
Jako směrovač použijte Raspberry Pi
1. Připojte své Pi k internetu pomocí Ethernetu (eth0). Pokud používáte USB WiFi dongle (pravděpodobně wlan1) místo toho jej připojte k internetu. Nechte vestavěný modul WiFi (wlan0), jak je to prozatím.
2. Dostaň nezbytný software že potřebujeme:
sudo apt install iptables iptables-persistent hostapd dnsmasq squid3
3. Nastavíme hostapd
takže náš Pi může fungovat jako hotspot WiFi. Za tímto účelem vytvořte konfigurační soubor například pomocí svého oblíbeného textového editoru sudo nano /etc/hostapd/hostapd.conf
, a vložte obsah z naší stránky GitHub.
Některé řádky, které budete chtít upravit podle vkusu, jsou:
ssid = RaspberryPiAP
Tento řádek určuje, jaký bude název přístupového bodu. Vybírám si RaspberryPiAP
.
wpa_passphrase = beebom.com
Toto určuje přístupovou frázi použitou pro přístup k hotspotu. Použil jsem beebom.com
, ale doporučujeme jej změnit na silnou přístupovou frázi podle vašeho výběru.
4. Dále uděláme nastavit server DHCP použitím dnsmasq
. Upravte konfigurační soubor /etc/dnsmasq.conf
, a na konec přidejte následující řádky:
[sourcecode] interface = lo, wlan0
no-dhcp-interface = lo
dhcp-range = 192.168.8.20,192.168.8.254,255.255.255.0,12h [/ sourcecode]
Tím se rozhraní zapne wlan0
(vestavěný modul WiFi) rozdává adresy IP klientům v síti 192.168.8.20 na 192.168.8.254 rozsah.
5. Založit statická adresa IP pro vestavěný WiFi modul wlan0
. Otevřete soubor / etc / network / interfaces
. Pravděpodobně to vypadá asi takto (důraz moje):
[zdrojový kód] zdrojový adresář /etc/network/interfaces.d
auto lo
iface lo inet loopback
Příručka ifet eth0 inet
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]
Tady, vyhledejte řádky tučně s wlan0
, a změňte je, takže soubor vypadá takto:
[zdrojový kód] zdrojový adresář /etc/network/interfaces.d
auto lo
iface lo inet loopback
Příručka ifet eth0 inet
allow-hotplug wlan0
iface wlan0 inet statický
hostapd /etc/hostapd/hostapd.conf
adresa 192.168.8.1
maska sítě 255.255.255.0
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]
Tím se nastaví statická adresa IP 192.168.8.1
na wlan0. Zapamatujte si tuto adresu, as toto je adresa, kterou později použijeme ke komunikaci s naším Raspberry Pi.
6. Nyní nastavit přesměrování IP. Upravte soubor /etc/sysctl.conf
, a přidejte k němu následující řádek:
net.ipv4.ip_forward = 1
7. Teď budeme konfigurovat překlad síťových adres (NAT) v našem firewallu. Chcete-li to provést, zadejte následující 2 příkazy:
sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24! -d 192.168.8.0/24 -j MASQUERADE sudo iptables-save | sudo tee /etc/iptables/rules.v4
První příkaz nastaví NAT, zatímco druhý příkaz uloží naši současnou konfiguraci brány firewall do souboru s názvem /etc/iptables/rules.v4
. Tím zajistíte, že konfigurace přetrvává i po restartování.
8. V tomto bodě, restartujte Raspberry Pi. Tím se ujistíme, že všechny změny, které jsme provedli v konfiguračních souborech, jsou funkční.
9. Po restartu byste měli vidět nově vytvořené RaspberryPiAP
hotspot (pokud jste nezměnili název v kroku 3) na svých dalších zařízeních, jako jsou notebooky a smartphony. Můžete se k němu připojit pomocí zadaného hesla a získat přístup k internetu.
To je vše, co musíte udělat, pokud potřebujete základní router s nízkou spotřebou. Pokud chcete nastavit také filtr obsahu, čtěte dále.
Nastavte filtr obsahu pomocí E2guardian
E2guardian není přítomen ve výchozích úložištích Raspbian. Chcete-li jej nainstalovat, přejděte na stránku Github projektu a stáhněte soubor končící na armhf.deb
. Nyní otevřete Terminál, přejděte do svého Soubory ke stažení složku (nebo kamkoli jste se rozhodli stáhnout soubor) a nainstalujte ji:
cd ~ / Soubory ke stažení sudo dpkg -i ./e2guardian_*_jessie_armhf.deb
Při instalaci E2guardian pravděpodobně uvidíte několik chyb o chybějících balíčcích. Chcete-li to napravit, nechte instalaci dokončit a zadejte následující příkaz:
sudo apt-get install -f
Používání seznamů obsahu
V seznamu je několik seznamů / etc / e2guardian / seznamy
adresář. Mezi tyto soubory patří bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, list výjimek a další. Tyto soubory jsou řádně zdokumentovány s komentáři. Podívejte se na ně, abyste se seznámili.
Jako příklad předpokládejme, že si přejete blokovat některé populární sociální sítě. Otevři / etc / e2guardian / seznamy / bannedsitelist
soubor a pod Přikrývka SSL / PŘIPOJIT blok (protože tyto webové stránky používají https místo prostého http), přidejte následující řádky:
facebook.com twitter.com reddit.com
Nyní pomocí příkazu znovu načtěte službu E2guardian sudo service e2guardian reload
(tento příkaz budete muset spustit pokaždé, když upravíte konfigurační soubory). Klienti využívající filtr obsahu nyní nebudou mít přístup k těmto webům. Ani mobilní weby (např. M.twitter.com) a specializované aplikace pro smartphony nebudou fungovat.
E2guardian také ve výchozím nastavení blokuje porno. Pokud si to přejete povolit (hej, nebudeme soudit), otevřete / etc / e2guardian / seznamy / bannedphraselist
soubor a vyhledejte následující řádek:
.Zahrnout
Přidejte komentář a hash (symbol #) vpředu, aby to vypadalo takto:
#.Zahrnout
Znovu načtěte konfiguraci pomocí sudo service e2guardian reload
, a jsi hotový.
Konfigurace klientů
Nyní, když je náš proxy server nastaven, můžeme přejít ke konfiguraci klientů. Chcete-li použít filtr obsahu, musí být všichni klienti připojeni k hotspotu Rapberry Pi a nakonfigurováni tak, aby používali proxy. Konfigurace proxy se liší ve všech operačních systémech a zařízeních. Ukážeme si však, jak to nastavit v systémech Windows a Android, protože ty jsou populárnější.
Okna
Jít do Ovládací panely> Síť a internet> Možnosti Internetu. V okně, které se otevře, přejděte na ikonu Připojení kartu a klikněte na Nastavení LAN.
Zde klikněte na Pokročilý, a vstoupit 192.168.8.1
jako proxy adresa a 8080
jako přístav. Ujistěte se, že Pro všechny protokoly použijte stejný server proxy políčko je zaškrtnuto. Klepněte na OK.
To je vše, co musíte udělat. Nejoblíbenější webové prohlížeče, jako je Google Chrome a Firefox, automaticky vyzvednou nastavení proxy systému.
Android
Jít do Nastavení systému> WiFi. Nyní klepněte a podržte hotspot Raspberry Pi a vyberte Upravit síť. Pod Pokročilé možnosti, nastav Proxy možnost Manuál. Nyní pod Název hostitele proxy, zadejte IP adresu zařízení Pi 192.168.8.1
. Pod Proxy port, vstoupit 8080
, a klepněte na Uložit.
Nyní můžete otestovat konfiguraci serveru proxy. Zkuste přejít na web ve své černé listině - zobrazí se vám stránka „Přístup odepřen“, jako je tento:
Prosazování používání serveru proxy
Zatím se spoléháme na to, že klienti hrají pěkně a používají internet prostřednictvím filtru obsahu. To se samozřejmě ve skutečném světě děje jen zřídka. Chcete-li vynutit, aby všichni klienti procházeli proxy serverem, spusťte následující příkazy:
sudo iptables -A PREROUTING -t nat -p tcp --destination-port 80 -j REDIRECT --to-ports 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
Tím se všechny automaticky přesměrují http (port 80) a https (port 443) provoz na hotspotu maliny Pi k proxy filtru obsahu. Nyní, bez konfigurace nastavení proxy na vašich zařízeních, nebudou mít přístup k zabezpečenému https webové stránky jako Facebook, Gmail, Twitter atd. Tím je zajištěno, že každý, kdo se chce připojit k vašemu hotspotu Pi, musí projít proxy serverem.
To je vše, co potřebujete vědět pro základní použití filtru obsahu. Pokud se chcete naučit některé pokročilé funkce, čtěte dále.
Scénáře pokročilého použití
Nastavení časově omezeného filtru
Řekněme, že chcete blokovat weby, které jsme zmínili v Používání seznamů obsahu část výše, ale pouze v určitých časech dne. Osobně dávám přednost blokování Redditu, Facebooku a Twitteru během pracovní doby (9:00 - 17:00) ve všední dny, protože jsou noční můrou produktivity.
Otevři / etc / e2guardian / seznamy / bannedsitelist
soubor a přidejte do něj následující řádek:
čas: 9 0 17 0 01234
Tento řádek funguje následovně - časovač začíná na 9 (9 hodin ráno) 0 (00 minut), do 17 (17:00 ve 24hodinovém formátu) 0 (00 minut), od 0 (Pondělí) do 4 (Pátek).
Vezměme si další příklad:
čas: 10 30 20 45 024
To zablokuje nakonfigurované weby od 10:30 (10 30) do 20:45 (20 45) v pondělí (0), ve středu (2) a v pátek (4).
Nechat určité adresy IP obejít proxy
Je možné nechat určité IP adresy obejít filtr obsahu. To lze nastavit pomocí konfigurace brány firewall. Možná jste si toho všimli v našem dnsmasq.conf
, hotspot jsme nastavili pouze na přiřazování IP adres 192.168.8.20 na 192.168.8.254 klientům. To znamená adresy z 192.168.8.2 na 192.168.8.19 nebudou automaticky přiřazeny žádnému klientovi (nemůžeme použít 192.168.8.1 protože to používá naše Raspberry Pi).
Nejprve k tomu nastavit statickou IP na zařízení, ke kterému chcete poskytnout plný přístup. Například nastavit statickou IP adresu 192.168.8.2 na počítači se systémem Windows použijte tato nastavení:
Nyní na svém Raspberry Pi spusťte následující příkazy.
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
Nyní, zakázat používání proxy na vašem zařízení, a zkuste otevřít zakázaný web. Měli byste být schopni jej otevřít. Pokud existuje více IP adres, které chcete přidat na seznam povolených, spusťte znovu výše uvedené dva příkazy, ale nahraďte IP adresu tou, kterou chcete. Jakmile budete s whitelistem spokojeni, uložte konfiguraci firewallu spuštěním následujícího příkazu:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Mějte na paměti jednu důležitou věc, že byste neměli nikomu dávat vědět o IP adresách na seznamu povolených. V opačném případě mohou jednoduše nastavit své zařízení na tuto adresu IP, aby obcházely proxy.
Bezpečnostní obavy
Protože vaše Raspberry Pi bude vstupním a výstupním bodem pro veškerou vaši komunikaci, je důležité jej zabezpečit. Zde je několik tipů, jak zlepšit zabezpečení. Mějte na paměti, že se jedná pouze o základní ukazatele, nikoli o úplný seznam bezpečnostních úskalí. Výše zabezpečení bude záviset na povaze vaší sítě (doma, v malé kanceláři atd.) A na tom, jak škodliví jsou uživatelé.
Zakažte nepotřebné služby
Jelikož se jedná o router, je nejlepší spouštět pouze služby, které požadujeme. Více spuštěných služeb znamená více zranitelností, které lze potenciálně zneužít. Rozhodně nepoužívejte tento systém jako běžnou plochu.
Jít do Nabídka> Předvolby> Konfigurace Raspberry Pi. V Rozhraní Na kartě deaktivujte všechny služby, které nepotřebujete.
Změňte výchozí heslo
Nová instalace Raspbian má výchozí heslo „malina“ pro výchozího uživatele „pi“. Doporučuje se změnit toto na bezpečnější heslo. Chcete-li to změnit, otevřete terminál a spusťte tento příkaz:
heslo
Vyjměte monitor a další periferní zařízení
Jelikož vše, co bude na tomto Pi fungovat, je software potřebný k jeho použití jako routeru a webového filtru, nepotřebujeme k němu připojený monitor nebo jiné periferie, jako je myš a klávesnice. Pokud potřebujete změnit nastavení apod., Můžete vždy použít SSH nebo podle potřeby připojit monitor a klávesnici.
Vypněte automatické přihlášení
Raspbian je nastaven tak, aby se automaticky přihlašoval pomocí přihlašovacích údajů uživatele „pi“ bez výzvy k zadání hesla. To může být v pořádku pro stolní počítače pro obecné účely, ale pro router nebezpečné. Chcete-li to deaktivovat, přejděte na ploše Raspbian na Nabídka> Předvolby> Konfigurace Raspberry Pi. V Systém záložka před Automatické přihlášení nadpis zrušte zaškrtnutí políčka Přihlásit se jako uživatel 'pi' zaškrtávací políčko.
Ve stejném dialogovém okně je také vhodné nastavit Boot nastavení na CLI. To ušetří zdroje, protože na routeru nepotřebujeme grafické uživatelské rozhraní. Pokud chcete z jakéhokoli důvodu používat plochu, přihlaste se pomocí svého uživatelského jména a spusťte startx
příkaz pro zapnutí grafického rozhraní.
Odstraňování běžných problémů
Rozhraní se stále přejmenovávají
To je velmi běžné, pokud používáte dvě bezdrátová rozhraní na vašem Pi. Pokud k připojení svého Pi k internetu používáte Ethernet, můžete tuto část bez obav ignorovat. Problém je v tom, že obě bezdrátová rozhraní (wlan0 a wlan1) někdy po restartu vyměnit jména. To znamená vestavěný modul WiFi wlan0 přejmenován na wlan1, a naopak. To je samozřejmě velký problém, protože se spoléháme na to, že mají shodný název pro naše konfigurační soubory. Zde je způsob, jak zajistit konzistentnost při restartování:
1. Zjistěte MAC adresa vašich rozhraní. Spusťte příkaz ifconfig | grep HWaddr
na vašem Raspberry Pi. Uvidíte výstup podobný tomuto:
Poznamenejte si text napravo od slova „HWaddr“ v souboru wlan0 a wlan1 sekce. Můžete bezpečně ignorovat eth0 sekce. Toto jsou MAC adresy vašich bezdrátových rozhraní.
Pokud si nejste jisti, která MAC adresa patří ke kterému rozhraní, jednoduše odpojte USB WiFi dongle a spusťte příkaz znovu. The WLAN Rozhraní, které nyní přichází, je vaše vestavěné rozhraní WiFi, zatímco druhé je USB.
2. Vytvořte nový soubor /etc/udev/rules.d/10-network.rules
pomocí svého oblíbeného textového editoru. Například :
sudo nano /etc/udev/rules.d/10-network.rules
3. Do tohoto souboru zadejte následující text. Nahraďte xx: xx: xx: xx atd. Příslušnou adresou MAC:
[zdrojový kód] # Nastavit vestavěný modul WiFi jako wlan0. Nahraďte xx: xx: xx atd. Za
# MAC adresa integrovaného modulu
SUBSYSTEM == "net", ACTION == "add", ATTR address == "xx: xx: xx: xx: xx: xx", NAME = "wlan0"
# Nastavte USB WiFi dongle jako wlan1. Nahraďte yy: yy: yy atd. Za
# Adresa MAC hardwarového klíče USB
SUBSYSTEM == "net", ACTION == "add", ATTR address == "yy: yy: yy: yy: yy: yy", NAME = "wlan1" [/ sourcecode]
Ujistěte se, že MAC adresa integrovaného WiFi rozhraní odpovídá wlan0, a USB WiFi na wlan1 protože to je konvence, kterou v této příručce dodržujeme.
4. Restartujte Raspberry Pi. Vaše rozhraní budou nyní začínat správným názvem.
Resetování konfigurace brány firewall
Dalším běžným problémem je špatně nakonfigurovaný firewall. V závislosti na konfiguraci vaší sítě může trvat několik pokusů, než bránu firewall napravíte. Pokud si kdykoli myslíte, že jste mohli pokazit konfiguraci brány firewall, spusťte od začátku následující příkazy:
sudo iptables --flush sudo iptables --tabulka nat --flush sudo iptables --delete-chain sudo iptables --tabulka nat --delete-chain
Toto bude smazáno Všechno konfigurace brány firewall. Nyní můžete začít od začátku konfigurovat bránu firewall. Jakmile jste spokojeni, spusťte příkaz sudo iptables-save | sudo tee /etc/iptables/rules.v4
aby byla konfigurace trvalá.
VIZ TÉŽ: Jak spouštět příkazy na Raspberry Pi e-mailem
Použijte svůj Raspberry Pi jako směrovač a filtr obsahu
To je vše, co změní váš Raspberry Pi na silný router a proxy pro filtrování obsahu. Přesné konfigurační soubory, které jsme použili pro naše nastavení, najdete na naší stránce GitHub. Dejte nám vědět, jak to pro vás funguje. Pokud něco nefunguje podle očekávání nebo je krok příliš matoucí, neváhejte se nás na něco zeptat v sekci komentáře níže.