+ Responder ao Tópico



  1. #1

    Padrão Liberar VPN no firewall

    Boa tarde galera.
    Estou encontrando um problema em liberar o acesso a VPN aqui na minha rede.

    Existem clientes que que usam o VPN Client (CISCO) para fazer conexões com um servidor fora da minha rede.

    Gostaria de saber certo quais portas (udp e tcp) deveria liberar para que seja liberado o acesso.

    Quando utilizo a regra:
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEEla funciona corretamente, mas não quero deixar assim pois fica tudo liberado e tem serviços que tenho que bloquear.

    Então estou tentando liberar as portas 50 e 500:
    iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p udp --dports 50,500 -j MASQUERADE
    Mas com essa regra o programa cliente não conecta.

    Alguém tem alguma dica?

    Desde já agradeço.

    []s

    :: Cristian ::

  2. #2

    Padrão Liberar VPN no firewall

    da uma olhada nesse site, la eh pptp mas as regras pode servi pra vc

    http://pptpclient.sourceforge.net/ro...ient-to-server

  3. #3

    Padrão Re: Liberar VPN no firewall

    Nao to entendendo explica melhor ?

  4. #4

    Padrão Liberar VPN no firewall

    Faz um teste, faz o mascaramentro tambem total pro protocolo "gre"... sem definir portas e veh se funciona. :P

    # iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p udp --dports 50,500 -j MASQUERADE
    # iptables -t nat -A POSTROUTING -o $EXT_IF -p gre -j MASQUERADE

  5. #5

    Padrão Liberar VPN no firewall

    cara se vc estiver usando pptp vc tem q usar as seguinte regras (sao as q eu uso)

    $IPTABLES -A INPUT -i ppp+ -j ACCEPT
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
    ...
    ...
    ...
    logo apos a liberacao de forward da sua rede internao
    $IPTABLES -A FORWARD -i ppp+ -j ACCEPT
    $IPTABLES -A FORWARD -o ppp+ -j ACCEPT

    [] Dotta :twisted:

  6. #6

    Padrão Liberar VPN no firewall

    Citação Postado originalmente por fdotta
    cara se vc estiver usando pptp vc tem q usar as seguinte regras (sao as q eu uso)

    $IPTABLES -A INPUT -i ppp+ -j ACCEPT
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
    ...
    ...
    ...
    logo apos a liberacao de forward da sua rede internao
    $IPTABLES -A FORWARD -i ppp+ -j ACCEPT
    $IPTABLES -A FORWARD -o ppp+ -j ACCEPT

    [] Dotta :twisted:
    Veio, viajou :P

    Para ele esses INPUT não servem de nada, já que ele quer da rede atrás do firewall para internet e não permitir conexão pptp no firewall dele.

    Outra coisa, a interface dele pelo jeito é eth, e não ppp :P

    Ah sim, se tu usa essa regra no teu firewall você tá vacilando com essa regra no teu script:
    $IPTABLES -A INPUT -i ppp+ -j ACCEPT

    Já que ela tá permitindo QUALQUER entrada atraves de qualquer interface ppp que você tenha, consequentemente essas duas outras regras estão redundantes (em falha :P):
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT


    ps: Você andou copiando regras de fontes de informação diferentes e colocando no seu script de firewall ? :P (as regras hora são simplificadas, hora eh por extenso). Pois o negocio tá meio bagunçado, e tá fazendo mais do que devia... qualquer coisa posta teu script ai que o povo ajuda a arrumar :good:

  7. #7

    Padrão Liberar VPN no firewall

    Galera seguinte:
    Minha interface interna é a eth1 e a externa eth0.

    Estou com problemas em liberar apenas o acesso a VPN, pois alguns clientes da rede utilizar um software da CISCO, o Vpn Client.

    Quando executo a regra:

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    O programa funciona corretamente, mas como eu faço um controle de acesso na rede, libero apenas as portas necessárias:

    Segue o meu script então:

    #Carrega módulos de connection tracking
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_conntrack_irc

    #Define políticas de acesso padrão
    /sbin/iptables -P INPUT DROP
    /sbin/iptables -P FORWARD DROP
    /sbin/iptables -P OUTPUT ACCEPT

    #Limpa regras e cadeias de usuário prévias
    /sbin/iptables -X
    /sbin/iptables -F
    /sbin/iptables -t nat -F

    #Habilita repasse de pacotes
    echo 1 > /proc/sys/net/ipv4/ip_forward

    #Define variáveis
    ##Interface externa
    EXT_IF=eth0
    ##Interface Interna
    INT_IF=eth1
    #Rede interna
    INT_NET=xxx.xxx.xxx.xxx/8
    ##IP externo
    EXT_HOST=xxx.xxx.xxx.xxx

    #Habilita comunicação interna entre processos locais
    /sbin/iptables -A INPUT -i lo -j ACCEPT

    #Habilita acesso pela rede interna a esse host
    /sbin/iptables -A INPUT -i $INT_IF -j ACCEPT
    /sbin/iptables -A FORWARD -i $INT_IF -j ACCEPT

    #Habilita SSH externo
    /sbin/iptables -A INPUT -i $EXT_IF -m tcp -p tcp --dport 22 -j ACCEPT

    #Habilita todas a conexões previamente aceitas (estados Estabelicida e Relacionada)
    /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


    ### Liberar acesso externo às portas de Mail(25), Pop-3(110), Dns(53(tcp e udp)), Https(443), MSN(1863), RECEITANET(3456)
    /sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p tcp --dports 25,110,53,443,1863,3456 -j MASQUERADE
    /sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -m udp -p udp --dport 53 -j MASQUERADE

    ### Liberar ecesso a VPN para clientes que usam VPN Client (CISCO) + Notes (Celepar)
    #/sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p udp --dports 50,500 -j MASQUERADE
    #/sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -m multiport -p tcp --dports 50,500 -j MASQUERADE

    ###Habilita acesso à porta 5024 utilizada pelos servidores sysbacen 200.218.208.91 200.218.209.91
    /sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -m tcp -p tcp -d 200.218.208.91/32 --dport 5024 -j MASQUERADE
    /sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -m tcp -p tcp -d 200.218.209.91/32 --dport 5024 -j MASQUERADE

    #/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    Obrigado

  8. #8

    Padrão Liberar VPN no firewall

    Citação Postado originalmente por DropALL
    Citação Postado originalmente por fdotta
    cara se vc estiver usando pptp vc tem q usar as seguinte regras (sao as q eu uso)

    $IPTABLES -A INPUT -i ppp+ -j ACCEPT
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
    ...
    ...
    ...
    logo apos a liberacao de forward da sua rede internao
    $IPTABLES -A FORWARD -i ppp+ -j ACCEPT
    $IPTABLES -A FORWARD -o ppp+ -j ACCEPT

    [] Dotta :twisted:
    Veio, viajou :P

    Para ele esses INPUT não servem de nada, já que ele quer da rede atrás do firewall para internet e não permitir conexão pptp no firewall dele.

    Outra coisa, a interface dele pelo jeito é eth, e não ppp :P

    Ah sim, se tu usa essa regra no teu firewall você tá vacilando com essa regra no teu script:
    $IPTABLES -A INPUT -i ppp+ -j ACCEPT

    Já que ela tá permitindo QUALQUER entrada atraves de qualquer interface ppp que você tenha, consequentemente essas duas outras regras estão redundantes (em falha :P):
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT


    ps: Você andou copiando regras de fontes de informação diferentes e colocando no seu script de firewall ? :P (as regras hora são simplificadas, hora eh por extenso). Pois o negocio tá meio bagunçado, e tá fazendo mais do que devia... qualquer coisa posta teu script ai que o povo ajuda a arrumar :good:
    Na verdade eu nao copie esta resgras de fontes duvidosas, elas estao na documentacao do pptpd, que e a vpn eu eu uso. Confesso para vc nao nao conheco muito de vpn. Eu so montei este para que eu poder acessar alguns servicos internos da minha rede. Outra coisa, eu so permito alguns ip a fazerem conecao e uso criiptografia.

    Se as regras estao confusas entao a documentacao do pptpd esta errada. Neste caso o q vc me recomenda a fazer para ter a vpn de uma forma mais segura atraves do pptpd???

    [] Dotta :twisted:

  9. #9

    Padrão Liberar VPN no firewall

    cristianff,

    Seguinte existem diversos clientes vpn com configuracoes diversas, jah peguei caras com o symantec vpn client, windows vpn client, e outros clientes, sendo que... basicamente a diferenca para os 2 eh as seguintes regras para resolver:
    Maneira 1:
    - Acesso externo a porta 500/UDP
    - Acesso total ao protocolo GRE
    Você faz isso com as seguintes regras (considerando sua interface de saida para internet sendo a eth0):
    # iptables -t nat -I POSTROUTING -o eth0 -p udp --dport 500 -j MASQUERADE
    # iptables -t nat -I POSTROUTING -o eth0 -p gre -j MASQUERADE

    Maneira 2:
    - Acesso externo a porta 500/UDP
    - Acesso total aos protocolos IPV6-AUTH (AH) e IPV6-CRYPT (ESP).
    # iptables -t nat -I POSTROUTING -o eth0 -p udp --dport 500 -j MASQUERADE
    # iptables -t nat -I POSTROUTING -o eth0 -p ipv6-auth -j MASQUERADE
    # iptables -t nat -I POSTROUTING -o eth0 -p ipv6-crypt -j MASQUERADE

    Poe essas regras abaixo do teu comentario de Liberar acesso a VPN...

    ps: Toma CUIDADO com essa historia de SSH externo... sugiro você pra comecar ponha seu sshd para responder em outra porta (ideal que acima de 1024), e se possivel fixar um ip de acesso externo, se nao libera somente das faixas brasileiras (200.0.0.0/8 e 201.0.0.0/8 )...

    AGORA, meu velho se mesmo assim nenhuma dessas duas maneiras der certo faz o seguinte, no teu firewall anota o ip da maquina que tá com o vpn client e roda (fazendo de conta que o ip dessa maquina eh 192.168.0.10) o seguinte comando:
    # tcpdump -nni any 'src host 192.168.0.10'

    Ele vai ficar escutando conexao dessa maquina com o cliente (que para exemplo usei a 192.168.0.10), entao vc tenta conectar com o vpn client e esperar dar errado e dah um ctrl+c para cancelar o tcpdump, e ai c posta aq as linhas que retornarem, blz? (essa eh a apelacao final, hehe 6) )


    Oka?

    Manda noticias! :good:

  10. #10

    Padrão Liberar VPN no firewall

    Citação Postado originalmente por fdotta
    Citação Postado originalmente por DropALL
    Citação Postado originalmente por fdotta
    cara se vc estiver usando pptp vc tem q usar as seguinte regras (sao as q eu uso)

    $IPTABLES -A INPUT -i ppp+ -j ACCEPT
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
    ...
    ...
    ...
    logo apos a liberacao de forward da sua rede internao
    $IPTABLES -A FORWARD -i ppp+ -j ACCEPT
    $IPTABLES -A FORWARD -o ppp+ -j ACCEPT

    [] Dotta :twisted:
    Veio, viajou :P

    Para ele esses INPUT não servem de nada, já que ele quer da rede atrás do firewall para internet e não permitir conexão pptp no firewall dele.

    Outra coisa, a interface dele pelo jeito é eth, e não ppp :P

    Ah sim, se tu usa essa regra no teu firewall você tá vacilando com essa regra no teu script:
    $IPTABLES -A INPUT -i ppp+ -j ACCEPT

    Já que ela tá permitindo QUALQUER entrada atraves de qualquer interface ppp que você tenha, consequentemente essas duas outras regras estão redundantes (em falha :P):
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT


    ps: Você andou copiando regras de fontes de informação diferentes e colocando no seu script de firewall ? :P (as regras hora são simplificadas, hora eh por extenso). Pois o negocio tá meio bagunçado, e tá fazendo mais do que devia... qualquer coisa posta teu script ai que o povo ajuda a arrumar :good:
    Na verdade eu nao copie esta resgras de fontes duvidosas, elas estao na documentacao do pptpd, que e a vpn eu eu uso. Confesso para vc nao nao conheco muito de vpn. Eu so montei este para que eu poder acessar alguns servicos internos da minha rede. Outra coisa, eu so permito alguns ip a fazerem conecao e uso criiptografia.

    Se as regras estao confusas entao a documentacao do pptpd esta errada. Neste caso o q vc me recomenda a fazer para ter a vpn de uma forma mais segura atraves do pptpd???

    [] Dotta :twisted:
    Ah veio, tai o problema! Eh que tu botou essas regras ai sendo que teu escopo é o INVERSO do que ele quer... Ele quer da rede dele pra internet consequentemente atingir um servidor vpn FORA... O que você tem ai, é um servidor VPN, que você remoto faz um pptp pra acessar maquina DENTRO da tua rede... sakou?

    A parada é OUTRA... mas seguinte, esse lance de tu usar ppp+, e tu ter essa regra:
    $IPTABLES -A INPUT -i ppp+ -j ACCEPT

    Isso tá bizarro, porque isso ai, libera o acesso a TUDO de FORA no teu servidor... se teu servidor tiver ppp0, ppp1, ppp2 (o que provavelmente so tem ppp0, no caso de ADSL principalmente), ele teria acesso a todas interfaces....
    Man, pro teu lance com teu servidor VPN pptpd, se o resto tiver certinho voce inves de precisar de:
    $IPTABLES -A INPUT -i ppp+ -j ACCEPT
    $IPTABLES --append INPUT --protocol 47 --jump ACCEPT
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT

    Só precisa de:
    $IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
    ou
    $IPTABLES -I INPUT -p tcp -m tcp --dport 1723 -j ACCEPT

    Pois o protocol 47 eh GRE, e GRE ate agora nao tive que liberar entrada pra permitir acesso pptp a um servidor vpn pptpd (e creio q vc tb nao precisara)....

    Tentai e dah noticias!

    blz? []s!

  11. #11

    Padrão Liberar VPN no firewall

    DropALL,

    Fiz os teste e realmente eu nao precisava da regra $IPTABLES -A INPUT -i ppp+ -j ACCEPT, mas as outras sim, as de forward para liberar o acesso para dentro da rede e as ourtras 2 tb...

    [] Dotta :twisted:

  12. #12

    Padrão Liberar VPN no firewall

    Citação Postado originalmente por fdotta
    DropALL,

    Fiz os teste e realmente eu nao precisava da regra $IPTABLES -A INPUT -i ppp+ -j ACCEPT, mas as outras sim, as de forward para liberar o acesso para dentro da rede e as ourtras 2 tb...

    [] Dotta :twisted:
    Ah, tudo bem os forward, o GRE precisou? blz... porque se precisasse desse input ai... hehe

    Agora como eu tinha dito antes seu escopo eh diferente então no SEU caso realmente precisa de forwards porem sugiro fazer de outra forma sem usar -i e -o dando forward total...

    Verifique a configuracao do seu servidor pptpd e faca forward apenas do ip que voce recebe quando conecta no seu servidor tipo:
    iptables -I FOWARD -s SEU_IP_NA_VPNCLIENT -d SUA_REDE_LOCAL -j ACCEPT
    iptables -I FOWARD -d SEU_IP_NA_VPNCLIENT -s SUA_REDE_LOCAL -j ACCEPT

    Tentai...

  13. #13

    Padrão Liberar VPN no firewall

    como foi que fico o resultado final? cola as regras q vc ta usando pra pode funcionar seu cliente com servidor vpn

  14. #14

    Padrão Liberar VPN no firewall

    DropALL,


    Eu estou usando o forward com o -i e o -o pq a estrutura da rede esta mudando e eh bem provavel que eu tenha q mudar os ips do ptp, mas as regras q vc falou eu ja usai e funcionam blz... eu so coloque as regras com -i e -o ate terminar as mudancas na rede ai eu vou ter as faixas de ips certinho.


    [] Dotta :twisted:

  15. #15

    Padrão Liberar VPN no firewall

    DropALL,

    Velho, realmente o que estava faltando era esse protocolo "gre".
    Com as regras que me passou:

    ### Liberar ecesso a VPN para clientes que usam VPN Client (CISCO)
    /sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -p udp --dport 500 -j MASQUERADE
    /sbin/iptables -t nat -A POSTROUTING -o $EXT_IF -p gre -j MASQUERADE

    Funcionou perfeitamente.
    Eu já tinha liberado o acesso à porta 500, mas realmente o que estava
    pegando era esse GRE. Mas agora tudo resolvido.

    E obrigado pelas dicas do ssh, vou pensar aqui e adotarei uma solução
    mais segura, vou trocar a porta e fazer o bloqueio para ip´s fora da faixa
    de ip´s do Brasil.

    Desde já agradeço a atenção e a ajuda.
    Abraços para todos de postaram e tenham uma excelente semana.

    ______________________
    Cristian Ferraz Fernandes
    Curitiba - Pr

  16. #16
    replicante
    Visitante

    Padrão Liberar VPN no firewall

    Citação Postado originalmente por cristianff
    Galera seguinte:
    Minha interface interna é a eth1 e a externa eth0.

    Estou com problemas em liberar apenas o acesso a VPN, pois alguns clientes da rede utilizar um software da CISCO, o Vpn Client.

    Quando executo a regra:

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    Cara vc nao poderia usar essa regra:

    Código :
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    ela deveria ser assim:

    Código :
    # vamos dizer q um lado da VPN é 10.1.1.0/24
    # e outro lado 10.2.2.0/24.
     
    # Voce esta do lado 10.1.1.0/24
     
    iptables -t nat -A POSTROUTING -s \! 10.2.2.0/24 -o eth0 -j MASQUERADE

    usando a outra regra vc libera os clientes da VPN do outro lado a usar a net do lado de cá..

    falow!

  17. #17

    Padrão Liberar VPN no firewall

    Código :
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    Colega, eu estava usando a regra acima enquanto não encontrava uma solução para liberar apenas a porta udp 500 e o protocolo "gre", sendo assim, essa regra já foi deletada do meu script.

    Mas concordo com você, teria que colocar o -s 10.10.1.0/24 para liberar apenas para minha rede interna. Como a regra acima era temporária, ficou daquele jeito mesmo, GAMBIARRA...


    Mas valeu pela dica.

    Abraços