AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1670816
Accepted
divB
divB
Asked: 2021-08-22 21:12:48 +0800 CST2021-08-22 21:12:48 +0800 CST 2021-08-22 21:12:48 +0800 CST

Filtro de pacotes (firewall) para uma rede /29

  • 772

Meu ISP roteia uma rede /29 (8 endereços IP). O primeiro e o último são, obviamente, o endereço de rede e de transmissão e o segundo é atribuído ao modem pelo ISP. O modem tem uma porta LAN Ethernet com a rede /29 que posso usar. Infelizmente não consigo acessar ou substituir o modem, apenas o ISP tem acesso a ele. Ele precisa ser tratado como caixa preta para essa discussão. Meu ponto final é a conexão LAN do modem que fornece a rede /29.

Claro, posso atribuir os 5 endereços IP restantes a diferentes máquinas e conectá-los ao modem através da porta Ethernet. Isto é o que estou fazendo agora.

No entanto, eu gostaria de ter um filtro de pacotes (Firewall) no meio. Normalmente, um firewall precisa de duas interfaces com duas sub-redes. Eu poderia tecnicamente dividir o /29 em duas redes /30 e colocar o firewall entre elas.

Outra opção seria atribuir todos os cinco IPs estáticos ao firewall e fazer NAT e encaminhamento de porta.

Uma terceira opção seria fazer todo o tráfego L2 passar pelo meu firewall, configurá-lo como uma ponte e usar filtragem L2 básica.

Nenhuma dessas opções me parece atraente.

Existe uma boa maneira de colocar um firewall na frente da minha rede IP sem exigir filtragem NAT ou L2?

networking ip
  • 2 2 respostas
  • 66 Views

2 respostas

  • Voted
  1. Best Answer
    user1686
    2021-08-23T00:27:54+08:002021-08-23T00:27:54+08:00

    Idealmente, todo o /29 estaria na interface "interna" do firewall, o próprio firewall seria conectado usando um /31 (ou /30) completamente separado e o ISP rotearia o /29 principal através do firewall. Vale a pena tentar ligar para o seu ISP e perguntar se eles podem fazer esse tipo de configuração "ponto a ponto".

    Se isso não for possível, finja usando proxy ARP no firewall. Desde que responda a consultas ARP ao roteador, ele receberá tráfego para esses endereços IP, mesmo que eles não estejam realmente configurados no firewall.

    Isso funciona com um firewall baseado em Linux (e a ideia geral deve funcionar com, por exemplo, OpenBSD), mas não há garantias sobre dispositivos:

    1. Configure a interface "interna" do firewall com um endereço do /29 como de costume.

      ip addr add 193.256.181.193/26 dev int0
      
    2. Configure a interface "externa" do firewall com o mesmo endereço, mas torne-a /32.

      No Linux, você pode usar o estilo de endereçamento "ponto a ponto", especificando o endereço do modem como "peer".

      ip addr add 193.256.181.193 peer 193.256.181.254/32 dev ext0
      

      Se isso não for possível, use um /32 regular e adicione separadamente uma rota "local" para o endereço do modem.

      ip addr add 193.256.181.193/32 dev ext0
      ip route add 193.256.181.254/32 dev ext0
      
    3. Adicione a rota padrão como de costume.

      ip route add default via 193.256.181.254 dev ext0
      
    4. Habilite o proxy-ARP na interface "externa". No Linux, você pode usar a implementação no kernel (ativada por meio do sysctl), ou um daemon de espaço de usuário ("parpd").

      Como a implementação no kernel me confunde muito, usar parpdera mais simples (e também porque no meu caso eu precisava configurar exceções para o proxy de toda a sub-rede, o que o parpd pode fazer, mas o kernel não), então aqui está um /etc/ parpd.conf:

      interface ext0
          # Make the ISP router think the entire subnet is still on-link
          proxy 193.256.181.192/26
          # But don't answer for the ISP router's own address
          ignore 193.256.181.254
      

      Você também pode habilitar o proxy ARP para a interface "interna", para que seus hosts de LAN configurados estaticamente possam simplesmente continuar tendo o endereço do roteador ISP como seu "gateway padrão" sem a necessidade de alterá-lo imediatamente em todos os lugares:

      interface int0
          # Make the LAN hosts think the ISP router is still on-link
          proxy 193.256.181.254
      

      A implementação do ARP do proxy no kernel no Linux pode ser encontrada sysctl net.ipv4.conf.ext0.proxy_arp[_pvlan]em ip neigh add .. proxy. (Depois de várias tentativas, ainda não sei exatamente se o último exige que o sysctl seja ativado ou se eles são ortogonais.)

      Observe que "proxy" neste caso não significa retransmitir as solicitações (embora isso também seja possível); em vez disso, o próprio firewall responderá em nome dos endereços proxy.

    5. Isso é tudo, agora é só tratar o firewall como um roteador padrão e escrever suas regras de iptables.

    A vantagem deste mecanismo (em comparação com, por exemplo, NAT ou ebtables brouting 1 ) é que, além da interface "externa" parecer um pouco estranha, seu firewall continua a funcionar como um roteador de camada 3 completamente padrão - proxy-ARP não altera o pacotes IP de qualquer forma, e quase alcança o mesmo resultado como se o ISP tivesse simplesmente roteado o /29 através do seu firewall.

    (O mesmo método também funciona com IPv6 usando proxy-NDP, mas esperamos que você não precise disso e possa apenas fazer com que o ISP o roteie corretamente, por exemplo, via DHCPv6-PD?)


    Observe que, mesmo em seu plano inicial de dividir o /29 em dois /30, o proxy-ARP continuaria sendo necessário porque o roteador do ISP não teria conhecimento da divisão – ele continuaria emitindo consultas ARP para todo o /29.

    Se a resposta for que você pode ligar para o ISP e pedir que eles ajustem o roteamento para que dois /30s possam ser usados... (nesse caso, eles atribuiriam um ponto a ponto /30 dedicado para o link modem-firewall).


    1 A ponte de software Linux suporta um recurso onde certos pacotes podem ser elevados para processamento L3 (roteamento/iptables), enquanto outros pacotes continuam a ser encaminhados pela ponte L2. Isso é usado por alguns dispositivos de firewall, como Untangle. É horrível e espero nunca mais vê-lo usado em uma rede.

    • 2
  2. dirkt
    2021-08-23T00:20:25+08:002021-08-23T00:20:25+08:00

    Normalmente, um firewall precisa de duas interfaces com duas sub-redes.

    O firewall também faria NAT conforme necessário, o que significa que apenas a sub-rede "externa" é seu /29, e a sub-rede "interna" é um intervalo de endereços privado, que pode ser tão grande quanto você quiser (por exemplo 10.0.0.0/8, ).

    E isso pode ser NAT "estático", então você pode ter 5 IPs internos e mapeá-los um a um em seus 5 IPs externos. Ou qualquer outra coisa que você gosta.

    Portanto, não há realmente nenhuma desvantagem em usar o NAT na sua situação. O NAT não está restrito ao "mapear toda a sub-rede interna para um único endereço IP", que é feito por padrão em roteadores domésticos.

    Existe uma boa maneira de colocar um firewall na frente da minha rede IP sem exigir filtragem NAT ou L2?

    Quer dizer, ou você fica em L2, então você precisa de filtragem L2, ou você vai para L3, então você precisa de roteamento e, portanto, NAT. Então vai ser um ou outro.

    Desperdiçar endereços IP externos para máquinas internas com firewall não é um bom uso de recursos caros, como endereços IP, apenas porque você "não gosta de NAT" (ou qualquer que seja o motivo).

    • 0

relate perguntas

  • A conexão do usuário ao servidor SFTP usando o FileZilla se recusa a conectar

  • É possível usar FTP sem sistema de arquivos no cliente?

  • Como funciona um NAT atrás de um NAT (NAT do roteador e NAT do ISP)?

  • Win10 1803: Como tornar o ponto de acesso móvel uma rede privada?

  • Como o nc identifica nomes de serviço

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve