Odporúčaná, 2019

Redakcia Choice

Ako používať Raspberry Pi ako smerovač a obsahový filter

Ak máte deti doma, možno ste cítili potrebu zablokovať určité nežiaduce webové stránky. Ďalšou bežnou problémovou oblasťou sú webové stránky sociálnych médií - môžete mať pocit, že deti (a dospelí) strácajú príliš veľa času na Facebooku, Twitteru atď. A chcú ich zablokovať alebo aspoň sprístupniť ich iba v určitých časových intervaloch.

Aby to bolo možné, potrebujeme router a filter obsahu - zariadenie, prostredníctvom ktorého sa všetky zariadenia, ako sú napríklad prenosné počítače, smartfóny a tablety, pripájajú k internetu. Tento prístroj tiež zachycuje webové stránky, na ktoré tieto zariadenia pristupujú, a blokuje ich, ak sa pokúšajú pristupovať na internetovú stránku na čiernej listine.

Existujú komerčné, pripravené na použitie filtre obsahu, ktoré sú k dispozícii na trhu, ale pre nás typy DIY, v tom nie je žiadna zábava. Takto sa dostaneme do rúk špinavých rúk a na túto prácu zriadime Raspberry Pi. Vybrali sme Raspberry Pi pre tento projekt kvôli jeho malej veľkosti a zanedbateľnej spotrebe energie. Tieto pokyny však budú pracovať takmer nemodifikované s takmer ľubovoľným počítačom s Debian Linuxom alebo s derivátom (Ubuntu, Mint atď.).

Odmietnutie zodpovednosti : Táto príručka predpokladá strednú úroveň skúseností s Linuxom a ochotu riešiť problémy, ak a kedy vzniknú. Predchádzajúce skúsenosti s príkazovými riadkami a firewallmi sú bonusom.

Ako to funguje

technické vybavenie

Budeme používať Raspberry Pi 3 ako filtrovanie obsahu pre router. Na to budeme potrebovať dve sieťové rozhrania - jedno pre pripojenie k internetu a druhé pre fungovanie ako hotspot WiFi pre ďalšie zariadenia, s ktorými sa dá pripojiť. Raspberry Pi 3 má vstavaný konektor Ethernet a WiFi modul. Takže v tomto scenári môžeme použiť ethernetový kábel ( eth0 ) na pripojenie k internetu, zatiaľ čo WiFi modul ( wlan0 ) bude fungovať ako hotspot.

Samozrejme, nie je vždy možné pripojenie na internet pomocou siete Ethernet. V tomto prípade budete potrebovať kompatibilný USB kľúč WiFi ( wlan1 ) na pripojenie k internetu, zatiaľ čo zabudovaný modul WiFi ( wlan0 ) bude fungovať ako hotspot. Toto je konfigurácia, ktorú použijeme v tejto príručke.

Majte na pamäti, že zatiaľ čo Raspberry Pi 3 je väčšinou vhodný pre domáce nastavenie s niekoľkými prenosnými počítačmi a smartphonmi, neposkytuje výkon potrebný pre veľké kancelárske nastavenie . Pozrite sa na viac schopného hardvéru, ak sa k vášmu filtrovaniu obsahu pripája veľa klientov.

softvér

Budeme používať vynikajúci E2guardovský na zachytenie a filtrovanie našich webových požiadaviek. Vzhľadom k tomu, že filtrovanie obsahu môže mať vplyv na výkon (v závislosti od veľkosti zoznamu blokov), použijeme vyrovnávaciu pamäť Squid, aby sme kompenzovali tento výkonový hit.

predpoklady

1. Raspberry Pi 3 s najnovšou verziou Raspbian OS nainštalovaným a prístupom na internet. Ak začínate len s Raspberry Pi, odporúčame si prečítať náš návod, ako začať s Raspberry Pi 3.

2. [Voliteľné] USB WiFi Dongle - Toto je potrebné, ak a len ak nemôžete pripojiť váš Raspberry Pi 3 na internet pomocou ethernetového kábla. Ak plánujete používať pripojenie WiFi ako pre pripojenie k internetu, tak aj ako hotspot, je to potrebné.

3. Fyzický prístup k Raspberry Pi - Vzhľadom na povahu tohto článku môže jedna chyba v konfigurácii firewallu zablokovať vás z Pi, ak ho používate v bezhlavnom režime. Preto sa odporúča pripojiť monitor, klávesnicu a myš počas ich konfigurácie, až kým nie je nastavené všetko.

Použite Raspberry Pi ako smerovač

1. Pripojte svoj Pi k internetu pomocou Ethernetu ( eth0 ). Ak používate miesto USB WiFi dongle (pravdepodobne wlan1 ), pripojte ho k internetu. Ponechajte vstavaný modul WiFi ( wlan0 ) tak, ako je to teraz.

2. Získajte nevyhnutný softvér, ktorý potrebujeme:

 sudo apt nainštalovať iptables iptables-persistent hostapd dnsmasq squid3 

3. hostapd, aby náš Pi mohol fungovať ako hotspot WiFi . Za týmto účelom vytvorte konfiguračný súbor pomocou obľúbeného textového editora, napríklad sudo nano /etc/hostapd/hostapd.conf a vložte obsah z našej stránky GitHub.

Niektoré riadky, ktoré by ste mohli chcieť upraviť podľa chuti, sú:

 ssid = RaspberryPiAP 

Tento riadok určuje, aký bude názov prístupového bodu. Vybral som RaspberryPiAP .

 wpa_passphrase = beebom.com 

Toto určuje prístupovú frázu, ktorá sa používa na prístup k hotspotu. Použil som beebom.com, ale odporúčame ho zmeniť na silnú prístupovú frázu podľa vášho výberu.

4. Ďalej nastavíme DHCP server pomocou dnsmasq . Upravte konfiguračný súbor /etc/dnsmasq.conf a do konca pridajte nasledujúce riadky:

[Zdrojové kódy] interface = lo, wlan0

ne-DHCP interface = lo

DHCP rozsah = 192.168.8.20, 192.168.8.254, 255.255.255.0, 12h [/ zdrojových]

Tým je rozhranie wlan0 (zabudovaný modul WiFi) wlan0 adresy IP klientom v rozsahu 192.168.8.20192.168.8.254 .

5. Nastavte statickú adresu IP pre vstavaný modul WiFi wlan0 . Otvorte súbor /etc/network/interfaces . Pravdepodobne to vyzerá takto (dôraz na mňa):

[zdrojový kód] zdrojový adresár /etc/network/interfaces.d

auto lo
ak loace loopback

iface et0 inet manuál

allow-hotplug wlan0
iface wlan0 inet manuál
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

povoliť-hotplug wlan1
iface wlan1 inet manuál
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Tu nájdite riadky tučným písmom, ktoré sa zaoberajú wlan0, a zmeňte ich tak, aby súbor vyzeral takto:

[zdrojový kód] zdrojový adresár /etc/network/interfaces.d

auto lo
ak loace loopback

iface et0 inet manuál

allow-hotplug wlan0
ak nie je statický
hostapd /etc/hostapd/hostapd.conf
adresa 192.168.8.1
sieťová maska ​​255.255.255.0
povoliť-hotplug wlan1
iface wlan1 inet manuál
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Tým sa nastaví statická IP adresa 192.168.8.1 na wlan0. Pamätajte na túto adresu, pretože toto je adresa, ktorú budeme používať na komunikáciu s naším Raspberry Pi neskôr .

6. Teraz nastavte presmerovanie IP . Upravte súbor /etc/sysctl.conf a pridajte nasledujúci riadok:

 net.ipv4.ip_forward = 1 

7. Teraz budeme nakonfigurovať preklad sieťových adries (NAT) do nášho firewallu. Za týmto účelom zadajte nasledujúce 2 prí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 

Prvý príkaz nastaví NAT, zatiaľ čo druhý príkaz uloží našu súčasnú konfiguráciu brány firewall do súboru s názvom /etc/iptables/rules.v4 . Toto zabezpečuje, že konfigurácia pretrváva počas reštartov.

8. V tomto okamihu reštartujte svoj Raspberry Pi . Toto je, aby sme sa uistili, že všetky zmeny, ktoré sme vykonali v konfiguračných súboroch, sú funkčné.

9. Po reštarte by ste mali vidieť novovytvorený hotspot RaspberryPiAP (pokiaľ ste nezmenili meno v kroku 3) na iných zariadeniach, ako sú prenosné počítače a smartphony. Môžete sa k nemu pripojiť pomocou zadaného hesla a mať prístup na internet.

To je všetko, čo musíte urobiť, ak potrebujete základný, nízko napájaný smerovač. Ak chcete nastaviť aj filter obsahu, prečítajte si ho ďalej.

Nastaviť filter obsahu pomocou E2guardian

E2guardian nie je prítomný vo východiskových archívoch Raspbian. Ak ho chcete nainštalovať, prejdite na stránku Github projektu a stiahnite súbor, ktorý končí v armhf.deb . Teraz otvorte Terminál, prejdite do priečinka Súbory na prevzatie (alebo kamkoľvek si vyberiete súbor) a nainštalujte ho:

 cd ~ / Súbory na stiahnutie sudo dpkg -i ./e2guardian_*_jessie_armhf.deb 

Budete pravdepodobne vidieť niekoľko chýb týkajúcich sa chýbajúcich balíkov pri inštalácii E2guardian. Ak chcete túto nápravu vykonať, nechajte inštaláciu dokončiť a zadajte nasledujúci príkaz:

 sudo apt-get nainštalovať -f 

Používanie zoznamov obsahu

V adresári /etc/e2guardian/lists je niekoľko zoznamov. Tieto súbory obsahujú bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, zoznam výnimiek a ďalšie. Tieto súbory sú správne zdokumentované s komentármi. Pozrite sa na nich, aby ste sa zoznámili sami.

Predstavme si napríklad, že chcete zablokovať niektoré populárne sociálne siete . Otvorte súbor /etc/e2guardian/lists/bannedsitelist a pod Blanket SSL / CONNECT blok (pretože tieto webové stránky používajú https namiesto obyčajného http ), pridajte nasledujúce riadky:

 facebook.com twitter.com reddit.com 

Teraz znova načítajte službu E2guardian pomocou príkazu sudo service e2guardian reload ( tento príkaz budete musieť spustiť vždy, keď zmeníte konfiguračné súbory ). Klienti používajúci filter obsahu nebudú môcť získať prístup na tieto webové stránky. Aj mobilné stránky (napr. M.twitter.com) a dedikované aplikácie pre smartfóny nebudú fungovať.

E2guardian tiež zablokuje pornografiu . Ak si to chcete dovoliť (hej, nerozhodujeme), otvorte súbor /etc/e2guardian/lists/bannedphraselist a nájdite nasledujúci riadok:

 .Include 

Komentujte to tak, že pridáte hash (# symbol) do prednej časti, aby to vyzeralo takto:

 # .Include 

Opätovne načítajte konfiguráciu pomocou sudo service e2guardian reload a skončíte.

Konfigurácia klientov

Teraz, keď je náš proxy server nastavený, môžeme prejsť na konfiguráciu klientov. Ak chcete použiť filter obsahu, všetci klienti musia byť pripojení k hotspotu služby Rapberry Pi a nakonfigurovaní na používanie servera proxy. Konfigurácia servera proxy sa líši vo všetkých operačných systémoch a zariadeniach. Ukážeme však, ako ho nastaviť v systéme Windows a Android, pretože sú viac populárne.

windows

Prejdite na položku Ovládací panel> Sieť a Internet> Možnosti siete Internet . V okne, ktoré sa otvorí, prejdite na kartu Pripojenia a kliknite na nastavenia LAN .

Tu kliknite na položku Rozšírené a zadajte adresu 192.168.8.1 ako adresu proxy a 8080 ako port. Uistite sa, že je začiarknuté políčko Použiť rovnaký proxy server pre všetky protokoly . Kliknite na tlačidlo OK .

To je všetko, čo musíte urobiť. Najobľúbenejšie webové prehliadače, ako sú prehliadače Google Chrome a Firefox, automaticky vyberú nastavenia servera proxy.

Android

Prejdite do časti Nastavenia systému> WiFi . Teraz klepnite a podržte prúžok Raspberry Pi hotspot a vyberte položku Modify network . V časti Rozšírené možnosti nastavte možnosť Proxy na možnosť Manuálne . Teraz pod hostiteľským serverom Proxy zadajte adresu IP Pi 192.168.8.1 . V Proxy portu zadajte 8080 a klepnite na Save .

Teraz môžete otestovať konfiguráciu servera proxy. Pokúste sa navštíviť webové stránky vo vašej čiernej listine - uvidíte stránku "Prístup zakázaný" takto:

Vynucovanie používania proxy

Doteraz sme sa spoliehali na to, že hráči pekne hrajú a používajú internet prostredníctvom filtra obsahu. Samozrejme, toto sa zriedkavo stáva v reálnom svete. Ak chcete vynútiť všetkým klientom prejsť cez proxy, spustite nasledujúce príkazy:

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

Týmto sa automaticky presmeruje všetka návštevnosť http (port 80) a https (port 443) na hotspot maliny Pi na proxy filtrovania obsahu. Teraz, bez konfigurácie nastavení servera proxy na vašich zariadeniach, nebudú mať prístup k zabezpečeným webovým stránkam typu https, ako sú Facebook, Gmail, Twitter atď. Tým sa zabezpečí, že ktokoľvek, kto sa chce pripojiť k vášmu hotspotu Pi, musí prejsť prostredníctvom proxy servera.

To je všetko, čo potrebujete vedieť pre základné použitie filtra obsahu. Ak sa chcete dozvedieť niektoré pokročilé funkcie, prečítajte si ďalej.

Pokročilé scenáre používania

Nastavenie filtra založeného na čase

Povedzme, že chcete zablokovať webové stránky, ktoré sme uviedli v sekcii Používanie zoznamov obsahov vyššie, ale iba v určitých časových intervaloch dňa . Osobne radšej blokujem Reddit, Facebook a Twitter počas pracovných hodín (9:00 - 17:00) v pracovných dňoch, pretože sú produkčnou nočnou morou.

Otvorte súbor /etc/e2guardian/lists/bannedsitelist a pridajte nasledujúci riadok:

 čas: 9 0 17 0 01234 

Táto linka funguje takto - časovač začína od 9 (9 hodín) 0 (00 minút), do 17 ( 17 hodín v 24-hodinovom formáte) 0 (00 minút), od 0 (pondelka) do 4 (piatok).

Zoberme si ďalší príklad:

 čas: 10 30 20 45 024 

Toto zablokuje nakonfigurované stránky od 10:30 do 10:30 do 20:45 v pondelok (0), v strede (2) a v piatok (4).

Povoliť určité adresy IP obísť Proxy

Je možné nechať určité adresy IP obísť filter obsahu. Toto možno nastaviť konfiguráciou brány firewall . Možno ste si všimli, že v našom dnsmasq.conf len hotspot na priradenie klientom adresám IP z 192.168.8.20 na 192.168.8.254 . To znamená, že adresy od 192.168.8.2 do 192.168.8.19 nebudú automaticky priradené žiadnemu klientovi (nemôžeme použiť 192.168.8.1, pretože to je to, čo náš Raspberry Pi sám používa).

Najprv nastavte statickú adresu IP na zariadení, ku ktorému chcete poskytnúť úplný prístup. Napríklad na nastavenie statickej IP adresy 192.168.8.2 na počítači so systémom Windows použite tieto nastavenia:

Teraz, na svojom Raspberry Pi, spustite nasledujúce príkazy.

 sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 -destinačný port 80 -j RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 -destinačný port 443 -j RETURN 

Teraz zakážte používanie servera proxy v zariadení a skúste otvoriť zakázanú webovú stránku. Mali by ste ju otvoriť. Ak existuje viac adries IP, ktoré chcete pridať do zoznamu povolených adries, spustite znova tieto dva príkazy, ale nahraďte adresu IP požadovanou. Akonáhle ste spokojní s whitelistom, spustite nasledujúci príkaz na uloženie konfigurácie brány firewall:

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

Jedna dôležitá vec, ktorú je potrebné mať na pamäti, je, že by ste nemali nikomu umožniť vedieť adresy IP s povolenými adresami. V opačnom prípade môžu jednoducho nastaviť svoje zariadenie na túto adresu IP, aby obišla server proxy.

Bezpečnostné obavy

Keďže vaša Raspberry Pi bude vstupným a výstupným bodom pre vašu komunikáciu, je dôležité ho zabezpečiť. Tu je niekoľko tipov, ako zlepšiť bezpečnosť. Majte na pamäti, že ide len o základné ukazovatele a nie o komplexný zoznam bezpečnostných úskalí. Výška zabezpečenia závisí od charakteru vašej siete (doma, malá kancelária atď.) A od toho, aké znechutené sú používatelia.

Zakázať nepotrebné služby

Keďže ide o smerovač, najlepšie je len spustenie služieb, ktoré požadujeme. Ďalšie spustené služby znamenajú viac zraniteľností, ktoré môžu byť potenciálne zneužité. Určite tento systém nepoužívajte ako bežnú pracovnú plochu .

Prejdite na položku Menu> Predvoľby> Konfigurácia maliny Pi . Na karte Rozhranie zakážte všetky služby, ktoré nevyžadujete.

Zmeňte predvolené heslo

Nová inštalácia Raspbian je dodávaná s predvoleným heslom 'malina' pre predvoleného používateľa 'pi'. Odporúča sa to zmeniť na bezpečnejšie heslo. Ak to chcete zmeniť, otvorte terminál spustite tento príkaz:

 passwd 

Odstráňte monitor a ďalšie periférne zariadenia

Vzhľadom na to, že všetko, čo bude fungovať na tomto Pi, je softvér potrebný na používanie ako smerovač a webový filter, nepotrebujeme monitor alebo iné periférne zariadenia, ako napríklad myš a klávesnicu, ktoré sú k nemu pripojené. Ak potrebujete zmeniť nastavenia, môžete vždy používať protokol SSH alebo podľa potreby pripevniť monitor a klávesnicu.

Vypnite automatické prihlásenie

Služba Raspbian je nastavená tak, aby sa automaticky prihlásila pomocou používateľských poverení "pi" bez výzvy na zadanie hesla. To môže byť v poriadku pre rodinnú plochu pre všeobecné účely, ale pre smerovač je nebezpečné. Ak chcete túto funkciu zakázať, prejdite na pracovnú plochu Raspbian na položku Menu> Predvoľby> Konfigurácia maliny Pi . Na karte Systém, pred hlavičkou Automatické prihlásenie, zrušte začiarknutie políčka Prihlásiť sa ako používateľ 'pi' .

V tom istom dialógovom okne je tiež vhodné nastaviť nastavenie Boot na možnosť CLI . Tým ušetríte zdroje, pretože na smerovači nepotrebujeme grafické rozhranie. Ak chcete z akéhokoľvek dôvodu používať pracovnú plochu, prihláste sa pomocou svojho používateľského mena a spustite príkaz startx a zapnite grafické rozhranie.

Riešenie problémov s bežnými problémami

Rozhrania sa stále menia

To je veľmi časté, ak používate dve bezdrôtové rozhrania na vašom Pi. Ak používate sieť Ethernet na pripojenie zariadenia Pi na internet, túto časť môžete bezpečne ignorovať . Problém je, že aj bezdrôtové rozhrania ( wlan0 a wlan1 ) niekedy vymieňajú názvy po reštarte. To znamená, že vstavaný modul WiFi wlan0 sa premenuje na wlan1 a naopak. To je samozrejme veľký problém, pretože sa spoliehame na to, že máme konzistentné meno pre naše konfiguračné súbory. Tu je postup, ako to urobiť konzistentné počas reštartovaní:

1. Zistite MAC adresu vašich rozhraní . Spustite príkaz ifconfig | grep HWaddr ifconfig | grep HWaddr na vašom ifconfig | grep HWaddr Pi. Uvidíte výstup podobný nasledujúcemu:

Poznamenajte si text napravo od slova "HWaddr" v sekcii wlan0 a wlan1 . Môžete bezpečne ignorovať sekciu eth0 . Toto sú MAC adresy vašich bezdrôtových rozhraní.

Ak si nie ste istí, ktorá MAC adresa patrí ku ktorému rozhraniu, jednoducho odpojte USB WiFi dongle a spustite príkaz znova. Wlan rozhranie, ktoré príde teraz je vaše vstavané WiFi rozhranie, zatiaľ čo druhý je USB.

2. Vytvorte nový súbor /etc/udev/rules.d/10-network.rules pomocou vášho obľúbeného textového editora. Napríklad :

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

3. Do tohto súboru zadajte nasledujúci text. Nahraďte xx: xx: xx: xx atď. S príslušnou adresou MAC :

[sourcecode] # Nastavte vstavaný modul WiFi ako wlan0. Nahraďte xx: xx: xx atď
# vstavaná MAC adresa modulu
SUBSYSTEM == "net", ACTION == "pridať", ATTR {adresa} == "xx: xx: xx: xx: xx: xx", NAME = "wlan0"

# Nastavte USB WiFi dongle ako wlan1. Nahraďte yy: yy: yy atď
# MAC adresu USB dongle
SUBSYSTEM == "net", ACTION == "pridať", ATTR {adresa} == "yy: yy: yy", NAME = "wlan1" [/ sourcecode]

Uistite sa, že vstavaná adresa MAC rozhrania MAC zodpovedá wlan0 a USB WiFi wlan1, pretože to je konvencia, ktorú sledujeme v tejto príručke.

4. Reštartujte svoju malinu Pi. Vaše rozhrania začnú správnym názvom.

Obnovenie konfigurácie brány firewall

Ďalším bežným problémom je nesprávne nakonfigurovaná brána firewall. V závislosti od konfigurácie siete môže trvať niekoľko pokusov ešte predtým, ako dostanete správnu bránu firewall. Ak v ktoromkoľvek momente myslíte, že ste mohli narušiť konfiguráciu brány firewall, spustite od začiatku nasledujúce príkazy:

 sudo iptables - flush sudo iptables --table nat --flush sudo iptables --delete-reťazec sudo iptables --table nat --delete-chain 

Tým sa odstráni konfigurácia brány firewall. Teraz môžete začať konfigurovať firewall od začiatku. Akonáhle ste spokojní, spustite príkaz sudo iptables-save | sudo tee /etc/iptables/rules.v4 sudo iptables-save | sudo tee /etc/iptables/rules.v4, aby bola konfigurácia trvalá.

Používajte Raspberry Pi ako smerovač a filter obsahu

To je všetko na tom, že vaša Raspberry Pi sa stáva silným smerovačom plus proxy filtrovania obsahu. Presné konfiguračné súbory, ktoré sme použili pre naše nastavenie, môžete získať na našej stránke GitHub. Dajte nám vedieť, ako to funguje pre vás. Ak niečo nefunguje podľa očakávania alebo krok je príliš mätúci, neváhajte nás položiť otázku v sekcii komentárov nižšie.

Top