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.
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
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
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
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.
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.
Firewall no servidor de e-mail
eth1 eh sua placa externa mesmo?
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.
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.
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
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 :oops: ), 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!
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 ??
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.
Firewall no servidor de e-mail
Respondendo a pergunta, esse é o firewall no servidor de e-mail
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
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