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 / 1795957
Accepted
Sidney
Sidney
Asked: 2023-07-14 03:49:23 +0800 CST2023-07-14 03:49:23 +0800 CST 2023-07-14 03:49:23 +0800 CST

Por que minha ACL precisa ser configurada dessa maneira para conceder o acesso que desejo?

  • 772

Eu tenho uma rede secundária do meu roteador ER605, isso é usado para que o dispositivo conectado, um raspberry pi, possa ser isolado. Eu o uso para colocar em quarentena e digitalizar arquivos recebidos de fontes duvidosas (como meus sogros computadores perpetuamente afetados por malware). Preciso acessar o pi e exfiltrar arquivos digitalizados para minha rede principal. Pretendo usar o VNC para acesso e colocar arquivos ok'd diretamente no meu QNAP NAS via compartilhamento SMB.

A regra 5 da ACL bloqueia a comunicação da rede de quarentena para minha rede principal. Para obter o VNC para meu pi de quarentena da minha rede principal, inicialmente adicionei a regra 4, que era insuficiente (a leitura on-line sugeria que eu precisava de uma ACL para mensagens de retorno), então adicionei uma versão da regra 3 que fazia referência ao serviço VNC e que ainda falhou. Por capricho, tentei criar a definição de serviço VNC_duplex que troca a porta de origem e destino e alterar a regra nº 3 do serviço VNC para o duplex VNC, e viola VNC funcionou!

Estou muito feliz por isso estar funcionando, mas não tenho certeza do motivo ou se é seguro. Estou correto ao entender que a regra 3 da ACL permite que um script malicioso envie uma mensagem de qualquer porta no raspberry pi para a porta 5900 em qualquer dispositivo da minha rede principal? Qual é a maneira semântica de entender isso e poderia ser mais seguro?

Minha rede e VLANS:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Também configurei alguns intervalos de IP para descrever as áreas da minha rede às quais desejo segmentar/conceder acesso:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Meus tipos de serviço (os últimos quatro são personalizados por mim):

insira a descrição da imagem aqui

E finalmente meu ACL:

insira a descrição da imagem aqui

firewall
  • 1 1 respostas
  • 68 Views

1 respostas

  • Voted
  1. Best Answer
    u1686_grawity
    2023-07-21T02:33:08+08:002023-07-21T02:33:08+08:00

    a leitura online sugeria que eu precisava de uma ACL para mensagens de retorno), então adicionei uma versão da regra 3 que fazia referência ao serviço VNC e ainda assim falhou. Por capricho, tentei criar a definição de serviço VNC_duplex que troca a porta de origem e destino e alterar a regra nº 3 do serviço VNC para o duplex VNC, e viola VNC funcionou!

    Quando o Pi envia respostas para o seu computador, o Pi é a fonte.

    Não é apenas que os pacotes de 'retorno' tenham o endereço IP do Pi como o "IP de origem" - eles também têm o número da porta correspondente no lado do Pi como a "porta de origem".

    Connection:        192.168.0.PC:54321 <--> 192.168.2.10:5900
    
    Packets from PC:   src = 192.168.0.PC:54321, dst = 192.168.2.10:5900
    Packets from Pi:   src = 192.168.2.10:5900, dst = 192.168.0.PC:54321
    

    Todos os modelos de serviço originais em seu firewall são definidos apenas para a direção "para frente"; por exemplo, o modelo "VNC" corresponde a 5900 como a porta de destino – que, conforme explicado, corresponde apenas a pacotes que têm o servidor VNC como destino, mas não aos pacotes de 'retorno'.

    Estou correto ao entender que a regra 3 da ACL permite que um script malicioso envie uma mensagem de qualquer porta no raspberry pi para a porta 5900 em qualquer dispositivo da minha rede principal?

    Não. O que ele permite é o oposto – permite que um script envie uma mensagem da porta 5900 no raspberry pi para qualquer porta da sua rede primária. (O 'Source' em "Source Port = 5900" realmente significa a origem dos pacotes.)

    Como a porta de origem de uma conexão pode ser escolhida arbitrariamente (se desejado), isso significa que a rede primária está aberta a qualquer pessoa que saiba da existência dessa exceção; tudo o que eles precisam fazer é pedir ao sistema operacional para vincular uma conexão à porta local 5900. (Mas, por outro lado, como a porta de origem geralmente é aleatória e o intervalo começa bem além de 5900, qualquer pessoa que não saiba sobre essa exceção é improvável que o descubra por acidente.)

    Qual é a maneira semântica de entender isso,

    "Fonte" realmente significa a fonte do pacote individual , não de toda a conexão. (Na verdade, a porta quase poderia ser considerada parte do endereço da "camada de transporte" do pacote e, de fato, em vários outros protocolos não-IP, ela era literalmente parte do endereço.)

    Cada porta está associada a um endpoint específico, da mesma forma que cada endereço IP está associado a um endpoint específico – se você fizer uma conexão com o Pi, não espera que um pacote de 'retorno' do Pi ainda apareça o endereço IP do Pi como um "destino" e o mesmo se aplica aos números das portas.

    e poderia ser mais seguro?

    A abordagem usual é evitar totalmente tais ACLs reflexivas e usar um firewall dinâmico . A maioria dos roteadores é capaz de rastrear conexões ativas ("estados" ou "fluxos") – eles meio que precisam fazer isso se implementarem o típico 1:muitos NAT – e o filtro do firewall pode ter uma regra especial que permite qualquer pacote correspondente para uma conexão "estabelecida" (como em iptables/nftables), ou permitir tais pacotes implicitamente (como em pf).

    Parece que o ER603 ganhou suporte para ACLs com estado no firmware 2.1 . (As pessoas parecem estar dizendo que não funciona, no entanto.)

    Se você precisar usar ACLs sem estado, a abordagem alternativa é permitir apenas pacotes de 'retorno' que tenham o sinalizador TCP "ACK" definido. O pacote inicial de uma conexão TCP nunca tem esse sinalizador definido, enquanto todos os outros pacotes têm; basta ter uma única regra que permita pacotes TCP ACK em qualquer porta.

    Naturalmente, essa abordagem funciona apenas para TCP – você não pode fazer muito sobre UDP sem rastreamento de estado, exceto esperar que ninguém descubra o buraco que sua ACL reflexiva faz.

    Você também deve ter outra regra que permita pacotes de 'retorno' ICMP também (por exemplo, resposta de eco e as várias mensagens de 'erro' ICMP - no mínimo "Fragmentação necessária" precisa ser permitida, mas preferencialmente outros erros como "Inalcançável" devem ser permitido também).

    • 3

relate perguntas

  • O Firewall do Windows bloqueia a solicitação de carimbo de data/hora ICMP (tipo 13) por padrão?

  • Sintaxe para perfis de aplicativos ufw, especificamente para definir interfaces e endereços IP

  • É possível bloquear a exibição de todo o conteúdo carregado de algum local? [fechado]

  • Por que o firewall do Windows não está bloqueando o acesso VNC de entrada?

  • como configurar nfs e iptables

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
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • 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
    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