+ Responder ao Tópico



  1. #1
    DarkSide
    Visitante

    Padrão Firewall pra macho !!

    E aeee galera !!

    Bom, seguinte... A empresa aki eh uma softwarehouse e temos um link dedicado da embratel com 2 classes de 64 ips e um servidor completo. Iremos trabalhar em conjunto com a VISA e a MasterCard, autenticando cartões de compras efetuadas nos sites de e-commerce gerenciado por nós. Preciso implementar um firewall forte para que nossa rede seja aprovada pela VISA e MasterCard.

    Então vamos conhecer minha rede:

    - Recebo o link em um CISCO 2500 e jogo ele em cabo cross para meu firewall
    - O firewall possui 3 placas de redes, sendo elas:

    eth0 - rede interna da empresa com IPs frios mascarados
    eth1 - classe de rede dos servidores
    eth2 - recebe o link que vem do roteador

    Estou tentando usar a seguinte estratégia no firewall:

    - blokear todas as Entradas, Repasses e Saídas
    - mascarar rede interna (fria)
    - fazer proteções básicas (portscan, ping, etc...)
    - liberar repasse das portas desejadas somente para as maquinas desejadas
    - liberar somente entrada de SSH para o firewall

    O problema é que se a politica de repasse for DROP, então NADA funciona, evidentemente está faltando alguma coisa no meu script ai de firewall (logo abaixo), mas não sei o que é que pode ser.

    Ajuda eu ai galera :wink:

    []'s

    Script do Firerwall:

    [root@Firewall /etc/rc.d]# cat firewall
    ##############################################################################
    # Limpando regras
    ##############################################################################

    iptables -t nat -F
    iptables -F

    ##############################################################################
    # Impedir passagem de tudo de qualker lugar para qualker lugar
    ##############################################################################

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

    ##############################################################################
    # Fazer NAT para a rede interna
    ##############################################################################

    modprobe ipt_conntrack
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    iptables -t nat -F
    iptables -t nat -I POSTROUTING -s 10.0.0.0/24 -o eth2 -j MASQUERADE

    ##############################################################################
    # Protecoes basicas
    ##############################################################################

    # Ping
    iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
    iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP

    # Ping da morte
    iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # Syn-flood
    iptables -A INPUT -p tcp -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

    # Portscan
    iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

    # Bugs em traducao NAT
    iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP

    ##############################################################################
    # Liberar REPASSE das portas para o servidor 200.200.200.201 (Server1)
    ##############################################################################

    # DNS
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 53 -j ACCEPT
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p udp --dport 53 -j ACCEPT

    # SMTP
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 25 -j ACCEPT

    # POP
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 110 -j ACCEPT

    # IMAP
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 143 -j ACCEPT

    # FTP
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 20 -j ACCEPT
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 21 -j ACCEPT

    # HTTP
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 80 -j ACCEPT

    # HTTPS
    iptables -A FORWARD -o eth2 -d 200.200.200.201 -p tcp --dport 443 -j ACCEPT

    # Liberar repasse para pacotes vindos do servidor Server1
    iptables -A FORWARD -s 200.200.200.201 -j ACCEPT


    ##############################################################################
    # Liberar REPASSE das portas para o servidor 200.200.200.202 (Server2)
    ##############################################################################

    # DNS
    iptables -A FORWARD -o eth2 -d 200.200.200.202 -p tcp --dport 53 -j ACCEPT
    iptables -A FORWARD -o eth2 -d 200.200.200.202 -p udp --dport 53 -j ACCEPT

    # FTP
    iptables -A FORWARD -o eth2 -d 200.200.200.202 -p tcp --dport 20 -j ACCEPT
    iptables -A FORWARD -o eth2 -d 200.200.200.202 -p tcp --dport 21 -j ACCEPT

    # HTTP
    iptables -A FORWARD -o eth2 -d 200.200.200.202 -p tcp --dport 80 -j ACCEPT

    # HTTPS
    iptables -A FORWARD -o eth2 -d 200.200.200.202 -p tcp --dport 443 -j ACCEPT

    # Liberar repasse para pacotes vindos do servidor Server2
    iptables -A FORWARD -s 200.200.200.202 -j ACCEPT

    ##############################################################################
    # Liberar REPASSE das portas para o servidor 200.200.200.203 (Windows 2000)
    ##############################################################################

    # VNC
    iptables -A FORWARD -o eth2 -d 200.200.200.203 -p tcp --dport 5900:5999 -j ACCEPT

    ##############################################################################
    # Liberar acesso para SSH no firewall
    ##############################################################################

    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    iptables -I INPUT -p udp --dport 22 -j ACCEPT

  2. #2
    charadaa
    Visitante

    Padrão Firewall pra macho !!

    por favor me diga amigo, o que não esta funcionando, vc esqueceu defazer o nat é isso

    iptables -t nat -A PREROUTING -p tcp -s ip_de_onde_vem_a_conexao -d seu_ip_valido_na_internet --dport xxxx -j DNAT --to 192.168.0.x:xxxx

    depois é só liberar o forward.

    aqualquer coisa posta ae

  3. #3
    DarkSide
    Visitante

    Padrão Firewall pra macho !!

    Citação Postado originalmente por charadaa
    por favor me diga amigo, o que não esta funcionando, vc esqueceu defazer o nat é isso

    iptables -t nat -A PREROUTING -p tcp -s ip_de_onde_vem_a_conexao -d seu_ip_valido_na_internet --dport xxxx -j DNAT --to 192.168.0.x:xxxx

    depois é só liberar o forward.

    aqualquer coisa posta ae
    Tipo... o meu problema está nessa liberação do FORWARD, ou seja, observe que no inicio do script está:

    iptables -P FORWARD ACCEPT

    Isso faz com que ele repasse tudo, logicamente todas as regras que eu colokei são inúteis, eu preciso utilizar essa política como DROP ou seja:

    iptables -P FORWARD DROP

    Soh que ai, fazendo dessa forma nada funciona ! nem o nat e nem as portas liberadas para os servidores. :cry:

    A minha intenção é fechar todo o repasse e liberar apenas o que eu quiser, que no caso são determinadas portas apenas para determinados servidores.

    A detalhe... creio que seja informação irrelevante, mas axo bom dizer.... também vou utilizar no firewall o SNORT com guardian e estou pensando em colocar também o Portsentry junto.

    []'s

  4. #4
    frpaes
    Visitante

    Padrão Firewall pra macho !!

    Amigo

    Da uma olhada nisso aqui: http://www.clubedasredes.eti.br/rede0023.htm

    Drop em sua chain forward

    e inclua isso aqui:
    $IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
    $IPTABLES -A FORWARD -j LOG

    Felipe Rafael
    FWD# 543406

  5. #5
    Visitante
    Visitante

    Padrão Firewall pra macho !!

    caro amigo, vc cometeu, uns dos erros, mais grave na administração de redes, publicar o seu ip e como sabemos qual regra de firewall vc usa, cara vou hackear o seus servers.
    hauhauhauhauhauh.

  6. #6
    frpaes
    Visitante

    Padrão Firewall pra macho !!

    Sem comentarios !!!

    E uma pena que existam pessoas assim.

  7. #7
    DarkSide
    Visitante

    Padrão Firewall pra macho !!

    Citação Postado originalmente por Visitante
    caro amigo, vc cometeu, uns dos erros, mais grave na administração de redes, publicar o seu ip e como sabemos qual regra de firewall vc usa, cara vou hackear o seus servers.
    hauhauhauhauhauh.

    Opz, uma gafe rapida eu admito (é isso q dah trabalha ateh mais tarde), mas ja resolvido.

  8. #8
    pedro_brother
    Visitante

    Padrão vacilo

    Pessoal um cara desses nem devia entrar aqui no underlinux . esse ai num deve nem saber quem é a mae dele... coitado desse cara deve saber nem que é ip esse ai é um mané. pode ficar tranquilo que esse cara nao tem cacife para invadir ninguem nao ...

    queria que um cara desses ma invadisse olh ao meu aqui 200.96.174.177.. :lol: :lol: :lol: entra aqui no meu
    esse ai que vc esta vendo é da embaixada do canadá onde eu trabalho quero ver tu entrar...

  9. #9
    DarkSide
    Visitante

    Padrão Firewall pra macho !!

    Citação Postado originalmente por frpaes
    Amigo

    Da uma olhada nisso aqui: http://www.clubedasredes.eti.br/rede0023.htm

    Drop em sua chain forward

    e inclua isso aqui:
    $IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
    $IPTABLES -A FORWARD -j LOG

    Felipe Rafael
    FWD# 543406
    Valeu pela dica baseado no link q vc passou arrumei algumas coisinhas e tal, mas ainda continua não funcionando

    Eh gente a coisa tah dificil, vamos tentar uma coisa mais simples...
    Bom, lembrando que no firewal tem 3 placas de rede sendo:

    eth0 - rede interna (10.0.0.0)
    eth1 - servidores (200.200.200.0)
    eth2 - internet (201.201.201.0)

    Vamos blokear todo o repasse, e procurar liberar o acesso ao serviço DNS de um servidor e ativar o mascaramento da rede interna

    Observem o script:

    ----------------------------------------------

    # Limpando regras

    iptables -t nat -F
    iptables -F

    # Impedir passagem de tudo de qualker lugar para qualker lugar

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP


    # Liberar REPASSE da rede interna para os servidores / servidores para rede interna / rede interna para firewal / servidores para firewall
    iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    iptables -A INPUT -i eth0 -j ACCEPT
    iptables -A INPUT -i eth1 -j ACCEPT

    # Liberar REPASSE da rede interna para fora / servidores para fora
    iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT
    iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT

    # Liberar SSH partido do firewall
    iptables -A INPUT -i eth2 -p tcp --sport 22 -j ACCEPT

    # Liberar REPASSE de DNS para o servidor 200.200.200.1 (Server1)

    iptables -A FORWARD -o eth2 -d 200.200.200.1 -p tcp --dport 53 -j ACCEPT
    iptables -A FORWARD -o eth2 -d 200.200.200.1 -p udp --dport 53 -j ACCEPT

    # Mascarar rede interna

    iptables -t nat -F
    iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward

    ----------------------------------------------

    O resultado esperado eh que a internet funcione normalmente na rede mascarada e que o serviço de DNS do servidor 200.200.200.1 funcione perfeitamente e respondendo as conexões em suas portas 53 TCP e UDP

    Mas num vai !! :cry:

    E ai galera ? qual a dica ?

  10. #10

    Padrão Firewall pra macho !!

    Citação Postado originalmente por Visitante
    caro amigo, vc cometeu, uns dos erros, mais grave na administração de redes, publicar o seu ip e como sabemos qual regra de firewall vc usa, cara vou hackear o seus servers.
    hauhauhauhauhauh.
    q ridiculo isso linuxkids

    quem quiser conhecer mais um pouco sobre nosso "amigo" visitante ae, deem uma olhada no profile dele:
    https://under-linux.org/modules.php?...profile&u=8960

    O login eh LinuxKids e omsn dele eh:
    [email protected]

    O site q ele mantem eh o:
    www.linuxstar.com.br

    []'s

  11. #11
    Lestat1
    Visitante

    Padrão Firewall pra macho !!

    HEHEHEHEEH, tomo papudo, foi dar de esperto e acabou sendo descoberto.
    É isso aí demiurgo

  12. #12
    felco
    Visitante

    Padrão Firewall pra macho !!

    Citação Postado originalmente por DarkSide
    Citação Postado originalmente por Visitante
    caro amigo, vc cometeu, uns dos erros, mais grave na administração de redes, publicar o seu ip e como sabemos qual regra de firewall vc usa, cara vou hackear o seus servers.
    hauhauhauhauhauh.

    Opz, uma gafe rapida eu admito (é isso q dah trabalha ateh mais tarde), mas ja resolvido.
    Testa o www.ipcop.org talvez ele tenha limitacoes tecnicas pra oque voce ta fazendo, mas pelo oque eu vi no seu script nao vai ter problema em usar ele e com certeza vai poupar muita horas escrevendo ruleset... ou entao se quiser algo robusto eh realmente flexivel usa o tuxfrw que e' muito bom mesmo!!!! http://tuxfrw.sourceforge.net/

  13. #13
    DarkSide
    Visitante

    Padrão Firewall pra macho !! SOLUCIONADO !!

    Resolvido !

    Nada como estudar um pouco....

    Valeu galera (inclusive o nosso "amigo" que diz que vai me hackear, agradeço o toke do ip :wink: ), os links indicados por todos foi de bom uso. Agora tah tudo funcionando redondim.

    Vou postar minha solução encontrada, pois foi dificil achar na net alguém que fizesse o mesmo pra poder servir de base. Fica aki minha contribuição a todos.

    Vejam como ficou meu script:

    # Limpando regras
    iptables -t nat -F
    iptables -F

    # Fechando repasse e entrada
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD DROP

    # Relatando conexoes
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

    # Aceitando conexões para o Loopback do Firewall
    iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
    iptables -A INPUT -p ALL -s 200.200.200.254 -i lo -j ACCEPT
    iptables -A INPUT -p ALL -s 201.201.201.254 -i lo -j ACCEPT

    # Liberar SSH partido do firewall
    iptables -A INPUT -i eth2 -p tcp --sport 22 -j ACCEPT

    # Liberar REPASSE das portas para o servidor 200.200.200.1 (Server1)
    # DNS tcp,udp / SMTP / POP / IMAP / FTP / HTTP / HTTPS
    iptables -A FORWARD -p udp -d 200.200.200.1 --dport 53 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 53 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 25 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 110 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 143 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 20 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 21 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 80 -d 200.200.200.1 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 443 -d 200.200.200.1 -j ACCEPT

    # Liberar REPASSE das portas para o servidor 200.200.200.2 (Server2)
    # DNS tcp,udp / FTP / HTTP / HTTPS
    iptables -A FORWARD -p udp -d 200.200.200.2 --dport 53 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 53 -d 200.200.200.2 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 20 -d 200.200.200.2 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 21 -d 200.200.200.2 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 80 -d 200.200.200.2 -j ACCEPT
    iptables -A FORWARD -p tcp -m tcp --dport 443 -d 200.200.200.2 -j ACCEPT

    # Liberar REPASSE das portas para o servidor 200.200.200.3 (Windows 2000)
    # VNC
    iptables -A FORWARD -p tcp -m tcp --dport 5900:5999 -d 200.200.200.3 -j ACCEPT

    # Mascaramento
    modprobe ipt_conntrack
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to 201.201.201.254

    # Proteções
    # Ping
    iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
    iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP

    # Ping da morte
    iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # Syn-flood
    iptables -A INPUT -p tcp -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

    # Portscan
    iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
    iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT

    # Bugs em traducao NAT
    iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP

    # Ataques DoS
    iptables -A FORWARD -m unclean -j DROP

    # spoofing
    iptables -A INPUT -i eth2 -s 10.0.0.0/8 -j DROP
    iptables -A INPUT -i eth2 -s 172.16.0.0/12 -j DROP
    iptables -A INPUT -i eth2 -s 192.168.0.0/16 -j DROP
    iptables -A INPUT -i eth2 -s 224.0.0.0/4 -j DROP
    iptables -A INPUT -i eth2 -s 240.0.0.0/5 -j DROP

    # Descarte de pacotes com cabeçalhos invalidos
    iptables -A FORWARD -m state --state INVALID -j DROP

  14. #14
    pablito
    Visitante

    Padrão Firewall pra macho !!

    As configurações sugeridas para o iptables foram interessantes, mas um bom firewall não vem só das configurações do seu software que você vai usar, no caso o iptables. Tenta mudar a arquitetura de segurança do seu sistema firewall como um todo. Coloca mais barreiras, como zonas dmz, roteadores, etc.

    Valeu, qualquer coisa, estamos aí..

  15. #15

    Padrão Firewall pra macho !!

    Citação Postado originalmente por demiurgo
    Citação Postado originalmente por Visitante
    caro amigo, vc cometeu, uns dos erros, mais grave na administração de redes, publicar o seu ip e como sabemos qual regra de firewall vc usa, cara vou hackear o seus servers.
    hauhauhauhauhauh.
    q ridiculo isso linuxkids

    quem quiser conhecer mais um pouco sobre nosso "amigo" visitante ae, deem uma olhada no profile dele:
    https://under-linux.org/modules.php?...profile&u=8960

    O login eh LinuxKids e omsn dele eh:
    [email protected]

    O site q ele mantem eh o:
    www.linuxstar.com.br

    []'s
    pois é colega, a minha intenção não é tentar invadir os server de ninguem, principalmente ae do colega, entende, mas sim alerta a ele para não postar o ip dele em foruns, mesmo o pq, quem vai fazer não avisa que vai fazer certo. bom peço desculpa a todos pela minha ignorancia em ter feito uma postagen destas, e não é causar repercusão sobre isto, certo.

    Bom mais uma vez desculpas e vlw,