+ Responder ao Tópico



  1. #1

    Padrão Firewall mais basico possivel

    Pessoal tava pensando qual seria as regras de firewall mais basicas para apenas o usuario navegar sem mais nada, maquina que o proprio usuario usa sem rede interna, e pensei nessas:
    Código :
    # Limpando as Regras
    iptables -F INPUT
    iptables -F OUTPUT
    iptables -F FORWARD
     
    # Definindo a Politica Default das Cadeias
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP
     
    # Desabilitando o trafego IP Entre as Placas de Rede
    echo "0" > /proc/sys/net/ipv4/ip_forward
     
    # Configurando a Protecao anti-spoofing
    echo "Setting anti-spoofing .....[ OK ]"
    for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
            echo "1" > $spoofing
            done
    # Qualquer pacote IP que venha do localhost, Ok.
    iptables -A INPUT -s 127.0.0.1 -j ACCEPT
     
    # No iptables, temos de dizer quais sockets sao validos em uma conexao
    iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    Teria de por algo mais??

    QQ ideia é bem vinda, obrigado

  2. #2
    TheMage
    Visitante

    Padrão Firewall mais basico possivel

    Puxa,.. acho que vc liberou tudo quando pos -m state --state NEW -j ACCEPT

    O firewall pra vc simplesmente navegar,.. vc tem que liberar, logico, a navegação, mas tem que liberar tmb resolução de nomes,...

    Segue esse: (to fazendo agora,.. !! hehehe)

    ipt=path/to/iptables
    IFEXT=eth0; #Um modelo de interface externa, que sai para a internet

    $ipt -P INPUT DROP
    $ipt -P OUTPUT DROP
    $ipt -P FORWARD DROP

    $ipt -A INPUT -i lo -j ACCEPT
    $ipt -A INPUT -m state --state ESTABELISHED,RELATED -i ${IFEXT} -j ACCEPT

    $ipt -A OUTPUT -m state --state ESTABELISHED,RELATED -o ${IFEXT} -j ACCEPT
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p udp --dport 53 -j ACCEPT
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p tcp --dport 80 --syn -j ACCEPT
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p tcp --dport 443 --syn -j ACCEPT

    heheheh,... Bem simplesinho,.. heheh,... gostei,.. !
    esta eh uma boa pratica,... segue o modelo de melhor firewall,...



  3. #3

    Padrão Firewall mais basico possivel

    Citação Postado originalmente por TheMage
    Puxa,.. acho que vc liberou tudo quando pos -m state --state NEW -j ACCEPT

    O firewall pra vc simplesmente navegar,.. vc tem que liberar, logico, a navegação, mas tem que liberar tmb resolução de nomes,...

    Segue esse: (to fazendo agora,.. !! hehehe)

    ipt=path/to/iptables
    IFEXT=eth0; #Um modelo de interface externa, que sai para a internet

    $ipt -P INPUT DROP
    $ipt -P OUTPUT DROP
    $ipt -P FORWARD DROP

    $ipt -A INPUT -i lo -j ACCEPT
    $ipt -A INPUT -m state --state ESTABELISHED,RELATED -i ${IFEXT} -j ACCEPT

    $ipt -A OUTPUT -m state --state ESTABELISHED,RELATED -o ${IFEXT} -j ACCEPT
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p udp --dport 53 -j ACCEPT
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p tcp --dport 80 --syn -j ACCEPT
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p tcp --dport 443 --syn -j ACCEPT

    heheheh,... Bem simplesinho,.. heheh,... gostei,.. !
    esta eh uma boa pratica,... segue o modelo de melhor firewall,...
    Cara so uma coisa é ESTABLISHED nao ESTABELISHED, e tpo assim esse ta legal pq so permite navegação, ae voce pode ir liberando o que mais vc quiser as poucos, é uma boa ideia tb, o meu eu pensei mais para deixar o usuario fazer tudo, mas protejer ele contra tentativas de invasão, alem dessas regras quis regras de proteção o pessoal acha que tem de por??

    vlw ae

  4. #4

    Padrão Re: Firewall mais basico possivel

    Cade as regras que ativam o repasse dos pacotes MASQUERADE ???

    Ou nao tem ???

    Valeu



  5. #5

    Padrão Re: Firewall mais basico possivel

    Citação Postado originalmente por gatoseco
    Cade as regras que ativam o repasse dos pacotes MASQUERADE ???

    Ou nao tem ???

    Valeu
    Cara esse firewall nao é para fazer nat, é apenas um firewall para uma maquina, para permitir que ela use a internet, uma maquina sem rede interna nem nada, so ela, um firewall que seria para implantar em maquinas de usuarios domesticos ou em um laptop, entao gostaria de ideias para deixar esse firewall o mais fechado possivel. Seja com log de tentativas ou bloqueio de possiveis ataques.

    falows

  6. #6

    Padrão Re: Firewall mais basico possivel

    Agora eu vi que so burro desculpe nao tinha me ligado !!!



  7. #7
    robsonzornitta
    Visitante

    Padrão ai meu!!

    kr achei bem simples e tbm beim funcional gostei do script se tu quiser apenas para a maquina local (INPUT) jah tah massa eu acho que tah bom!! :good: :P

  8. #8
    rmars
    Visitante

    Padrão Firewall mais basico possivel

    Seguindo as regras do TheMage, como eu faria para liberar o ftp.
    Liberei a 20 e a 21 para output, consigo me logar, mas na hora de listar o conteudo nao funfa. Tanto em ativo qto passivo. Ftp é sempre um problema, pq trabalhar de forma diferente, em portas altas.

    Alguém ai consegue uma regra pra permitir ambos ftps(ativo e passivo) numa boa.




  9. #9

    Padrão Firewall mais basico possivel

    Citação Postado originalmente por rmars
    Seguindo as regras do TheMage, como eu faria para liberar o ftp.
    Liberei a 20 e a 21 para output, consigo me logar, mas na hora de listar o conteudo nao funfa. Tanto em ativo qto passivo. Ftp é sempre um problema, pq trabalhar de forma diferente, em portas altas.

    Alguém ai consegue uma regra pra permitir ambos ftps(ativo e passivo) numa boa.

    Cara nao sei, mas hj a noite testo e vejo se acho alguma solução em cima da do the mage.

    falows

  10. #10
    TheMage
    Visitante

    Padrão Re: Firewall mais basico possivel

    :-D Muitos e Muitos Anos depois .... :-D

    Bem a regra para liberar ftp eh simples...
    tipo ele faz ftp na porta 21 certo ? entao eh so adicionar a seguinte regra...
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p tcp --dport 21 --syn -j ACCEPT

    e o acesso FTP esta liberado,.. hehe,..

    AH claro ,.. e o ftp-data ,.. bem pra isso vcs tem duas saidas,.. primeira seria com um modulo do iptables que ativa um controle um pouco melhor sobre ftp,..
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp # este apenas para firewall com nat !

    Mais uma coisa,... Vi nuns ai em cima que pediram como liberar saida de tudo,.. ,.. bem simples,...

    #Libera todo trafego novo udp,...
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p udp -j ACCEPT
    #Libera todo trafego novo tcp com flag de sincronismo.
    $ipt -A OUTPUT -m state --state NEW -o ${IFEXT} -p tcp --syn -j ACCEPT




    Ai se alquem quiser algum servico de redes,.. www.kserv.com.br



  11. #11

    Padrão Re: Firewall mais basico possivel

    Galera, seguindo a ideia acima, de um firewall simples, mas com NAT, como faço pra bloquear tudo e ir liberando aos poucos?
    Fiz conforme abaixo, mas nao funfa... alguma coisa estou fazendo errado, tipo, bloqueia tudo no próprio firewall, mas numa estacao ruindows, ta tudo liberado:
    Código :
    # Ativa Roteamento via Kernel
    # -------------------------------------------------------------------------------------------
    echo "1" > /proc/sys/net/ipv4/ip_forward
     
    # Limpa as Regras
    # -------------------------------------------------------------------------------------------
    iptables -F
    iptables -t nat -F   # Flush no NAT
    iptables -X       # Flush nas CHAINS PERSONALIZADAS
    iptables -Z       # Zera regras especificas. Qdo nao houver argumentos, zera todas as regras. Idem ao -f.
     
    # Politicas
    # ------------------------------------------------------------------------------------------
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT DROP
     
    # Mascaramento e Roteamento
     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
     iptables -A FORWARD -i eth0 -j ACCEPT
     iptables -A FORWARD -i eth1 -j ACCEPT
    # iptables -A FORWARD -i eth2 -j ACCEPT
     
    # Stateful
     iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
     iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
    # Liberando SSH
     iptables -A INPUT -p tcp --dport ssh -j ACCEPT
     
    # Liberando acesso DHCPD - Para que as estacoes possam receber IP dinamicamente
     iptables -A INPUT -p udp --dport 67 -j ACCEPT
     iptables -A INPUT -p udp --dport 137 -j ACCEPT
     
    # FTP
     modprobe ip_conntrack_ftp
     modprobe ip_nat_ftp
     
    # WWW
     iptables -A OUTPUT -p TCP -o eth0 --dport 80 -j ACCEPT
     iptables -A OUTPUT -p UDP -o eth0 --dport 80 -j ACCEPT

  12. #12
    TheMage
    Visitante

    Padrão Re: Firewall mais basico possivel

    Bem logo no começo vc tem o firewall pra propria maquina,.. fica faltando apenas a parte firewall do gateway,... Segue abaixo,...

    # modprobe ip_nat_ftp
    # este é para caso vc queira permitir ftp ativo atravez do nat;


    # Liberar todos os pacores de retornos,
    $ipt -A FORWARD -m state --state ESTABELISHED,RELATED -i ${IFEXT} -o ${IFINT} -j ACCEPT


    #opção 1 ,... liberar tudo que vier da rede interna indo pra externa com inicio de coneção
    $ipt -A FORWARD -m state --state NEW -o ${IFEXT} -i ${IFINT} -p tcp --syn -j ACCEPT
    $ipt -A FORWARD -m state --state NEW -o ${IFEXT} -i ${IFINT} -p udp -j ACCEPT

    #opção 2 ... Liberar apenas o que se quer deixar sair
    $ipt -A FORWARD -m state --state NEW -o ${IFEXT} -i ${IFINT} -p tcp --dport 80 --syn -j ACCEPT
    $ipt -A FORWARD -m state --state NEW -o ${IFEXT} -i ${IFINT} -p udp --dport 53 -j ACCEPT
    # Note que se vc usa proxy, server dns no firewall ou na rede interna vc nao precisa da porta 53 liberada

    _____ Esta era a parte do firewall,.. agora vem a parte do nat ____
    # Mascaramento e Roteamento
    iptables -t nat -A POSTROUTING -o ${IFEXT} -i ${IFINT} -s xxx.xxx.xxx.xxx/xx -j MASQUERADE



    NOTA: Seria interesante ainda fazer bloqueios para evitar spoofing e outros incovenientes,...
    Estes eu aconselho ir antes de todas as regras exeto a liberação do loop back do sistema 'lo'

    NOTA: Nas regras acima poderia ainda ser especificada a rede interna tipo,... -s 10.8.3.0/28 e -d 10.8.3.0/28 ,... em saida e entrada dos pacotes respectivamente

    ASS: Anderson J. de Souza.
    -> www.kserv.com.br




  13. #13

    Padrão Re: Firewall mais basico possivel

    o -s (sorce) no mascaramento é o IP da rede interna?

  14. #14

    Padrão Re: Firewall mais basico possivel

    outro detalhe que me dei conta agora, opcao -i no POSTROUTING ???



  15. #15
    TheMage
    Visitante

    Padrão Re: Firewall mais basico possivel

    Tipo,.. sim o ip eh a rede que vc quer que seja mascarada,... e só quando sair na interface externa ${IFEXT}, para que quando um ip interno acessar algo interno os registros nao apontem como sendo o do seu 'firewall', ... um erro que ja vi algumas vezes,.. :

    maquina interna 1: 192.168.4.1
    maquina interna 2: 192.168.4.2

    servidor interno 3: 10.0.0.3

    firewall 'GW':
    eth0 200.200.200.20 # ista eh a saida para a internet
    eth1 10.0.0.5 # ista eh a saida servidores internos
    eth2 192.168.4.3 # interface da rede interna

    com uma regra que faz mascaramento de tudo da rede interna invalida o que acenteceria no caso do cliente 2 fazer acesso indevidos ao server 3 ?? em quando o cliente 1 eh um user bem comportado. ! ,.. como vc saberia qual deles eh o bem comportado e o que merece um puxão de orelhas ?


    Bem eh algo que eu nao preciso explicar muito né,.. olhem e analizem,..


    quando a segunda questao do -i ,.. vou deixar ai,... afinal usar um man devez em quando faz bem !

    se precisarem de algo,... estamos ai,.. !