+ Responder ao Tópico



  1. #1
    giuliano
    Visitante

    Padrão Problemas com iptables

    Olá Galera,

    Formatei meu servidor linux e agora eu estou com um problema com meu script de firewall no Red Hat 9, ele não está fazendo o nat com o script que eu montei, agora se eu adicionar uma regra so pra ele fazer o nat sem bloquear portas ele compartilha a net. Então estou pedindo uma ajuda ai para alguem ver se eu fiz algo de errado no meu script segue ele abaixo:


    Código :
    #!/bin/bash
    # description: Firewall do sistem (criado Giuliano)
     
    IP_EXT="200.x.x.x"
    IF_EXT="eth0"
    IP_INT="192.168.0.1"
    IF_INT="eth1"
    REDE_INT="192.168.0.0/24"
    BRO_INT="192.168.0.255"
     
    # Ativa o Roteamento no Linux
    echo 1 > /proc/sys/net/ipv4/ip_forward
     
    # Zera as regras do Firewall
    iptables -F
    iptables -F -t nat
     
    # Carrega os modulos do FTP.
    modprobe ip_tables
    modprobe iptable_filter
    modprobe iptable_nat
    modprobe ip_nat_ftp
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
     
     
    ##### Define as politicas padroes #####
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP
     
    ####################### Liberando as portas que serao usadas ###################
    # Bloqueia pacotes invalidos
    iptables -A INPUT -m state --state INVALID -j DROP
    iptables -A OUTPUT -m state --state INVALID -j DROP
    iptables -A FORWARD -m state --state INVALID -j DROP
     
    # Permite respostas
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
     
    # Trafego da propria maquina
    iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT
    iptables -A INPUT -s $IP_INT -d $IP_INT -i $IF_INT -j ACCEPT
    iptables -A INPUT -s $IP_EXT -d $IP_EXT -i $IF_EXT -j ACCEPT
     
    iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT
    iptables -A OUTPUT -s $IP_INT -d $IP_INT -o $IF_INT -j ACCEPT
    iptables -A OUTPUT -s $IP_EXT -d $IP_EXT -o $IF_EXT -j ACCEPT
     
    # Nega ping do mundo externo
    iptables -A INPUT -p icmp --icmp-type echo-request -s ! $REDE_INT -i $IF_EXT -d $IP_EXT -j DROP
     
    # Permite o resto do ICMP
    iptables -A INPUT -p icmp -j ACCEPT
    iptables -A OUTPUT -p icmp -j ACCEPT
    iptables -A FORWARD -p icmp -s $REDE_INT -i $IF_INT -o $IF_EXT -j ACCEPT
     
    # DHCP Local
    iptables -A INPUT -p udp -i $IF_INT --dport 67 -j ACCEPT
     
    # DNS Local
    iptables -A INPUT -p udp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 53 -j ACCEPT
    iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT --dport 53 -j ACCEPT
    ### Apache (HTTP) ###
    # "Lan --> Apache Local (HTTP)" #
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_EXT --dport 80 -j ACCEPT
     
    # "Lan --> Apache Local (HTTPS)" #
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 443 -j ACCEPT
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_EXT --dport 443 -j ACCEPT
     
    # "Mundo --> Apache Local (HTTP)" #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 80 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 80 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 80 -j ACCEPT
     
    # "Mundo --> Apache Local (HTTPS)" #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 443 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 443 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 443 -j ACCEPT
     
    # SAMBA
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 139 -j ACCEPT
    iptables -A INPUT -p udp -s $REDE_INT -i $IF_INT -d $IP_INT -m multiport --dport 137,138 -j ACCEPT
    iptables -A INPUT -p udp -s $BRO_INT -i $IF_INT -d $IP_INT -m multiport --dport 137,138 -j ACCEPT
     
    iptables -A OUTPUT -p tcp -s $IP_INT -o $IF_INT --dport 139 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 139 -j ACCEPT
    iptables -A OUTPUT -p udp -s $IP_INT -o $IF_INT -m multiport --dport 137,138,139 -j ACCEPT
    iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT -m multiport --dport 137,138,139 -j ACCEPT
     
    # SQUID
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 3128 -j ACCEPT
    ### FTP ###
    # Local #
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT -m multiport --dport 20,21 -j ACCEPT
    # Mundo #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT -m multiport --dport 20,21 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT -m multiport --dport 20,21 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT -m multiport --dport 20,21 -j ACCEPT
     
    ### SSH ###
    # Local #
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 7500 -j ACCEPT
    # Mundo #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 7500 -j ACCEPT
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 9000 -j ACCEPT
     
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 22 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 7500 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 9000 -j ACCEPT
     
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 22 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 7500 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 9000 -j ACCEPT
     
    ### POP3 ###
    # Local #
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 110 -j ACCEPT
    # Mundo #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 110 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 110 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 110 -j ACCEPT
     
    ### SMTP ###
    # Local #
    iptables -A INPUT -p tcp -s $REDE_INT -i $IF_INT -d $IP_INT --dport 25 -j ACCEPT
    # Mundo #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 25 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 25 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 25 -j ACCEPT
     
    ### Transferencia de DNS ###
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 53 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 53 -j ACCEPT
    # SQL SERVER #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 1433 -j ACCEPT
    iptables -A INPUT -p udp -i $IF_EXT -d $IP_EXT --dport 1433 -j ACCEPT
    iptables -A INPUT -p udp -i $IF_EXT -d $IP_EXT --dport 1434 -j ACCEPT
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 3306 -j ACCEPT
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 156 -j ACCEPT
     
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 1433 -j ACCEPT
    iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT --dport 1433 -j ACCEPT
    iptables -A OUTPUT -p udp -s $IP_EXT -o $IF_EXT --dport 1434 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 3306 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 156 -j ACCEPT
     
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1433 -j ACCEPT
    iptables -A FORWARD -p udp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1433 -j ACCEPT
    iptables -A FORWARD -p udp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1434 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 3306 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 156 -j ACCEPT
     
    # MSN Messenger #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 1863 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 1863 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 1863 -j ACCEPT
    # MSN Messenger Comera Digital #
    iptables -A INPUT -p tcp -i $IF_EXT -d $IP_EXT --dport 5100 -j ACCEPT
    iptables -A OUTPUT -p tcp -s $IP_EXT -o $IF_EXT --dport 5100 -j ACCEPT
    iptables -A FORWARD -p tcp -s $REDE_INT -i $IF_INT -o $IF_EXT --dport 5100 -j ACCEPT
     
    # Faz Log do que sobrou.
    iptables -A INPUT -j LOG --log-prefix "ENTRADA: " --log-level 6
    iptables -A OUTPUT -j LOG --log-prefix "SAIDA: " --log-level 6
    iptables -A FORWARD -i $IF_INT -o $IF_EXT -j LOG --log-prefix "Lan-->Mundo: " --log-level 6
    iptables -A FORWARD -s $REDE_INT -i $IF_INT -o $IF_EXT -j LOG --log-prefix "Lan-->Mundo: " --log-level 6
     
     
    # Fazendo NAT da Lan para o Mundo.
    iptables -A POSTROUTING -t nat -s $REDE_INT -o $IF_EXT -d ! $REDE_INT -j MASQUERADE
     
    # Tira o log da tela
    echo "0" > /proc/sys/net/ipv4/conf/all/log_martians

    Aguardo uma resposta.
    Grato, Giuliano

  2. #2
    wrochal
    Visitante

    Padrão Problemas com iptables

    Caro,

    Verifique se você habilitou resolução de nome (DNS) portas tcp e udp.

    falou,

  3. #3
    giuliano
    Visitante

    Padrão Problemas com iptables

    As portas do dns estâo liberadas, eu nâo consigo pingar nem por ip´...
    Valeu, aguardo uma resposta...

  4. #4

    Padrão Problemas com iptables

    Citação Postado originalmente por giuliano
    # Fazendo NAT da Lan para o Mundo.
    iptables -A POSTROUTING -t nat -s $REDE_INT -o $IF_EXT -d ! $REDE_INT -j MASQUERADE

    Teste usar desta forma:

    Código :
    iptables -t nat -A POSTROUTING -s $REDE_INT -o $IF_EXT -j MASQUERADE

    Provavelmente vai funcionar! :wink:
    Há e outra coisinha de uma arrumada nesse seu script tem varia regras empregadas de maneiras fora do padrão, muitas delas repetitivas.

    [size=9px]PS: Não leva a mal é só uma opinião[/size]

  5. #5

    Padrão Problemas com iptables

    quem eh essa mina ai???!? hehehuahu

  6. #6
    wrochal
    Visitante

    Padrão Problemas com iptables

    Caro,

    Citação Postado originalmente por joaoreis
    quem eh essa mina ai???!? hehehuahu


    è a minha assinatura ou melhor minha musa..

    falou,

  7. #7

    Padrão Problemas com iptables

    Citação Postado originalmente por wrochal2002
    Caro,

    Citação Postado originalmente por joaoreis
    quem eh essa mina ai???!? hehehuahu


    è a minha assinatura ou melhor minha musa..

    falou,
    Mandou bem ... hehehe o problema é que no fórum só tem marmanjo ....sei la eu não faria isso hehehe

  8. #8
    wrochal
    Visitante

    Padrão Problemas com iptables

    E ae cara,

    Olhar não mata ninguém.. e elogiar tmb não..rsrsrsrs

    falou,


    Citação Postado originalmente por smvda
    Citação Postado originalmente por wrochal2002
    Caro,

    Citação Postado originalmente por joaoreis
    quem eh essa mina ai???!? hehehuahu


    è a minha assinatura ou melhor minha musa..

    falou,
    Mandou bem ... hehehe o problema é que no fórum só tem marmanjo ....sei la eu não faria isso hehehe

  9. #9

    Padrão Problemas com iptables

    voltando ao assunto tira o "-d" do nat que acho que vai funcionar pois vc esta especicicando um destino para ele e a saida por ser qualquer destino ......