+ Responder ao Tópico



  1. #1

    Padrão VPN com Firewall (Problema)

    Srs
    Estou com um problema para utilizar a vpn com firewall.
    Estou utilizando o openvpn e o iptables como firewall. Quando fecho a vpn fica funcioando normal, mas quando executo as regras de firewall para de funcionar.
    Quando limpo as regras e altero a política padrão volta a funcionar (logicamente) sendo que o mais impressionante é que se eu executar as regras do firewall novamente fica funcionando blz.

    Gostaria de pedir que vocês me ajudassem no problema em questão, abaixo coloquei as regras do firewall que estou utilizando.
    Só mais uma coisa não existe varias máquinas com a máquina cliente , é apenas ela que precisa acessar a vpn.



    #!/bin/bash


    #Definicao de Constantes
    ip="/sbin/iptables"
    ssh_port="1148"
    i_ext="eth0"

    #Ativando o Roteador
    echo "1" > /proc/sys/net/ipv4/ip_forward

    #Alterar a Politica Padrao
    $ip -t filter -P INPUT DROP
    $ip -t filter -P OUTPUT DROP
    #$ip -t filter -P FORWARD DROP

    #Limpando as Regras
    $ip -t filter -F
    $ip -t nat -F
    $ip -t filter -X
    $ip -t nat -F

    #Gerar Logs
    $ip -t filter -A INPUT -p tcp --dport 22 -j LOG --log-prefix "FIREWALL:SSH_FALSE"
    $ip -t filter -A INPUT -p tcp --dport $ssh_port -j LOG --log-prefix "FIREWALL:SSH"

    #Firewall Statefull
    $ip -t filter -A INPUT -m state --state ESTABLISHED,RELATED --j ACCEPT
    $ip -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED --j ACCEPT
    $ip -t filter -A FORWARD -m state --state ESTABLISHED,RELATED --j ACCEPT


    ###########################################################

    ####################### Seguranca #########################

    ###########################################################


    #
    #loop back
    $ip -A INPUT -i lo -j ACCEPT
    #
    #Bloqueio Back Orifice - Malware
    $ip -A INPUT -i eth0 -p tcp --dport 31337 -j DROP
    $ip -A INPUT -i eth0 -p udp --dport 31337 -j DROP
    #
    #Bloqueio Netbus - Malware
    $ip -A INPUT -i eth0 -p tcp --dport 12345:12346 -j DROP
    $ip -A INPUT -i eth0 -p udp --dport 12345:12346 -j DROP
    #
    #Bloqueio Trin00 - Malware
    $ip -A INPUT -i eth0 -p tcp --dport 1524 -j DROP
    $ip -A INPUT -i eth0 -p tcp --dport 27665 -j DROP
    $ip -A INPUT -i eth0 -p udp --dport 27444 -j DROP
    $ip -A INPUT -i eth0 -p udp --dport 31335 -j DROP
    #
    #Rejeitando ident requeridos
    $ip -A INPUT -i eth0 -p tcp --dport 113 -j DROP
    $ip -A INPUT -i eth0 -p udp --dport 113 -j DROP


    ###########################################################

    ##################### Tabela Filter #######################

    ###########################################################

    #CHAIN INPUT

    $ip -A INPUT -i tun0 -j ACCEPT


    #CHAIN FORWARD

    #CHAIN OUTPUT
    $ip -A OUTPUT -o tun0 -j ACCEPT

  2. #2

    Padrão

    Então meu amigo...
    Isso de você mudar a política padrão para ACCEPT, colocar as regras de firewall novamente e funcionar não tem nada de incrível, pois este é o comportamento que você pediu, que é, se não encontrar nenhuma regra que case com o pacote, aceite ele de qualquer forma... Isso que o iptables está fazendo!

    Bom primeiramente você precisa ter regras aceitando a conexão que chega (INPUT) ao seu firewall/vpn!

    Código :
    iptables -t filter -A INPUT -p udp --dport 1194 -j ACCEPT
    Com esta regra será possível tentar estabelecer uma conexão na sua VPN quando a politica iptables estiver em DROP!
    Agora... quando o computador já se conectou os pacotes não irão passar pela chain INPUT e sim pela FORWARD!
    Então você precisa de umas regras assim:

    Código :
    iptables -t filter -A FORWARD -i tun+ -s <sua rede da vpn> -j ACCEPT
    iptables -t filter -A FORWARD -o tun+ -d <sua rede da vpn> -j ACCEPT
    Desta forma você esta dizendo que quando vier pacotes da <sua rede da vpn> pela interface tun+ (que pode ser tun0, tun1) aceite este trafego... o mesmo ocorrerá quando o destino for esta rede...
    Assim você conseguirá deixar passar o trafego da vpn para sua rede com as regras em DROP na chain FORWARD!

    Caso você tenha alguma dúvida sobre como funciona o iptables eu tenho um blog... e ali descrevi bem como funciona este firewall, o link é este: Yet Another Linux Blog: Iptables - Descrição das chains e seu uso na prática

    Espero que ajude!
    Qualquer coisa poste ai!

    Falowww

  3. #3

    Padrão

    Ola André
    Primeiramente gostaria de agradecer a sua resposta.
    Com relação a alterar a política padrão para ACCEPT, lembre-se que depois disso eu rodo novamente o script do firewall ou seja, a política padrão volta a ser DROP.
    Com relação as regras na FORWARD, eu acho que só precisaria delas caso eu tivesse uma rede que utilizasse essa máquina para acessar a outra ponta da VPN, no meu caso é a própria máquina que está fechando a vpn que irá acessar a minha rede na outra ponta.

    Fiz algo aqui que deu certo. Eu antes fechava a VPN para depois rodar as regras do firewall e estava dando este problema que descrevi. resolvi fazer diferente, eu liberei a porta para fechar a vpn no firewall e passei a rodar as regras antes de fechar a VPN.

    No caso resolveu, mas não entendi o por que....

    Em todo caso valew ae!!!

  4. #4

    Padrão

    Olá amigo...
    Então, se você quer que essa máquina acesse a sua rede você PRECISA COLOCAR ESSAS REGRAS NA FORWARD!
    A CHAIN FORWARD é responsavel por filtrar o trafego que é destinado a uma rede ou ip qe não seja o próprio firewall!
    As regras funcionam quando você volta a executar o script pois você tem regras assim:

    Código :
    $ip -t filter -A INPUT -m state --state ESTABLISHED,RELATED --j ACCEPT
    $ip -t filter -A OUTPUT -m state --state ESTABLISHED,RELATED --j ACCEPT
    $ip -t filter -A FORWARD -m state --state ESTABLISHED,RELATED --j ACCEPT
    Isto permite que conexões estabelecidas ou relatadas sejam aceitas pelo firewall, mas NOVAS são totalmente rejeitadas!
    Eu tenho aqui minha VPN com OpenVPN e tenho meu firewall usando iptables neste mesmo host e funciona tudo bem...
    Porém para que os ou o host(s) da vpn possa acessar os recursos que estão em sua rede, as regras da chain FORWARD são OBRIGATÓRIAS!

    E para que alguém possa se conectar a sua vpn você precisa daquela regra na CHAIN INPUT permitindo conexões na porta em que você configurou sua VPN para "escutar"...

    Caso tenha alguma dúvida a respeito pode perguntar!

    Faloww

  5. #5

    Padrão

    Você precisa liberar as portas da Openvpn. qual porta vc configurou na tua VPN ??? deixou a padrão ???

    Flw ...