+ Responder ao Tópico



  1. #1

    Padrão Ajuda novamente com firewall

    Pessoal, estava fazendo testes no meu firewall, para isso usei um servidor com interface eth0 (10.10.10.0) e coloquei um alis eth0:1 (192.168.0.0), eu recebi internet pelo alias eth0:1.
    Com isso meu firewall abaixo funcionava perfeitamente:

    #!/bin/sh
    # Variaveis de ambiente
    interna=eth0
    externa=eth0
    rede_interna=10.10.10.0/24
    dns_externo=xxxxxx
    porta_dns=53
    dedalus1=xxxxxx
    dedalus2=xxxx
    porta_remote_desktop=3389
    porta_pop=25
    pop_locaweb=xxxxx
    porta_smtp=110
    smtp_locaweb=xxxx
    # Carregar modulos
    modprobe iptable_nat
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe ipt_LOG
    modprobe ipt_REJECT
    modprobe ipt_MASQUERADE

    # Tabelas padrão
    iptables -F
    iptables -X
    iptables -F -t nat
    iptables -X -t nat
    iptables -F -t mangle
    iptables -X -t mangle
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP
    # Descarta pacotes malformados, protegendo contra ataques diversos:
    iptables -A INPUT -m state --state INVALID -j DROP
    # Libera todo o acesso a interface loopback
    iptables -t filter -A INPUT -j ACCEPT -i lo
    # Permite acesso total da rede interna para o firewall
    iptables -A INPUT -s $rede_interna -i eth0 -j ACCEPT
    # Libera o SSH
    iptables -A INPUT -p tcp --dport 22 -i eth0 -j ACCEPT
    # Mantem as conexoes estabelecidades e relatadas da tabela INPUT
    iptables -t filter -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
    # Impede a abertura de novas conexões
    iptables -A INPUT -p tcp --syn -j DROP
    # Libera o Ping
    #iptables -t filter -A FORWARD -p icmp -j ACCEPT
    # Redireciona as conexoes da porta 80 para a porta 3128 do squid
    #iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
    # Mantem as conexoes estabelecidas e relatadas da tabela FORWARD
    #iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    # Libera o DNS
    iptables -t filter -A FORWARD -s $rede_interna -p udp --dport $porta_dns -o eth0 -d $dns_externo -j ACCEPT
    # Libera acesso ao servidor externo
    iptables -t filter -A FORWARD -s $rede_interna -p tcp --dport $porta_remote_desktop -o eth0 -d $dedalus1 -j ACCEPT
    iptables -t filter -A FORWARD -s $rede_interna -p tcp --dport $porta_remote_desktop -o eth0 -d $dedalus2 -j ACCEPT
    # Liberar acesso ao e-mail promaps via outlook
    iptables -t filter -A FORWARD -s $rede_interna -p tcp --dport $porta_pop -o eth0 -d $pop_locaweb -j ACCEPT
    iptables -t filter -A FORWARD -s $rede_interna -p tcp --dport $porta_smtp -o eth0 -d $smtp_locaweb -j ACCEPT
    # Libera as máquinas listadas abaixo do firewall
    #iptables -t filter -A FORWARD -s 10.10.10.4 -o eth0 -j ACCEPT

    Só que agora montei a máquinas que será o firewall da rede com as interfaces fisicas eth0 e eth1 porém não funciona essas regras acima.

    Eu não manjo nada de firewall tive ajuda de um colega do firewall para montar essas regras.

    Obrigado

  2. #2

    Padrão

    Você alterou essas linhas do script???
    interna=eth0
    externa=eth0

  3. #3

  4. #4

    Padrão

    Será que tem algo a ver com o FORWARD e NAT ? Porque nenhum momento eu faço NAT nesse firewall, e eu recebo em uma interface o speedy e na outra a minha rede.

    E antes quando eu testei esse firewall meu computador possui apenas uma interface de rede e eu usava um alias

  5. #5

    Padrão

    Cara, o que exatamente não está funcionando??

  6. #6

    Padrão

    Citação Postado originalmente por Slackdi Ver Post
    Será que tem algo a ver com o FORWARD e NAT ? Porque nenhum momento eu faço NAT nesse firewall, e eu recebo em uma interface o speedy e na outra a minha rede.

    E antes quando eu testei esse firewall meu computador possui apenas uma interface de rede e eu usava um alias
    Cara você mesmo respondeu sua pergunta...
    Se sua internet não funciona é pelo fato de não estar fazendo NAT!

    Código :
    iptables -t nat -A POSTROUTING -o <interface da internet> -j MASQUERADE

    Falowww!

  7. #7

    Padrão

    Ola Zenun, entao nao funciona as regras que não funcionam são as regras para acesso a pop e smtp e também para acessar outras portas, na verdade qualquer regra que não passe pela porta 80 que eu uso o squid.
    Realmente nao sei o que esta havendo

  8. #8

    Padrão

    Mais se eu fazer o nat não vou liberar todo o trafego?
    Pois eu nao queria, gostaria de tudo bloqueado e ir liberando aos poucos igual foi feito no firewall acima.

  9. #9

    Padrão

    Aquela regra vai fazer NAT!
    Se você vai permitir que os pacotes passem é outra história!
    Essas regras de permitir uma determinada porta precisam ser colocadas na chain FORWARD!
    Ficaria mais ou menos assim:

    Código :
    iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # permite que os pacotes voltem
    iptables -t filter -A FORWARD -p tcp -m multiport 25,110,443 -j ACCEPT # permite novas conexões nestas portas
    iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT # permite consultas externas de DNS

    Com isso você vai liberar alguns serviços (25,110,443,53), mas só eles e se sua chain FORWARD estiver
    com a politica padrão em DROP!

  10. #10

    Padrão

    O iptables funciona com o conceito de tabelas e chains. Quando ele roteia um tráfego ele segue a seguinte ordem de chains e tabelas:

    IN-> Tabela Mangle, Chain Prerouting -> Tabela Nat, chain Prerouting -> Tabela Mangle, chain Forwarding--- (continua)
    ---> Tabela Filter, Chain Forward -> Tabela Mangle, chain Postrouting -> Tabela Nat, chain Postrouting -> OUT

    O NAT é feito na chain Postrouting da tabela Nat, enquanto o filtro de portas é feito na chain Forward da tabela Filter.

    Desta forma você filtra o tráfego indesejado antes de fazer o NAT, como zenun falou.

    Agora, para alguém iniciante em iptables definir a politica padrão como DROP e sair abrindo as portas necessárias pode ser um pouco difícil. Antes de uma lida nesse link: Guia Foca GNU/Linux - Firewall iptables

    Qualquer coisa posta ai...

  11. #11

    Padrão

    Isso que o magnun falou é bem importante... o fluxo dos pacotes dentro do iptables!
    Caso você precise de um aprofundamento teórico existe o site que ele indicou e posso indicar meu blog onde fiz uma descrição do iptables e esta mais curto... pode ser um início para você!

    Yet Another Linux Blog: Iptables - Descrição das chains e seu uso na prática

    Faloww

  12. #12

    Padrão

    Citação Postado originalmente por zenun Ver Post
    Isso que o magnun falou é bem importante... o fluxo dos pacotes dentro do iptables!
    Caso você precise de um aprofundamento teórico existe o site que ele indicou e posso indicar meu blog onde fiz uma descrição do iptables e esta mais curto... pode ser um início para você!

    Yet Another Linux Blog: Iptables - Descrição das chains e seu uso na prática

    Faloww

    Ótimo blog cara (post do iptables também)! Você utilizou o tutorial de iptables do frozentux como fonte não foi? Aquela imagem do fluxo do iptables... Utilizo muito o tuto do frozentux quando tenho dúdida...

    Até mais...

  13. #13

    Padrão

    Hehehe eu já li muito aquele tutorial! Muito bom porém esta em inglês e esta muito grande, o que acaba desanimando muita gente a estudar! Isso foi um dos meus incentivos para criar algo deste tipo!

    Aquela imagem tirei de la sim... me ajudou muito a debugar alguns firewalls que ja fiz e a entender melhor onde vai cada regra!

  14. #14

    Padrão

    Citação Postado originalmente por zenun Ver Post
    Hehehe eu já li muito aquele tutorial! Muito bom porém esta em inglês e esta muito grande, o que acaba desanimando muita gente a estudar! Isso foi um dos meus incentivos para criar algo deste tipo!

    Aquela imagem tirei de la sim... me ajudou muito a debugar alguns firewalls que ja fiz e a entender melhor onde vai cada regra!

    Concordo com você... é muito grande mesmo, e muita gente não saca de inglês. Parabéns pela iniciativa...

    Até mais...

  15. #15

    Padrão

    Opa! Valeu!!
    Vamos ver o que nosso amigo nos responde!!

    Até