+ Responder ao Tópico



  1. #1
    buribai
    Visitante

    Padrão Firewall no servidor de e-mail

    Ai galera, tô com um probleminha aqui.

    Tenho um servidor rodando Apache redirecionando os pacotes pop3(porta 110) para um outro servidor, que é o de e-mail rodando Postfix + CLAMAV + MailScanner + SpamAssassin.

    Até ai blz ...

    Fui implementar um firewall nesse servidor de e-mail e agora mensagens vinda de fora, não estão chegando, somente as do proprio dominio.

    Pra enviar, está blz, está enviando pra dentro e pra fora, mas pra receber só recebe de dentro, de fora não. Já olhei os log's e nada.

    Quais regras devo usar ?????


    Desde já muito agradecido.

  2. #2

    Padrão Firewall no servidor de e-mail

    eh mais facil vc postar tuas regras pra gente ver oq tem de errado do q fazer vc alterar todo teu firewall, provavelmente eh alguma regrinha faltando ou a mais

  3. #3
    buribai
    Visitante

    Padrão Firewall no servidor de e-mail

    É o seguinte ... as regras que estou usando são essas:

    # Ativa Roteamento via Kernel
    #------------------------------------------------------------------------------------------
    echo "B) Ativando Roteamento via Kernel"
    echo "1"> /proc/sys/net/ipv4/ip_forward

    # Ignorando BroadCasts
    #------------------------------------------------------------------------------------------
    echo "C) Ignorando BroadCasts"
    echo "1"> /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

    # Zera todas as Regras
    #------------------------------------------------------------------------------------------
    echo "E) Limpando todas as Regras de todas as Tabelas"
    iptables -F
    iptables -Z
    iptables -X
    iptables -F -t nat
    iptables -X -t nat
    iptables -F -t mangle
    iptables -X -t mangle

    # Define a politica padrao
    #------------------------------------------------------------------------------------------
    echo "F) Determinando as politicas padroes das CHAINS"
    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    # Toda conexao que ja foi estabelecida com o firewall nao sera analisada novamente
    #------------------------------------------------------------------------------------iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT
    iptables -A FORWARD -m state --state RELATED,ESTABLISHED,NEW -j ACCEPT

    # Bloqueia pacotes fragmentados
    #------------------------------------------------------------------------------------echo "G) Bloqueiando pacotes Fragmentados"
    iptables -A INPUT -i eth0 -f -j LOG --log-prefix "FIREWALL: INPUT fragmentado:"
    iptables -A INPUT -i eth0 -f -j DROP

    # Bloqueia pacotes indesejaveis
    #------------------------------------------------------------------------------------------
    echo "H) Bloqueia pacotes indesejaveis"
    iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FIREWALL: NEW sem syn:"
    iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP



    # Liberando LoopBack
    #------------------------------------------------------------------------------------------
    echo "O) Liberando LoopBack"
    iptables -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
    iptables -A INPUT -p ALL -s 192.168.0.23 -i lo -j ACCEPT

    echo "S) Liberando SMTP para a rede local"
    iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 --dport 25 -j ACCEPT
    iptables -A OUTPUT -p tcp -s 192.168.0.23 -d 192.168.0.0/255.255.255.0 --dport 25 -j ACCEPT

    echo "W) Liberando porta de POP3 para a rede local"
    #iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 --dport 110 -j ACCEPT
    #iptables -A OUTPUT -p tcp -s 192.168.0.23 -d 192.168.0.0/255.255.255.0 --dport 110 -j ACCEPT
    #somente com a regra acima nao recebemos email de fora entao inclui as abaixo mas tbem naum deu certo
    iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT

    echo "W) Liberando porta 783 para o SpamAssassin"
    iptables -A INPUT -p tcp --dport 783 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 783 -j ACCEPT

    echo "U) Liberando SMTP"
    iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

    echo "Z) Liberando Pop3"
    iptables -A FORWARD -p tcp --dport 110 -j ACCEPT

    # Liberando ping
    #------------------------------------------------------------------------------------------
    echo "AA) Liberando ping"
    iptables -A INPUT -p icmp --icmp-type 8 -i eth0 -j ACCEPT
    iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT


    # Ativando protecao contra Ping of Death
    #------------------------------------------------------------------------------------------
    echo "AB) Ativando protecao contra Ping of Death"
    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    # Ativando protecao contra Ataques Syn-Flood
    #------------------------------------------------------------------------------------------
    echo "AC) Ativando protecao contra Ataques Syn-Flood"
    iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

    # Ativando protecao contra Port Scanners Avancados - NMAP por exemplo
    #------------------------------------------------------------------------------------------
    echo "AD) Ativando protecao contra Port Scanners"
    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
    iptables -N SCANNER
    iptables -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL : port scanner:"
    iptables -A SCANNER -j DROP
    iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i eth0 -j SCANNER
    iptables -A INPUT -p tcp --tcp-flags ALL NONE -i eth0 -j SCANNER
    iptables -A INPUT -p tcp --tcp-flags ALL ALL -i eth0 -j SCANNER
    iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i eth0 -j SCANNER
    iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i eth0 -j SCANNER
    iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i eth0 -j SCANNER
    iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i eth0 -j SCANNER

    # Ativa Protecao contra IP-Spoofing
    #------------------------------------------------------------------------------------------
    echo "AE) Ativando Protecao contra IP Spoofing "
    echo "1"> /proc/sys/net/ipv4/conf/all/rp_filter
    iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
    iptables -A INPUT -s 172.16.0.0/16 -i eth0 -j DROP
    iptables -A INPUT -s 224.0.0.0/4 -i eth0 -j DROP
    iptables -A INPUT -s 240.0.0.0/5 -i eth0 -j DROP

    # Ativando protecao contra pacotes danificados e suspeitos
    #------------------------------------------------------------------------------------------
    echo "AF) Ativando protecao contra Pacotes Danificados e Suspeitos ou Pacotes usados em Ataques"
    #iptables -A INPUT -i eth0 -m unclean -j LOG --log-level 6 --log-prefix "FIREWALL: mal informado:"
    #iptables -A INPUT -i eth0 -m unclean -j DROP
    iptables -A INPUT -m state --state INVALID -j DROP
    #iptables -A FORWARD -m unclean -j DROP
    iptables -A FORWARD -m state --state INVALID -j DROP

    # Bloqueando TRACERTROUTE
    #------------------------------------------------------------------------------------------
    echo "AG) Bloqueando TRACERTROUTE"
    iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP

    # Ativando protecao contra TRINOO
    #------------------------------------------------------------------------------------------
    echo "AH) Ativando protecao contra TRINOO"
    iptables -N TRINOO
    iptables -A TRINOO -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo:"
    iptables -A TRINOO -j DROP
    iptables -A INPUT -p TCP -i eth0 --dport 27444 -j TRINOO
    iptables -A INPUT -p TCP -i eth0 --dport 27665 -j TRINOO
    iptables -A INPUT -p TCP -i eth0 --dport 31335 -j TRINOO
    iptables -A INPUT -p TCP -i eth0 --dport 34555 -j TRINOO
    iptables -A INPUT -p TCP -i eth0 --dport 35555 -j TRINOO

    # Ativando protecao contra TROJANS
    #------------------------------------------------------------------------------------------
    echo "AI) Ativando protecao contra TROJANS"
    iptables -N TROJAN
    iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan:"
    iptables -A TROJAN -j DROP
    iptables -A INPUT -p TCP -i eth0 --dport 666 -j TROJAN
    iptables -A INPUT -p TCP -i eth0 --dport 4000 -j TROJAN
    iptables -A INPUT -p TCP -i eth0 --dport 6000 -j TROJAN
    iptables -A INPUT -p TCP -i eth0 --dport 6006 -j TROJAN
    iptables -A INPUT -p TCP -i eth0 --dport 16660 -j TROJAN

    # Ativando protecao contra WORMS
    #------------------------------------------------------------------------------------------
    echo "AJ) Ativando protecao contra WORMS"
    iptables -A FORWARD -p tcp --dport 135 -i eth0 -j REJECT

    # Gerando Logs
    #------------------------------------------------------------------------------------------
    echo "AK) Habilitando o servico de logs de portas proibidas"
    iptables -A INPUT -p tcp --dport 21 -j LOG --log-prefix "FIREWALL: Servico de FTP"
    echo "AL) Ativa a geracao de logs de BackDoors"
    iptables -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "FIREWALL: WinCrash"
    iptables -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "FIREWALL: BackOrifice"
    iptables -A INPUT -p tcp --dport 12346 -j LOG --log-prefix "FIREWALL: BackOrifice "
    echo "AM) Ativa a geracao de logs de determinadas portas"
    iptables -A INPUT -p tcp --dport 21 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: ftp:"
    iptables -A INPUT -p tcp --dport 23 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: telnet:"
    iptables -A INPUT -p tcp --dport 80 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: http:"
    #iptables -A INPUT -p tcp --dport 110 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: pop3:"
    iptables -A INPUT -p udp --dport 111 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: rpc:"
    iptables -A INPUT -p tcp --dport 113 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: identd:"
    #iptables -A INPUT -p tcp --dport 137:139 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: samba:"
    #iptables -A INPUT -p udp --dport 137:139 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: samba:"
    iptables -A INPUT -p tcp --dport 161:162 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: snmp:"
    iptables -A INPUT -p tcp --dport 6667:6668 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: irc:"
    iptables -A INPUT -p tcp --dport 3128 -i eth0 -j LOG --log-level 6 --log-prefix "FIREWALL: squid:"

    # Bloqueando o resto
    #------------------------------------------------------------------------------------------
    echo "AP) Bloqueando o resto"
    iptables -A INPUT -p tcp --syn -j DROP
    iptables -A INPUT -p udp -j DROP

    # fim do Script do IPTABLES

  4. #4

    Padrão Firewall no servidor de e-mail

    Agora q me dei conta dum detalhe... vc disse q ta redirecionando as portas 25 e 110 pro server interno usando apache?????
    q vc num faz direto com iptables? e alias como vc boto isso no apache

  5. #5
    Visitante

    Padrão Firewall no servidor de e-mail

    Devo ter me expressado mal, redirecionei usando iptables mesmo.

    Na verdade redirecionei somente a porta 25 usando a seguinte regra:

    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25 -j DNAT --to 192.168.0.23

    Acho que com a porta 110 não preciso me preocupar, pq na configuração do webmail já informo qual servidor é o smtp, além do que está enviando normal, tem que ser alguma coisa na porta 25, já que só estou recebendo e-mail's de usuarios internos, ou seja, de fora não.

  6. #6
    buribai
    Visitante

    Padrão Firewall no servidor de e-mail

    hehehe , esqueci de logar ...

    mas é isso aeeeee, deve estar faltando alguma regra que libera a porta 25 para receber e-mail's.

  7. #7

    Padrão Firewall no servidor de e-mail

    eth1 eh sua placa externa mesmo?

  8. #8
    buribai
    Visitante

    Padrão Firewall no servidor de e-mail

    Eth1 eu naum estou usando nesse server

    é o seguinte pra ficar melhor o entendimento

    Server 1 ( rede externa e interna - roda SQUID-APACHE-SARG-DNS-FIREWALL)

    Server 2 (somente rede interna - roda POSTFIX-MAILSCANNER-CLAMAV-SPAMASSASSIN)

    Tudo funfa blz qdo o server 2 não está com o script de firewall ativado, qdo rodo o script, acontece o que disse acima.

  9. #9

    Padrão Firewall no servidor de e-mail

    Citação Postado originalmente por buribai
    Eth1 eu naum estou usando nesse server

    é o seguinte pra ficar melhor o entendimento

    Server 1 ( rede externa e interna - roda SQUID-APACHE-SARG-DNS-FIREWALL)

    Server 2 (somente rede interna - roda POSTFIX-MAILSCANNER-CLAMAV-SPAMASSASSIN)

    Tudo funfa blz qdo o server 2 não está com o script de firewall ativado, qdo rodo o script, acontece o que disse acima.
    velinho acredito que seu problema esta na regra onde vc libera a porta 25 e 110 somente para a rede interna, sua, tenta deixar a porta 25 e 110 abertas, para todos, e ve o que acontece.

  10. #10

    Padrão Firewall no servidor de e-mail

    eu acho q ele ta fazendo soh o prerouting pra rede interna (-i eth1)
    teria q fazer pra rede externa tb

  11. #11

    Padrão Firewall no servidor de e-mail

    Eai buribai!
    Seguinte, este server fica dentro da sua rede interna (somente), e o server que tem a rede externa tem um firewall poderoso?
    Se tiver não vejo uma nescessidade de usar o firewall nete server 2.
    Mas tipo assim, eu não vi erro nas suas regras, pode ser falta minha na interpretação mas tipo assim imprima este script e vaz as regras manuais ate pifar (eu sempre faço assim ops: ), dai vc vaiu saber qual a regra ta dando intriga!
    Qualquer coisa da um grito!
    Espero ter ajudado!

    PS.: da uma olhadinha prerouting do server 1!

  12. #12
    buribai
    Visitante

    Padrão Firewall no servidor de e-mail

    Amigo, se naum me engano eu estou liberando a porta 25 pra todo mundo:

    echo "W) Liberando porta de POP3 para a rede local"
    #iptables -A INPUT -p tcp -s 192.168.0.0/255.255.255.0 --dport 110 -j ACCEPT
    #iptables -A OUTPUT -p tcp -s 192.168.0.23 -d 192.168.0.0/255.255.255.0 --dport 110 -j ACCEPT
    #somente com a regra acima nao recebemos email de fora entao inclui as abaixo mas tbem naum deu certo

    # as regras acima estão comentadas

    iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT


    echo "W) Liberando porta 783 para o SpamAssassin"
    iptables -A INPUT -p tcp --dport 783 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 783 -j ACCEPT

    echo "U) Liberando SMTP"
    iptables -A FORWARD -p tcp --dport 25 -j ACCEPT

    echo "Z) Liberando Pop3"
    iptables -A FORWARD -p tcp --dport 110 -j ACCEPT

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

    Eu naum entendi essa questão que o 1c3_m4n falou , prerouting pra rede externa ??

  13. #13

    Padrão Firewall no servidor de e-mail

    esse é o firewall do gatway neh? Como tah o firewall deste teu server de e-mail? Se vc libera no gatway mas no de e-mail vc soh libera pra rede local soh vai funfar rede local mesmo.

  14. #14
    buribai
    Visitante

    Padrão Firewall no servidor de e-mail

    Respondendo a pergunta, esse é o firewall no servidor de e-mail

  15. #15

    Padrão Firewall no servidor de e-mail

    Código :
    iptables -A INPUT -p tcp --dport 110 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
     
    echo "W) Liberando porta 783 para o SpamAssassin"
    iptables -A INPUT -p tcp --dport 783 -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 783 -j ACCEPT
     
    echo "U) Liberando SMTP"
    iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
     
    echo "Z) Liberando Pop3"
    iptables -A FORWARD -p tcp --dport 110 -j ACCEPT

    Primeiro eu tiraria a sua regra de FOWARD. Pra que FOWARD se os pacotes entram e saem do servidor e não passam pra ele. No caso seria INPUT e OUTPUT

    Libera as portas 25 para OUTPUT.

    No servidor gatway eu redirecionaria os pacotes da rede esterna entrando pela porta 110 para o server de e-mail.

    Acho que ficou complciado neh? Vou melhorar

    Código :
    ##Servidor de e-mail:##
     
    iptables -F
    iptables -t nat -F
    iptables -INPUT -j DROP
    iptables -OUTPUT -j DROP
    iptables -FOWARD -j DROP
    iptables -t filter -A INPUT --dport 25 -j ACCEPT #Seria OUTPUT se ele fosse cliente de e-mail
    iptables -t filter -A OUTPUT --dport 110 -j ACCEPT #Seria INPUT se ele fosse cliente de e-mail
     
    ##Servidor Gatway:##
     
    iptables -t nat -A PREROUTING --dport 25 -j REDIRECT --to 192.168.0.23 #É esse o ip do seu server de e-mail?
    iptables -t nat -A PREROUTING --dport 110 -j REDIRECT --to 192.168.0.23

    Espero ter ajudado

  16. #16

    Padrão Firewall no servidor de e-mail

    Buribai mano braw posta ai sua regra do server 1 para que eu possa fazer um comparativo de regras!
    Abraços
    SpeC