2Substituir a BT Infinito SmartHub com pfsense

Quando me mudei para uma nova casa há um ano eu finalmente foi capaz de se juntar à 21st século e ordenou BT Infinito que é fornecido com um SmartHub. O SmartHub está kit realmente razoavelmente decente considerando que vem de graça, mas como com a maioria ISP dispositivos fornecidos ele é bloqueado em alguns aspectos, por exemplo, você não pode usar o seu próprio DNS servidores que prefiro fazer. Nos primeiros dias de ADSL (cerca de 2001) Eu corri uma caixa de paredes lisas no lugar de um router, e por uma gama de razões (incluindo filtragem de internet controlado por mim, em vez de um ISP) Eu decidi voltar a um roteador de firewall baseada em linux.

A caixa Celeron J1900 pouco que eu tenho que fazer o lado do hardware das coisas que não queria instalar smoothwall, então eu instalei pfsense vez. Eu também tinha que pegar um VDSL (fibra) modem para conectar o roteador à tomada de telefone. Eu tenho um DM200 netgear que é realmente um roteador completo que pode ser ligado em modo “única modem”. Obtendo o arranjo inteiro trabalhando levou algum mexer, então eu pensei que eu ia puxar todos os recursos em um só lugar

1. Instalando pfsense

I necessário para instalar pfsense via USB, tão eficazmente por unidade flash. Isto foi tornado possível pela utilização de uma unidade de caneta em branco, software chamado rufus, eo download ‘memstick’ de pfsense.

2. Configurando o DM200 netgear

Para fazer qualquer coisa com o DM200 você terá que conectar um cabo LAN a ele, e à tomada de telefone para ele. Seu PC deve ter um endereço da NETGEAR por DHCP, mas se não você precisará ajustá-lo manualmente IP abordar a 192.168.5.x (x sendo qualquer coisa de 2 - 254). Você pode então entrar no site através da interface web em 192.168.5.1. O nome de usuário de login padrão é administrador ea senha é senha. Selecione a aba “Avançado”, e, em seguida, a opção de menu “Avançado” na parte inferior esquerda da página. Sob que selecionar a opção “dispositivo de modo”. Alterar o modo de dispositivo para “Modem (modem única)”E clique em Aplicar. Você pode ver mais detalhes e imagens no NETGEAR páginas de ajuda

3. Login e alterar a senha padrão

Ligue sua caixa de pfsense à rede local e conectar a ele usando interface web via é lan IP endereço (que será exibido é padrão arranque tela se você conectar um monitor a ele). Você pode ter que alterar o seu local de IP abordar para alcançar este. Entre para o pfsense com o nome de usuário administrador e senha pfsense. Vá até o assistente de configuração e quando dada a oportunidade alterar a senha padrão webui. Para obter informações mais detalhadas sobre os passos 1-3 Eu recomendo um orientar sobre tecmint

4. Configurando a caixa de pfsense para obter uma conexão básica

Eu uso BT infinito e obter as configurações corretas provou mais complicado do que eu esperava. Eu tinha que primeiro configurar o WAN configurações corretamente e depois disso, definir o perfil correto para o WAN interface. Primeiro, vamos para Interfaces: WAN e defina a seguinte.

IPv4 tipo de configuraçãoPPPoE
IPv6 Tipo de configuraçãoDkp6
Use a conectividade IPv4 como interface paiassinalada
Solicitação somente um prefixo IPv6assinalada
tamanho DHCPv6 prefixo Delegação56
nome de usuáriobthomehub@btbroadband.com
senhaqualquer valor irá funcionar

Salve as alterações, e depois ir para Interfaces: atribuição. Defina o WAN interface para “PPPOE ...”, que depois de salvar deve mostrar com a interface física entre parênteses - no meu caso, ele diz que “PPPOE (em0)”. Salve as alterações novamente e, com sorte, você obterá uma conexão.

4b. WAN MTU Valor

No WAN configurações de interface que você pode querer ajustar a definição de MTU para trabalhar de forma otimizada com a BT Infinito para evitar pacotes fragmentados e possível perda de pacotes. Eu escrevi uma [int­link id=“4002” type=“post”]artigo dedicado[/intlink] nesse assunto.

5. Teste IPv6

As definições acima deve ser suficiente para obter IPv6 trabalhando em seus clientes LAN - você também deve ver um endereço IPv6 para a interface LAN pfsense (i.. um que não começar fe80). Tente fazer um ping google.com partir de uma janela de terminal em um cliente LAN - se você receber uma resposta a partir do endereço IPv6, em seguida, tudo está bem. Você também pode verificar que todos i correta usando test-ipv6.com. Graças à Danneh para as definições. Para mais informações Eu recomendo este fio reddit.

Existe mais um ajuste necessário para certificar-se de IPv6 funciona totalmente, você precisa permitir ICMPv6 pacotes através do firewall. Ir para Firewall, e depois Rules. Adicionar uma nova regra, definir a família de endereços para o IPv6, alterar o protocolo de ICMP, deixar “qualquer” selecionado como os subtipos (a menos que queira fazer muito mais leitura sobre subtipos específicos). Clique em Salvar, e clique em “Aplicar alterações”.

6. Permitindo Intel reforçada passo velocidade

Eu não quero que o meu roteador menor potência funcionando a todo vapor o tempo todo - mas, infelizmente pfsense doens't parecem apoiar corretamente intel reforçada patamar de velocidade por padrão no momento. Para ter o meu trabalho (e uma temperatura da CPU inferior para ir com ele!) A primeira vez que teve para permitir Powerd em System -> avançado -> Diversos -> Ativar powerd. Se você deseja ativar as frequências mais baixas (altho estes não economizar muito poder) você também precisará fazer as seguintes alterações: vamos para Diagnostics, Editar Arquivo. Em seguida, digite o caminho do arquivo /boot / device.hints. mudar o fundo 2 entradas de 1 para 0 (chamado hint.acpi_throttle.0.Desativado e hint.p4tcc.0.Desativado). Graças à SecondEdge e dreamslacker para estas dicas. Para verificar isso está funcionando, você precisará fazer login no roteador via SSH, selecione a opção 8 (concha) e corra dev.cpu sysctl. | freq grep. Isso levou meu cpu temperatura do núcleo de 66C para 57C - nada mau para um sistema fanless minúsculo embalado em ao lado de outro PC, a modem, e um interruptor de porta 8-.

7. encaminhamento de porta

Vamos para firewall: NAT e, em seguida, clique no botão Adicionar. Introduzir o IP endereço e porta para o destino e (provavelmente) a mesma porta para a porta externa. Para informações mais detalhadas, eu recomendo um post por splurben nos fóruns pfSense.

8. NAT Reflection

Eu uso o meu laptop em casa na LAN e longe de casa e em ambos os casos deseja acessar várias interfaces web na LAN. Eu uso DDNS para obter um nome de domínio e queria usar isso para conectar mesmo quando conectado à LAN. Isso requer reflexão NAT, que pode ser ativada em sistema: avançado: modo de reflexão NAT para a frente da porta. Você pode (provavelmente) necessário habilitar também 2 outras opções nesta página: Ativar NAT Reflection for 1:1 NAT e Ativar NAT de saída automática para Reflection

9. AdBlocking

Todos os meus webbrowsers PC têm adblocked instalado, mas o mesmo não pode ser dito dos meus dispositivos Android como estes têm de ser enraizada para instalar bloqueadores. Portanto, ser capaz de bloquear anúncios com pfsense é uma das principais vantagens da sua utilização. Primeiro, vamos para sistema: gerenciador de pacotes e, em seguida, procurar pfblockerng e instalá-lo. então você pode configurá-lo usando firewall: PFBlockerNG. Então, usei o guia por FredMerc configurá-lo. Um breve resumo das configurações que usei é a seguinte. Vamos para firewall: PFBlockerNG e, em seguida, clique no DNSBL aba, e, em seguida, clique no guia DNSBL EasyList. Ligue a alimentação EasyList superior e apontá-lo para EasyList. Em seguida, clique no botão Adicionar, e definir a segunda alimentação EasyList para EasyPrivacy e transformar isso em demasiado. ação lista deve ser “independente” e eu definir a frequência de actualização para 1 dia. Em seguida, clique em salvar. Então vá para o DNSBL guia e ative a opção Ativar DNSBL. Finalmente vá para o geral guia e permitir pfBlockerNG.

9b. correções Adblock

A configuração padrão PFBlockerNG causa problemas para o aplicativo android amazon. Para evitar isso, e outras questões, vale a pena usar alguns whitelisting. Vamos para firewall: PFBlockerNG e, em seguida, clique no DNSBL aba, desloque-se para whitelist domínio personalizado e inserir a sequência (graças a bchow nos fóruns pfSense)

.amazonaws.com
.amazon-adsystem.com
.amazon.com
.ssl.google-analytics.com
.ssl-google-analytics.l.google.com # CNAME para (ssl.google-analytics.com)
.www.google-analytics.com
.www-google-analytics.l.google.com # CNAME para (www.google-analytics.com)
.www.googleadservices.com
.plex.tv
.gravatar.com
.thetvdb.com
.themoviedb.com
.googleapis.com # 172.217.3.202 é importante para o aplicativo amazon funcionar
.1e100.net # cname? altname? para googleapis.com
.ad.doubleclick.net # necessário para confronto de clãs?
.g.doubleclick.net # necessário para confronto de clãs?
.q1mediahydraplatform.com # necessário para android app hungryhouse?

Você também pode querer permitir que o whitelist alexa dos principais locais.

10. proxy Squid transparente

Eu decidi criar um proxy Squid transparente tanto da navegação que fazemos atinge os mesmos locais repetidamente em diferentes dispositivos, Eu não esperava que fazer uma enorme diferença, mas eu não posso ver qualquer boas razões para não. Uso sistema: gerenciador de pacotes para instalar squid. Então vá para serviços: servidor proxy squid configurá-lo. Isto também é necessário para SquidGuard se você quiser usá-lo, como eu faço.

11. filtragem Web para a segurança infantil com SquidGuard

Eu tenho crianças pequenas em casa e deseja bloquear conteúdos inadequados. Isto pode ser conseguido com o pacote SquidGuard e listas negras de Shalla. Instale squidguard de sistema: gerenciador de pacotes. Então vá para serviços: filtro de proxy squidguard. Vou ao lista negra aba, digite o endereço https://www.shallalist.de/Downloads/shallalist.tar.gz e clique baixar. Em seguida, use a guia ACL comum, clique no botão de adição e selecione as categorias que deseja bloquear. É também necesary para configurar uma categoria alvo artificial devido a um bug. Para mais informações veja este post sobre fórum pfsense. Não se esqueça de definir o padrão para todas as listas de permitir na parte inferior das listas. Graças a networkinggeek na fóruns pfSense para esta ponta. Por último - pode valer a pena editar um par de opções avançadas para que os pedidos bloqueados só são armazenados em cache por um curto período de tempo - de que maneira se você decidir desbloquear alguns sites que você não terá que limpar o cache do navegador para acessar esses sites - há mais informações sobre o fórum pfsense. Tive que colocar a categoria na lista de permissões[blk_BL_sex_lingerie] para que minha esposa poderia comprar roupa interior como o filtro estava bloqueando as seções de cuecas no varejistas tradicionais (e.g. Debenhams).

12. Habilitar U-PNP para uma gama de serviços (jogos, Mensagens, torrente, etc)

Vamos para serviços: UPnP & NAT-PMP, assinale o topo 2 caixas (Permitir UPnP & NAT-PMP e Permitir UPnP Mapeamento porto), e clique em Salvar.

13. tráfego malicioso bloqueio com SNORT

Para bloquear detectar e bloquear o tráfego potencialmente malicioso que você pode instalar o pacote SNORT. Eu recomendo executá-lo sem bloquear para as primeiras semanas, uma vez que irá bloquear um monte de coisas que você não quer devido ao grande número de falsos positivos. Eu recomendo usar a seguinte lista de supressão para evitar alguns dos falsos positivos mais irritantes

#E P2P Bittorrent P2P Cliente User-Agent (uTorrent)
suprimir GEN_ID 1, sig_id 2011706
#E P2P Solicitação de anúncio de BitTorrent DHT
suprimir gen_id 1, sig_id 2008585
#(spp_ssl) HELLO do cliente inválido após o HELLO do servidor detectado
suprimir gen_id 137, sig_id 1
#E P2P Solicitação de ping do BitTorrent DHT
suprimir gen_id 1, sig_id 2008581
#(http_inspect) PEDIDO SIMPLES
suprimir gen_id 119, sig_id 32
#(http_inspect) MÉTODO DESCONHECIDO
suprimir gen_id 119, sig_id 31
#(http_inspect) COMPRIMENTO DE CONTEÚDO INVÁLIDO OU TAMANHO DO CHUNK
suprimir gen_id 120, sig_id 8
#(http_inspect) Nenhum conteúdo-comprimento ou transferência de codificação IN HTTP RESPOSTA
suprimir gen_id 120, sig_id 3
#(http_inspect) ATAQUE DE DECODIFICAÇÃO DUPLA
suprimir gen_id 119, sig_id 2
#(http_inspect) HTTP Falha na descompressão do RESPOSTA GZIP
suprimir gen_id 120, sig_id 6
#(http_inspect) IIS CODIFICAÇÃO DE CÓDIGO UNICODE
suprimir gen_id 119, sig_id 7
#(http_inspect) CODIFICAÇÃO DE UNICODE DE BARE BYTE
suprimir gen_id 119, sig_id 4
#(http_inspect) NÍVEIS JavaScript ofuscação SUPERA 1
suprimir GEN_ID 120, sig_id 9
#(http_inspect) AS ÁREAS DE JAVASCRIPT excedem o máximo permitido
suprimir gen_id 120, sig_id 10
#(http_inspect) ESPAÇO unescaped IN HTTP URI
suprimir GEN_ID 119, sig_id 33
#(http_inspect) U CODIFICAÇÃO
suprimir gen_id 119, sig_id 3
#(http_inspect) ATAQUE DE DECODIFICAÇÃO DUPLA
suprimir gen_id 119, sig_id 2
#(http_inspect) VÁRIAS CODIFICAÇÕES DENTRO DE DADOS OBFUSCADOS POR JAVASCRIPT
suprimir gen_id 120, sig_id 11
#(http_inspect) HTTP A RESPOSTA TEM CARTÃO UTF QUE NÃO FOI NORMALIZADO
suprimir gen_id 120, sig_id 4
#Directshow FILE-IMAGE GIF tentativa de estouro de largura lógica
suprimir gen_id 1, sig_id 27525

14. Obtendo web de acesso ao modem, através da caixa de pfsense

Meu modem DM200 Netgear (no modo de passagem) é apenas acessível através de uma fixo IP endereço (192.168.5.1). Eu queria ser capaz de acessar sua interface web em computadores de LAN. Existem algumas instruções no pfsense wiki, mas estes não funcionou para mim em primeiro lugar. Há um post úteis pelos Nonsense usuário no fórum pfsense

14b. Mostrando as estatísticas de conexão de modem no painel pfsense

Depois de alguns arranhões, descobri uma maneira de fazer as estatísticas do modem para o meu modem netgear serem exibidas no meu painel.
Isto é feito através da criação de um widget personalizado com código php.
Ir para diagnóstico e editar arquivos. Criar um novo arquivo no caminho

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

com o conteúdo

< ?php $ status = file_get_contents("https://nome de usuário:password@192.168.5.1/RST_statistic.htm"); $estado = str_replace("foi timereset = "5\";","foi timereset = "0\";",$estado); $ Estatuto echo ?>

Você vai precisar para personalizar o nome de usuário e senha. O código acima funciona para o DM200 Netgear, e, provavelmente, outros modems e roteadores NETGEAR. Para outras marcas de hardware que você vai precisar de um endereço diferente para as estatísticas e você pode precisar de fazer manipulação adicional da resposta usando php.
Note que eu over-montado o intervalo de atualização netgear padrão - Eu desliguei como a recarga quebra o painel de instrumentos. Para obter números atualizados, basta atualizar o painel do pfsense usando o botão de recarregar do navegador
Agora vá para o painel e adicione o widget e está tudo feito.

15. Fixação do aviso de certificado ao efetuar login

Vejo este guia

16. Pergunte firefox para uso local DNS através de HTTPS, em vez de contornar nossos filtros (adicionado abril de 2020)

Em Serviços -> DNS resolver
Adicione a seguinte linha ao campo "opções personalizadas" ...

servidor:locais da zona: "use-application-dns.net." always_nxdomain

17. Use o nome de domínio da caixa pfsense por recursos bloqueados em vez de IP (adicionado abril de 2020)

Serviços -> Filtro Proxy SquidGuard -> ACL comum
Mude o “Modo ReDirect” para “ext url move (entrar URL)”
No campo "Redirecionar informações", defina "https://seu roteador-name / sgerror.php?url = 403% 20&a =% de um&n =% n&i = i%&s =% s&t = t%&u =% u "

Deixe uma resposta

2 Comentários

JJon

Guia fantástico onde coloco isso em regras flutuantes?
Existe mais um ajuste necessário para certificar-se de IPv6 funciona totalmente, você precisa permitir ICMPv6 pacotes através do firewall. Ir para Firewall, e depois Rules. Adicionar uma nova regra, definir a família de endereços para o IPv6, alterar o protocolo de ICMP, deixar “qualquer” selecionado como os subtipos (a menos que queira fazer muito mais leitura sobre subtipos específicos). Clique em Salvar, e clique em “Aplicar alterações”.

Por favor, mantenha os guias vindo!!

Resposta
JSJon Scaife

Obrigado pela informação extra. Na verdade, eu havia habilitado pacotes ICMPv6, mas devo ter esquecido o que tinha quando escrevi isso.. Vou atualizá-lo. Não sei a qual parte do guia sua primeira pergunta se refere?

Resposta