+ Responder ao Tópico



  1. #85

    Padrão

    Citação Postado originalmente por inquiery Ver Post
    Boa noite

    Para isso coloquei aquela box lá na direita em cima, "Calcular Netmaps". Se você precisar identificar o cliente, você digita o IP público externo e a porta de origem da conexão, e clica em "Calc", e o programa vai calcular o IP privado que utiliza aquele IP público na porta que vc informou.

    Por exemplo, você recebe um e-mail do CERT informando que alguém ta com um malware (comum receber esses e-mails), e o e-mail do CERT ele vai te informar a data e hora, o IP público de origem/destino e a porta de origem/destino.

    algo assim:
    Código :
    ======================================================================
    Formato: "asn","ip","timestamp","malware","src_port","dst_ip","dst_port","dst_host","proto"
     
    "626262","4.100.200.6","2019-07-25 00:12:07","necurs","2724","181.182.183.184","80","","tcp"
    "626262","4.100.200.6","2019-07-28 21:25:14","necurs","2754","181.182.183.184","80","","tcp"
    ======================================================================

    Você vai colocar ali no programa, na caixa de "Calcular Netmaps", no campo "Público", o IP de origem, que é neste caso 4.100.200.6 e a porta de origem, que neste caso foram as 2724 e 2754 (digite uma porta por vez, pois cada linha é um registro de conexão que tem que ser pesquisado individualmente), e clica em Calc. Logo abaixo, vai aparecer um resumo que vai informar qual o IP privado que utiliza aquele IP público naquela porta de origem.

    Com a informação do IP privado e a data e hora da conexão, vc vai pesquisar no seus logs de conexão qual estava utilizando aquele IP privado naquele momento.

    Boa tarde.

    Como funciona a lógica deste cálculo?

    É algo como: Os primeiro ipv4 privado, para as primeiras portas dos primeiro ipv4 público?

  2. #86

    Padrão Re: Script CGNAT

    Citação Postado originalmente por viniciusmoll Ver Post
    Boa tarde.

    Como funciona a lógica deste cálculo?

    É algo como: Os primeiro ipv4 privado, para as primeiras portas dos primeiro ipv4 público?
    Bom dia,

    A lógica é a do netmap mesmo, considerando que ele vai fazer isso em um range de portas.
    Por exemplo, pegamos varios IPs privados, e traduzimos sempre no mesmo IP público, mas em ranges de portas diferentes.

    100.64.0.0/24 traduzido para xxx.yyy.zzz.0/24

    Neste caso, são 256 endereços privados, traduzidos nos respectivos endereços de rede no bloco público, de forma "binária", ou seja:
    100.64.0.0 = xxx.yyy.zzz.0
    100.64.0.1 = xxx.yyy.zzz.1
    100.64.0.2 = xxx.yyy.zzz.2
    100.64.0.3 = xxx.yyy.zzz.3
    e assim por diante.

    Claro que essa é uma forma facil de vizualizar, mas por exemplo:

    100.64.0.128/25 traduzido para xxx.yyy.zzz.0/25. É a mesma coisa, o primeiro endereço da rede 100.64.0.128/25 será traduzido para o primeiro endereço da rede xxx.yyy.zzz.0/25, o segundo endereço de 100.64.0.128/25 para o segundo de xxx.yyy.zzz.0/25, e assim por diante:

    100.64.0.128 = xxx.yyy.zzz.0
    100.64.0.129 = xxx.yyy.zzz.1
    100.64.0.130 = xxx.yyy.zzz.2
    100.64.0.131 = xxx.yyy.zzz.3
    e assim por diante.

    Então, em resumo, o primeiro endereço da rede de origem é traduzido para o primeiro endereço da rede de destino (o to-address), o segundo endereço da rede de origem, para o segundo endereço da rede de destino.

    No final das contas, é ainda um pouco mais complicado que isso, porque na realidade o netmap traduz um "conjunto de ip" para outro, e esse conjunto de IP pode ser um range, por exemplo 100.64.0.20-100.64.0.147, que no caso são 128 endereços, e você poderia usar netmap para traduzir esse range para um bloco /25, no nat 1:1 do netmap (primeiro da origem no primeiro do destino, segundo da origem no segundo do destino, etc).


    Então, utilizando esse esquema, você traduz uma lista de redes privadas, para uma única rede pública. Só que, somente desta forma, você não teria como identificar o usuário do IP público num log de acesso, consultando seu log de conexão (como exige a legislação), pois se você decidiu traduzir, por exemplo, 32 redes privadas, para uma rede pública, ao tentar identificar um usuário de um log de acesso qualquer, consultando o seu log de conexão, você teria 32 possíveis usuários. Para poder fazer essa consulta de forma específica, você então traduz a porta de origem de cada um dos blocos de origem, para um range novo e diferente para cada bloco. Assim, no log de acesso você terá a informação da porta de origem da conexão, como no exemplo dos logs do CERT que ele envia por e-mail. E a porta de origem, vai estar então restrita dentro de um bloco específico de rede private, dentro do qual você pode buscar o usuário específico daquele acesso.

    Por exemplo:

    100.64.0.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 2001-7000
    100.64.1.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 7001-12000
    100.64.2.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 12001-17000
    100.64.3.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 17001-22000
    100.64.4.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 22001-27000
    100.64.5.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 27001-32000
    100.64.6.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 32001-37000
    100.64.7.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 37001-42000
    100.64.8.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 42001-47000
    100.64.9.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 47001-52000
    100.64.10.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 52001-57000
    100.64.11.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 57001-62000

    Neste caso, você está traduzindo além do endereço de origem, a porta de origem também, porém. Como pode observar, cada grupo de endereço privado, vai ter a porta de origem traduzida em um range de 5000 portas, e o range é diferente para cada rede privada, mas todas vão ter o endereço de IP traduzido para o mesmo IP público. Por exemplo:

    100.64.0.1 = xxx.yyy.0.1
    100.64.1.1 = xxx.yyy.0.1
    100.64.2.1 = xxx.yyy.0.1
    e assim por diante.

    Ou seja, cada um daqueles blocos privados /24 vai ser traduzido para o mesmo bloco público /24, o que vai fazer que (neste exemplo) 12 clientes (um de cada rede privada) utilize o mesmo endereço público, porém, em um range de portas diferente.
    E, considerando que você liberou 5000 portas neste caso, para cada range, isso quer dizer que o usuário vai ter 5000 conexões simultâneas disponíveis, o que é o suficiente para um usuário residencial.

    No final das contas, esse exemplo utilizei 5000 portas por usuário, você pode utilizar 2000 por exemplo, para economizar endereços públicos. Com 2000 portas por usuário, da para colocar 32 usuários por IP público. Com 1000 portas, você pode colocar até 64 usuários por IP público. Esse calculo do range de portas o programinha vai fazer sozinho, baseado na Divisão que você escolher.

    O calculo é esse, depois que a gene consegue dar a volta ao redor dele, não parece tão complexo.



  3. #87

    Padrão

    Citação Postado originalmente por inquiery Ver Post
    Bom dia,

    A lógica é a do netmap mesmo, considerando que ele vai fazer isso em um range de portas.
    Por exemplo, pegamos varios IPs privados, e traduzimos sempre no mesmo IP público, mas em ranges de portas diferentes.

    100.64.0.0/24 traduzido para xxx.yyy.zzz.0/24

    Neste caso, são 256 endereços privados, traduzidos nos respectivos endereços de rede no bloco público, de forma "binária", ou seja:
    100.64.0.0 = xxx.yyy.zzz.0
    100.64.0.1 = xxx.yyy.zzz.1
    100.64.0.2 = xxx.yyy.zzz.2
    100.64.0.3 = xxx.yyy.zzz.3
    e assim por diante.

    Claro que essa é uma forma facil de vizualizar, mas por exemplo:

    100.64.0.128/25 traduzido para xxx.yyy.zzz.0/25. É a mesma coisa, o primeiro endereço da rede 100.64.0.128/25 será traduzido para o primeiro endereço da rede xxx.yyy.zzz.0/25, o segundo endereço de 100.64.0.128/25 para o segundo de xxx.yyy.zzz.0/25, e assim por diante:

    100.64.0.128 = xxx.yyy.zzz.0
    100.64.0.129 = xxx.yyy.zzz.1
    100.64.0.130 = xxx.yyy.zzz.2
    100.64.0.131 = xxx.yyy.zzz.3
    e assim por diante.

    Então, em resumo, o primeiro endereço da rede de origem é traduzido para o primeiro endereço da rede de destino (o to-address), o segundo endereço da rede de origem, para o segundo endereço da rede de destino.

    No final das contas, é ainda um pouco mais complicado que isso, porque na realidade o netmap traduz um "conjunto de ip" para outro, e esse conjunto de IP pode ser um range, por exemplo 100.64.0.20-100.64.0.147, que no caso são 128 endereços, e você poderia usar netmap para traduzir esse range para um bloco /25, no nat 1:1 do netmap (primeiro da origem no primeiro do destino, segundo da origem no segundo do destino, etc).


    Então, utilizando esse esquema, você traduz uma lista de redes privadas, para uma única rede pública. Só que, somente desta forma, você não teria como identificar o usuário do IP público num log de acesso, consultando seu log de conexão (como exige a legislação), pois se você decidiu traduzir, por exemplo, 32 redes privadas, para uma rede pública, ao tentar identificar um usuário de um log de acesso qualquer, consultando o seu log de conexão, você teria 32 possíveis usuários. Para poder fazer essa consulta de forma específica, você então traduz a porta de origem de cada um dos blocos de origem, para um range novo e diferente para cada bloco. Assim, no log de acesso você terá a informação da porta de origem da conexão, como no exemplo dos logs do CERT que ele envia por e-mail. E a porta de origem, vai estar então restrita dentro de um bloco específico de rede private, dentro do qual você pode buscar o usuário específico daquele acesso.

    Por exemplo:

    100.64.0.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 2001-7000
    100.64.1.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 7001-12000
    100.64.2.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 12001-17000
    100.64.3.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 17001-22000
    100.64.4.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 22001-27000
    100.64.5.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 27001-32000
    100.64.6.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 32001-37000
    100.64.7.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 37001-42000
    100.64.8.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 42001-47000
    100.64.9.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 47001-52000
    100.64.10.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 52001-57000
    100.64.11.0/24 qualquer porta de origem - traduz para xxx.yyy.0.0/24 e porta de origem 57001-62000

    Neste caso, você está traduzindo além do endereço de origem, a porta de origem também, porém. Como pode observar, cada grupo de endereço privado, vai ter a porta de origem traduzida em um range de 5000 portas, e o range é diferente para cada rede privada, mas todas vão ter o endereço de IP traduzido para o mesmo IP público. Por exemplo:

    100.64.0.1 = xxx.yyy.0.1
    100.64.1.1 = xxx.yyy.0.1
    100.64.2.1 = xxx.yyy.0.1
    e assim por diante.

    Ou seja, cada um daqueles blocos privados /24 vai ser traduzido para o mesmo bloco público /24, o que vai fazer que (neste exemplo) 12 clientes (um de cada rede privada) utilize o mesmo endereço público, porém, em um range de portas diferente.
    E, considerando que você liberou 5000 portas neste caso, para cada range, isso quer dizer que o usuário vai ter 5000 conexões simultâneas disponíveis, o que é o suficiente para um usuário residencial.

    No final das contas, esse exemplo utilizei 5000 portas por usuário, você pode utilizar 2000 por exemplo, para economizar endereços públicos. Com 2000 portas por usuário, da para colocar 32 usuários por IP público. Com 1000 portas, você pode colocar até 64 usuários por IP público. Esse calculo do range de portas o programinha vai fazer sozinho, baseado na Divisão que você escolher.

    O calculo é esse, depois que a gene consegue dar a volta ao redor dele, não parece tão complexo.

    Amigo primeiramente parabéns pelo tópico, me diz uma coisa, consegue colocar no aplicado opção de colocar nome da interface, assim podemos setar a interface de saida, fazendo com que o nat fique apenas pra rede externa.
    Se possivel inclui nos 2 aplicativos.

  4. #88

    Padrão Re: Script CGNAT

    Amigos meu cenário é o seguinte eu tenho 3 Link do mesmo provedor que compro Link e faço um load balance:

    LINK 1: IP FIXO (PUBLICO)
    LINK 2: IP REDE
    LINK 3: IP REDE

    SEGUE ABAIXO IMAGEM ANEXA.
    O modo de autenticação é PPPOE, só tenho uma RB3011, que é onde chega link e autentica clientes e nela que faço balance tbm.

    Clique na imagem para uma versão maior

Nome:	         mk.png
Visualizações:	13
Tamanho: 	105,1 KB
ID:      	69791

    Nesse caso como eu deveria, proceder para fazer meu CGNAT
    Última edição por amaurybrito; 28-09-2019 às 16:51.



  5. #89

    Padrão Re: Script CGNAT

    Citação Postado originalmente por leviferreira Ver Post
    Amigo primeiramente parabéns pelo tópico, me diz uma coisa, consegue colocar no aplicado opção de colocar nome da interface, assim podemos setar a interface de saida, fazendo com que o nat fique apenas pra rede externa.
    Se possivel inclui nos 2 aplicativos.
    Boa tarde,

    Adicionei essas opções. Obrigado.

  6. #90

    Padrão Re: Script CGNAT

    Citação Postado originalmente por amaurybrito Ver Post
    Amigos meu cenário é o seguinte eu tenho 3 Link do mesmo provedor que compro Link e faço um load balance:


    LINK 1: IP FIXO
    LINK 2: IP PRIVADO
    LINK 3: IP PRIVADO


    Nesse caso como eu deveria, proceder para fazer meu CGNAT

    Se você não tem AS, e vai usar blocos de IPs fornecidos pelos operadoras/provedores que te fornecem o link, você vai precisar fazer de uma forma m pouco mais complexa mesmo, com marcações em cada link para entrar num conjunto de regras de CGNAT somente para aquele link.

    Neste caso, não seria mais interessante você contratar um suporte se você não consegue fazer?