2Sostituzione del BT Infinity SmartHub con pfsense

Quando mi sono trasferito in una nuova casa un anno fa sono stato finalmente in grado di aderire al 21st secolo e ha ordinato BT Infinity che viene fornito con uno SmartHub. Lo SmartHub è kit in realtà abbastanza decente considerando che viene fornito gratuitamente, ma come con la maggior parte ISP dispositivi forniti è bloccato, per certi versi, ad esempio non puoi usare il tuo DNS i server che preferisco fare. Nei primi giorni di ADSL (circa 2001) Ho eseguito una scatola a pareti lisce al posto di un router, e per una serie di motivi (compreso il filtraggio Internet controllato da me, piuttosto che un ISP) Ho deciso di tornare a un router firewall basato su Linux.

La piccola scatola Celeron J1900 che ho avuto a che fare dal punto di vista hardware non voleva installare smoothwall, così ho installato pfSense al posto. Ho anche dovuto prendere un VDSL (fibra) modem per collegare il router alla presa del telefono. Ho un netgear DM200 che in realtà è un router completo che può essere commutato in modalità "solo modem". Per far funzionare l'intero arrangiamento ci è voluto un po 'di tempo, quindi ho pensato di riunire tutte le risorse in un unico posto

1. Installazione di pfSense

Avevo bisogno di installare pfsense via USB, così efficacemente da flash drive. Ciò è stato reso possibile dall'uso di una pen drive vuota, software chiamato rufus, e il download "memstick" di pfsense.

2. Configurazione del DM200 netgear

Per fare qualsiasi cosa con il DM200 dovrai collegare entrambi un cavo LAN ad esso, e la presa del telefono. Il tuo PC dovrebbe ottenere un indirizzo dal netgear tramite DHCP, ma se non lo fa dovrai impostarti manualmente IP rivolgersi ad 192.168.5.x (x essere qualsiasi cosa da 2 - 254). È quindi possibile accedere tramite l'interfaccia Web all'indirizzo 192.168.5.1. Il nome utente di accesso predefinito è Admin e la password è password. Seleziona la scheda "Avanzate", e poi l'opzione di menu "avanzato" in basso a sinistra di quella pagina. Sotto quello seleziona l'opzione "modalità dispositivo". Modificare la modalità del dispositivo in "Modem (solo modem)"E fai clic su Applica. Puoi vedere maggiori dettagli e screenshot su pagine della guida di netgear

3. Effettua il login e cambiare la password di default

Collega la tua casella pfsense alla lan e connettiti ad essa utilizzando l'interfaccia web tramite la sua lan IP indirizzo (che verrà visualizzato nella schermata di avvio predefinita se si collega un display ad esso). Potrebbe essere necessario cambiare il tuo locale IP affrontare per raggiungere questo obiettivo. Accedi a pfsense con il nome utente Admin e password pfSense. Passare attraverso la procedura guidata di configurazione e, quando viene data l'opportunità, modificare la password webui predefinita. Per informazioni più dettagliate sui passaggi 1–3, consiglio a guida su tecmint

4. Configurazione della scatola pfSense per ottenere una connessione di base

Uso BT infinity e ottenere le giuste impostazioni si è rivelato più complicato di quanto avessi sperato. Ho dovuto prima configurare il file WAN impostazioni correttamente e successivamente, impostare il profilo corretto per WAN interfaccia. Primo, vai a interfacce: WAN e impostare la seguente.

Tipo di configurazione IPv4PPPoE
Tipo di configurazione IPv6Dkp6
Usa la connettività IPv4 come interfaccia principalebarrata
Richiesta solo un prefisso IPv6barrata
Dimensione delega prefisso DHCPv656
nome utentebthomehub@btbroadband.com
passwordqualsiasi valore funzionerà

Salvare le modifiche, e poi andare a interfacce: assegnazione. Impostare l' WAN interfaccia a "PPPOE ..." che dopo il salvataggio dovrebbe essere mostrata con l'interfaccia fisica tra parentesi - nel mio caso dice "PPPOE (em0)”. Salva di nuovo le modifiche e, si spera, otterrai una connessione.

4b. WAN MTU Valore

Nel WAN Impostazioni dell'interfaccia che potresti voler regolare l'impostazione MTU per funzionare in modo ottimale con BT Infinity per evitare pacchetti frammentati e possibile perdita di pacchetti. Ho scritto a [int­link id=“4002” type=“post”]articolo dedicato[/intlink] riguardo questo argomento.

5. IPv6 Testing

Le impostazioni precedenti dovrebbero essere sufficienti per far funzionare IPv6 sui client LAN: dovresti anche vedere un indirizzo IPv6 per l'interfaccia LAN pfsense (i.e. uno che non si avvia fe80). Prova a eseguire il ping di google.com da una finestra di terminale su un client LAN: se ricevi una risposta dall'indirizzo IPv6, va tutto bene. Puoi anche controllare che tutto ciò che ho corretto usando test-ipv6.com. Grazie alla Danneh per le impostazioni. Per ulteriori informazioni consiglio questo thread reddit.

È necessario un ulteriore aggiustamento per assicurarsi che IPv6 funzioni completamente, è necessario consentire i pacchetti ICMPv6 attraverso il firewall. Vai a Firewall, e poi Regole. Aggiungere una nuova regola, impostare la famiglia di indirizzi su IPv6, modificare il protocollo in ICMP, lasciare "any" selezionato come sottotipi (a meno che tu non voglia leggere molto di più su sottotipi specifici). Fare clic su Salva, e quindi fare clic su "Applica modifiche".

6. L'attivazione di Intel maggiore velocità-step

Non voglio che il mio router a bassa potenza funzioni sempre a piena velocità, ma purtroppo i doens di pfsense non sembrano supportare correttamente il passo di velocità avanzato Intel per impostazione predefinita al momento. Per far funzionare il mio (e una temperatura della CPU più bassa per andare con esso!) Ho dovuto consentire PowerD in Sistema -> Avanzate -> Varie -> Abilita PowerD. Se vuoi abilitare le frequenze più basse (altho questi non salvare molto potere) sarà inoltre necessario apportare le seguenti modifiche: vai a diagnostica, Modifica file. Quindi, immettere il percorso del file /stivale / device.hints. cambia il fondo 2 le voci dalla 1 a 0 (detto hint.acpi_throttle.0.Disabilitato e hint.p4tcc.0.Disabilitato). Grazie alla SecondEdge e dreamslacker per questi consigli. Per verificare che funzioni, dovrai accedere al router tramite SSH, selezionare l'opzione 8 (guscio) e corri dev.cpu sysctl. | grep freq. Questo ha portato la temperatura interna della mia CPU da 66 ° C a 57 ° C - non male per un minuscolo sistema senza ventole imballato accanto a un altro PC, il modem, e uno switch a 8 porte.

7. Port forwarding

Vai a firewall: NAT e quindi fare clic sul pulsante Aggiungi. Inserisci il IP indirizzo e porto di destinazione e (più probabilmente) la stessa porta per la porta esterna. Per informazioni più dettagliate consiglio un post di splurben sui forum pfSense.

8. NAT Riflessione

Uso il mio laptop sia a casa sulla LAN che fuori casa e in entrambi i casi voglio accedere a varie interfacce web sulla LAN. Uso DDNS per ottenere un nome di dominio e volevo usarlo per connettermi anche quando ero connesso alla LAN. Ciò richiede la riflessione NAT che può essere abilitata sotto sistema: Avanzate: Modalità NAT Reflection per port forward. Potresti (probabilmente) necessario abilitare anche 2 altre opzioni in questa pagina: Abilita NAT Reflection per 1:1 NAT e Abilita NAT automatico in uscita per Reflection

9. adblocking

Tutti i browser web del mio PC hanno installato il blocco degli annunci, ma lo stesso non si può dire dei miei dispositivi Android poiché questi devono essere rootati per installare i blocchi. Quindi essere in grado di bloccare gli annunci con pfsense è uno dei principali vantaggi del suo utilizzo. Primo, vai a sistema: gestore di pacchetti e quindi cercare pfblockerng e installarlo. È quindi possibile configurarlo utilizzando Firewall: PFBlockerNG. Ho quindi utilizzato la guida per FredMerc per configurarlo. Di seguito è riportato un breve riepilogo delle impostazioni che ho utilizzato. Vai a Firewall: PFBlockerNG e poi clicca sul DNSBL linguetta, e poi clicca sul Scheda DNSBL EasyList. Attiva il feed EasyList in alto e indirizzalo a EasyList. Quindi fare clic sul pulsante Aggiungi, e imposta il secondo feed EasyList su EasyPrivacy e attiva anche quello. L'azione dell'elenco dovrebbe essere "non associata" e ho impostato la frequenza di aggiornamento su 1 giorno. Fare clic su Salva. Poi vai al DNSBL scheda e abilitare l'opzione Abilita DNSBL. Infine andare al generale scheda e abilitare pfBlockerNG.

9b. correzioni di Adblock

La configurazione predefinita di PFBlockerNG causa problemi per l'app Android di Amazon. Per evitare questo, e altri problemi, vale la pena usare un po 'di whitelisting. Vai a Firewall: PFBlockerNG e poi clicca sul DNSBL linguetta, scorrere verso il basso per whitelist di domini personalizzati e inserisci quanto segue (grazie a bchow sui forum di pfsense)

.amazonaws.com
.amazon-adsystem.com
.amazon.com
.ssl.google-analytics.com
.ssl-google-analytics.l.google.com # CNAME per (ssl.google-analytics.com)
.www.google-analytics.com
.www-google-analytics.l.google.com # CNAME per (www.google-analytics.com)
.www.googleadservices.com
.plex.tv
.gravatar.com
.thetvdb.com
.themoviedb.com
.googleapis.com # 172.217.3.202 è importante per il funzionamento dell'app Amazon
.1e100.net # cname? altname? per googleapis.com
.ad.doubleclick.net # necessaria per lo scontro dei clan?
.g.doubleclick.net # necessaria per lo scontro dei clan?
.q1mediahydraplatform.com # necessaria per Hungryhouse android app?

Potresti anche voler abilitare la whitelist di alexa dei migliori siti.

10. Transparent proxy squid

Ho deciso di impostare un proxy squid trasparente poiché gran parte della navigazione che facciamo colpisce ripetutamente gli stessi siti su dispositivi diversi, Non mi aspetto che faccia una grande differenza, ma non vedo nessuna buona ragione per non farlo. Usa sistema: gestore di pacchetti installare calamari. Poi vai a servizi: server proxy squid per configurarlo. Questo è necessario anche per SquidGuard se vuoi usarlo, come faccio io.

11. Web filtering per la sicurezza dei bambini con SquidGuard

Ho bambini piccoli in casa e desidero bloccare i contenuti non adatti. Ciò può essere ottenuto con il pacchetto SquidGuard e le liste nere di Shalla. Installa squidguard da sistema: gestore di pacchetti. Poi vai a servizi: filtro proxy squidguard. Vai lista nera linguetta, inserire l'indirizzo https://www.shallalist.de/Downloads/shallalist.tar.gz e fare clic su scaricare. Quindi utilizzare la scheda ACL comune, fare clic sul pulsante più e selezionare le categorie che si desidera bloccare. È inoltre necessario impostare una categoria di destinazione fittizia a causa di un bug. Per ulteriori informazioni vedere questo post su forum pfsense. Non dimenticare di impostare l'impostazione predefinita per tutti gli elenchi su permettere in fondo agli elenchi. Grazie a networkinggeek su forum pfsense per questo suggerimento. Infine - potrebbe valere la pena modificare un paio di opzioni avanzate in modo che le richieste bloccate vengano memorizzate nella cache solo per un breve periodo di tempo - in questo modo se decidi di sbloccare alcuni siti non dovrai svuotare la cache del browser per accedere a quei siti - c'è ulteriori informazioni sul forum pfsense. Ho dovuto inserire la categoria nella whitelist[blk_BL_sex_lingerie] in modo che mia moglie potesse acquistare biancheria intima poiché il filtro bloccava le sezioni di biancheria intima sui rivenditori tradizionali (e.g. Debenhams).

12. Abilita U ‑ PNP per una gamma di servizi (gioco, messaggistica, torrente, eccetera)

Vai a Servizi: UPnP & NAT-PMP, spuntare la cima 2 scatole (Permettere UPnP & NAT-PMP e permettere UPnP Mappatura delle porte), e fare clic su Salva.

13. traffico dannoso blocco con SNORT

Per bloccare il rilevamento e il blocco del traffico potenzialmente dannoso è possibile installare il pacchetto SNORT. Consiglio di eseguirlo senza bloccare per le prime settimane in quanto bloccherà molte cose che non vuoi a causa di un gran numero di falsi positivi. Consiglio di utilizzare il seguente elenco di soppressione per evitare alcuni dei falsi positivi più fastidiosi

#E P2P Bittorrent P2P Client User-Agent (uTorrent)
sopprimere GEN_ID 1, sig_id 2011706
#E P2P Richiesta di annuncio_peers DHT BitTorrent
sopprimere gen_id 1, sig_id 2008585
#(spp_ssl) Client non valido HELLO dopo il server HELLO rilevato
sopprimere gen_id 137, sig_id 1
#E P2P Richiesta ping DHT BitTorrent
sopprimere gen_id 1, sig_id 2008581
#(http_inspect) RICHIESTA SEMPLICE
sopprimere gen_id 119, sig_id 32
#(http_inspect) METODO SCONOSCIUTO
sopprimere gen_id 119, sig_id 31
#(http_inspect) LUNGHEZZA DEL CONTENUTO NON VALIDO O DIMENSIONI CHUNK
sopprimere gen_id 120, sig_id 8
#(http_inspect) NO CONTENUTO-lunghezza o transfer-encoding IN HTTP RISPOSTA
sopprimere gen_id 120, sig_id 3
#(http_inspect) DOPPIO ATTACCO DI DECODIFICA
sopprimere gen_id 119, sig_id 2
#(http_inspect) HTTP RISPOSTA DECOMPRESSIONE GZIP NON RIUSCITA
sopprimere gen_id 120, sig_id 6
#(http_inspect) IIS CODICE UNICODE CODEPOINT
sopprimere gen_id 119, sig_id 7
#(http_inspect) BARE BYTE UNICODE ENCODE
sopprimere gen_id 119, sig_id 4
#(http_inspect) LIVELLI JAVASCRIPT di offuscamento SUPERI 1
sopprimere GEN_ID 120, sig_id 9
#(http_inspect) JAVASCRIPT WHITESPACES SUPERA IL MAX CONSENTITO
sopprimere gen_id 120, sig_id 10
#(http_inspect) SPAZIO IN senza caratteri di escape HTTP URI
sopprimere GEN_ID 119, sig_id 33
#(http_inspect) U ENCODING
sopprimere gen_id 119, sig_id 3
#(http_inspect) DOPPIO ATTACCO DI DECODIFICA
sopprimere gen_id 119, sig_id 2
#(http_inspect) CODIFICHE MULTIPLE ALL'INTERNO DI DATI OBFUSCATI JAVASCRIPT
sopprimere gen_id 120, sig_id 11
#(http_inspect) HTTP LA RISPOSTA HA IL CARATTERE UTF CHE NON È STATO NORMALIZZATO
sopprimere gen_id 120, sig_id 4
#Directshow FILE-IMMAGINE GIF tentativo di overflow della larghezza logica
sopprimere gen_id 1, sig_id 27525

14. Ottenere web-accesso al modem, attraverso la scatola pfsense

Il mio modem Netgear DM200 (in modalità pass-through) è accessibile solo tramite un fisso IP indirizzo (192.168.5.1). Volevo essere in grado di accedere alla sua interfaccia web sui computer LAN. Ci sono alcune istruzioni in pfSense wiki, ma all'inizio non funzionavano per me. C'è un post utile dell'utente Nonsense su forum pfsense

14b. Mostrando le statistiche di connessione del modem sul cruscotto pfSense

Dopo un po 'di headcratching ho trovato un modo per visualizzare le statistiche del modem per il mio modem netgear sulla mia dashboard.
Questo viene fatto creando un widget personalizzato con codice php.
Vai alla diagnostica e modifica il file. Crea un nuovo file nel percorso

/usr / local / www / widgets / widgets / modemstatus.widget.php

con i contenuti

< ?php $ status = file_get_contents("https://nome utente:password@192.168.5.1/RST_statistic.htm"); $status = str_replace("era TimeReset = "5\";","era TimeReset = "0\";",$stato); $ Echo Stato ?>

Sarà necessario personalizzare il nome utente e la password. Il codice sopra funziona per Netgear DM200, e probabilmente altri modem e router netgear. Per altre marche di hardware avrai bisogno di un indirizzo diverso per le statistiche e potresti dover fare una manipolazione aggiuntiva della risposta usando php.
Tieni presente che ho superato l'intervallo di aggiornamento netgear predefinito: l'ho disattivato quando il ricaricamento interrompe la visualizzazione del dashboard. Per ottenere numeri aggiornati basta aggiornare la dashboard di pfsense utilizzando il pulsante di ricarica del browser web
Ora vai alla dashboard e aggiungi il widget e hai finito.

15. Che fissa l'avviso di certificato quando si accede

Vedere questa guida

16. Chiedi firefox per usare locali DNS su HTTPS, invece di bypassare i nostri filtri (aggiunto aprile 2020)

In Servizi -> DNS risolvere
Aggiungi la seguente riga al campo "opzioni personalizzate" ...

server:locale-zone: "use-application-dns.net." always_nxdomain

17. Utilizzare il nome di dominio del box pfSense per le risorse bloccate invece di IP (aggiunto aprile 2020)

Servizi -> Filtro proxy SquidGuard -> ACL comune
Cambia "ReDirect Mode" in "ext url move (inserire URL)”
Nel campo "Informazioni di reindirizzamento" impostare "https://your-router-name / sgerror.php?url = 403% 20&a =% un&n = n%&i = i%&s = s%&t = t%&u =% u "

lascia un commento

2 Commenti

JJon

Guida fantastica dove lo colloco nelle regole fluttuanti?
È necessario un ulteriore aggiustamento per assicurarsi che IPv6 funzioni completamente, è necessario consentire i pacchetti ICMPv6 attraverso il firewall. Vai a Firewall, e poi Regole. Aggiungere una nuova regola, impostare la famiglia di indirizzi su IPv6, modificare il protocollo in ICMP, lasciare "any" selezionato come sottotipi (a meno che tu non voglia leggere molto di più su sottotipi specifici). Fare clic su Salva, e quindi fare clic su "Applica modifiche".

Pls continua a far arrivare le guide!!

rispondere
JSJon Scaife

Grazie per le informazioni aggiuntive. Avevo effettivamente abilitato i pacchetti ICMPv6 ma devo aver dimenticato che avevo quando l'ho scritto. Lo aggiornerò. Non sono sicuro a quale parte della guida si riferisca la tua prima domanda?

rispondere