+ Responder ao Tópico



  1. #1

    Padrão Ajuda com iptables para redirecionamento

    Boa noite a todos.
    Como sou novo aqui, estou há algumas horas lendo todo o fórum.
    Inclusive não encontrei em local algum minhas dúvidas.
    Sou iniciante nesse ramo, e a pedido de um amigo estou a desenvolver um script iptables de redirecionamento para ele.

    Espero muito a ajuda de vocês.

    São 3 clouds
    cloud-A - Onde roda o script firewall
    cloud-B - Onde recebe as conexões
    cloud-C - Painel gerenciamento clientes
    Todos são ips fixo
    Estarei colando meu scritp e fazendo as observações das minhas dúvidas.

    #!/bin/bash

    echo 'Limpando todas as regras e liberando todo o trafego'
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -F
    iptables -X
    iptables -t nat -F
    iptables -t nat -X
    iptables -t mangle -F
    iptables -t mangle -X



    # Ignora pings
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    echo 1 > /proc/sys/net/ipv4/ip_forward

    modprobe iptable_nat
    iptables -t nat -F
    iptables -F
    iptables -F FORWARD

    Com esta regra a baixo eu recebo a mensagem: iptables: No chain/target/match by that name.
    Mas se eu comento a regra, para tudo de funcionar.

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


    iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT

    Com essas regras a baixo, eu gostaria que apenas o cloud-C pudesse ser direcionado para o cloud-B nestas portas.
    Teste e também não obtive sucesso.

    #iptables -A INPUT -p tcp -s cloud-C --dport 55050 -j ACCEPT
    #iptables -A INPUT -p tcp -s cloud-C --dport 55051 -j ACCEPT

    # Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
    iptables -A FORWARD -m unclean -j DROP

    # Direcionamento Cabo1
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 31250 -j DNAT --to-destination cloud-B:31250
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23050 -j DNAT --to-destination cloud-B:31250

    # Direcionamento Cabo2
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 32005 -j DNAT --to-destination cloud-B:32005

    # Direcionamento para o Painel
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 55051 -j DNAT --to-destination cloud-B:55051
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 55050 -j DNAT --to-destination cloud-B:55050

    iptables -A FORWARD -p udp -s cloud-A --dport 53 -j ACCEPT


    # Ignora qualquer pacote de entrada, vindo de qualquer endereço, a menos que especificado o contrário acima. Bloqueia tudo.
    iptables -A INPUT -p tcp --syn -j DROP


    echo 'Firewall iniciado'

    echo 'Listar regras Redirecionamentos'
    iptables -t nat -L




    Agradeço a atenção de todos.

    Grande abraço

  2. #2

    Padrão Re: Ajuda com iptables para redirecionamento

    Leia LARTC.

  3. #3

    Padrão Re: Ajuda com iptables para redirecionamento

    Olá Cesardovalle!

    No seu caso para bloquear todo o acesso nas portas 55050 e 550501 com excessão do cloud-C:

    iptables -A INPUT -p tcp -s cloud-C! --dport 55050 -j DROP
    iptables -A INPUT -p tcp -s cloud-C! --dport 55051 -j DROP

    iptables -A INPUT -p tcp -s cloud-C! --dport 55050 -m conntrack --ctstate NEW,ESTABLISHED -j DROP
    iptables -A INPUT -p tcp -s cloud-C! --dport 55051 -m conntrack --ctstate NEW,ESTABLISHED -j DROP

    Mano, agora sobre esse erro aí...: "No chain/target/match by that name"... Olha que o teu comando está correto, então pode ser pau na compilação do módulo iptables. Se foi vc que compilou o kernel, então comeu bola na hora de selecionar os items do Netfilter Configuration.

    Você precisa descobrir qual parte da regra está causando essa mensagem de erro. É provavelmente a parte do estado -t nat, mas não necessariamente. Há várias extensões para iptables e netfilter que devem ser compiladas no kernel do Linux. Você pode determinar qual parte está faltando, pedindo ao iptables às informações de ajuda na extensão que está testando. Aqui estão algumas maneiras de testar às extensões:

    iptables -t nat -h
    iptables -m state -h
    iptables -p icmp -h
    iptables -j DROP -h

    Se você obter uma saída de ajuda que inclua informações sobre a extensão na parte inferior da saída, significa que foi compilado corretamente. Se não, então você precisará recompilar novamente o kernel com suporte à extensão do netfilter/iptables.