+ Responder ao Tópico



  1. #1
    Visitante

    Padrão firewall em iptables

    Pessoal,

    Gostaria de pedir uma ajuda de vocês,
    Fiz as regras que estou colocando abaixo, e não entendo porque a máquina 2.55.2.127 não está conseguindo acessar a máquina 2.55.1.34 via ssh.
    Nas regras que eu fiz eu deixei a máquina 2.55.2.127 com acesso total nessa máquina, mas mesmo assim não funciona.

    Para vocês entenderem melhor eu coloquei as regras abaixo no meu servidor DNS interno, somente como um proteção interna.

    *******************************************************
    #!/bin/sh
    # chkconfig: 2345 80 10
    # description: Firewall para o DNS Server
    # config: /etc/init.d/fw_cps
    # Script de configuracao de firewall

    # /etc/init.d/fw_dns2

    # Secao_01 - Definicao de localizacao dos paths e comandos
    echo "Secao_01"
    IPTABLES="/sbin/iptables"

    # Secao_02 - Definicao de Variaveis das interfaces locais
    echo "Secao_02"

    # Interface Externa
    IF_INT="eth0"
    IP_INT="2.55.1.35"
    NET_INT="2.55.0.0/22"

    HIPORTS="1024:65535"
    PRIVPORTS="0:1023"
    LOOPBACK="127.0.0.1/8"

    # Secao_03 - Definicao de Ativos, Servidores e Clientes
    echo "Secao_03"
    # Ativo

    # SSH
    PERMIT1="2.55.2.127"
    PERMIT2="2.55.1.35"

    # Secao_04 - Carregamento de modulos
    echo "Secao_04"

    carrega_modulos ()
    {

    echo "Carregando modulos IPTABLES"
    /sbin/modprobe iptable_filter
    /sbin/modprobe ip_conntrack
    /sbin/modprobe ip_conntrack_ftp
    /sbin/modprobe ip_nat_ftp
    /sbin/modprobe ip_conntrack_irc
    /sbin/modprobe ip_nat_irc
    }

    # Secao_05 - Regras e bloqueios
    echo "Secao_05"

    regras_bloqueio ()
    {

    echo "Regras e bloqueios"

    #Nao responde a broadcast de pings
    echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    #Desabilitar ataques IP spoofing
    echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter

    #Habilita mensagens de proteção de erro
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

    #Log martinas - pacotes com endereços impossiveis
    echo 0 > /proc/sys/net/ipv4/conf/all/log_martians

    #Apaga todas as regras
    $IPTABLES -F
    $IPTABLES -t nat -F

    #Contra DoS
    $IPTABLES -A FORWARD -m unclean -j DROP

    #Fecha tudo
    $IPTABLES -A INPUT -p tcp -j DROP
    $IPTABLES -A INPUT -p udp -j DROP
    $IPTABLES -A FORWARD -p tcp -j DROP
    $IPTABLES -A FORWARD -p udp -j DROP

    #Libera loopback
    $IPTABLES -A INPUT -d $LOOPBACK -j ACCEPT
    $IPTABLES -A OUTPUT -d $LOOPBACK -j ACCEPT

    #Aceita requisicoes DHCP
    $IPTABLES -A INPUT -p tcp -s $NET_INT --dport 546:547 -j LOG
    $IPTABLES -A INPUT -p tcp -s $NET_INT --dport 546:547 -j ACCEPT
    $IPTABLES -A INPUT -p udp -s $NET_INT --dport 546:547 -j LOG
    $IPTABLES -A INPUT -p udp -s $NET_INT --dport 546:547 -j ACCEPT

    #Aceita requisicoes DNS
    $IPTABLES -A INPUT -p tcp -s $NET_INT --dport 53 -j LOG
    $IPTABLES -A INPUT -p tcp -s $NET_INT --dport 53 -j ACCEPT
    $IPTABLES -A INPUT -p udp -s $NET_INT --dport 53 -j LOG
    $IPTABLES -A INPUT -p udp -s $NET_INT --dport 53 -j ACCEPT

    #Abre alguns acessos - rede local
    $IPTABLES -A INPUT -s $PERMIT1 -d $IP_INT -j LOG
    $IPTABLES -A INPUT -s $PERMIT1 -d $IP_INT -j ACCEPT

    $IPTABLES -A INPUT -s $PERMIT2 -d $IP_INT -j LOG
    $IPTABLES -A INPUT -s $PERMIT2 -d $IP_INT -j ACCEPT

    #Aceita conexoes da rede interna atraves do estado das conexoes
    $IPTABLES -A INPUT -i $IF_INT -m state --state ESTABLISHED,RELATED -j LOG
    $IPTABLES -A INPUT -i $IF_INT -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -i $IF_INT -p tcp --dport $HIPORTS -m state --state ESTABLISHED,RELATED -j LOG
    $IPTABLES -A INPUT -i $IF_INT -p tcp --dport $HIPORTS -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A INPUT -i $IF_INT -p udp --dport $HIPORTS -m state --state ESTABLISHED,RELATED -j LOG
    $IPTABLES -A INPUT -i $IF_INT -p udp --dport $HIPORTS -m state --state ESTABLISHED,RELATED -j ACCEPT
    }

    # Secao_06 - Desabilitar o Firewall
    echo "Secao_06"

    disable_fw ()
    {

    $IPTABLES -F
    $IPTABLES -F -t nat
    $IPTABLES -t nat -X
    $IPTABLES -X
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -P FORWARD ACCEPT
    echo "Firewall desabilitado - cuidado!!!"

    }

    ###### INICIO DO FIREWALL

    #Funcao habilita o firewall

    enablefirewall ()
    {
    #####Carrega Modulos
    carrega_modulos
    #####Regras de bloqueio
    regras_bloqueio

    }

    case "$1" in
    start)
    #Ligar o firewall
    echo -n "Iniciando o firewall"
    enablefirewall
    echo "feito"
    ;;
    stop)
    #Desligar o firewall
    echo -n "Parando o firewall"
    echo 0 > /proc/sys/net/ipv4/ip_forward
    disable_fw
    echo "feito"
    echo "Cuidado !!! Tudo liberado"
    ;;
    restart)
    /etc/init.d/fw_cps stop
    /etc/init.d/fw_cps start
    ;;
    aberto-total)
    echo -n "Desligando Firewall e habilitando o Masquerade"
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -P FORWARD ACCEPT
    $IPTABLES -F
    $IPTABLES -t nat -F
    echo "Feito. Cuidado, firewall todo aberto"
    ;;
    *)
    echo "Uso : /etc/init.d/fw_cps {start|stop|restart|aberto-total}"
    exit 1
    ;;
    esac
    exit 0
    ************************************

    PS. Os IP´s não são reais.

    Obrigado,
    Leo

  2. #2

    Padrão firewall em iptables

    Olha pode parecer uma pergunta estupida mas, vamos começar analisando por baixo. Na maioria das vezes são erros bobos q passam desapercebido, pq estamos pensando em problemas graves ...

    Vc startou o serviço ssh da máquina a qual vc quer acessar?

  3. #3

    Padrão Re: firewall em iptables

    Citação Postado originalmente por Anonymous
    case "$1" in
    start)
    #Ligar o firewall
    echo -n "Iniciando o firewall"
    enablefirewall
    echo "feito"
    ;;
    stop)
    #Desligar o firewall
    echo -n "Parando o firewall"
    echo 0 > /proc/sys/net/ipv4/ip_forward
    disable_fw
    echo "feito"
    echo "Cuidado !!! Tudo liberado"
    ;;
    Vc para o forward de pacotes no seu stop mas num ativa denovo no start
    coloque a linha no seu start:
    echo 1 > /proc/sys/net/ipv4/ip_forward