Iptables bloqueando envio/recebimento de emails =(

1. Iptables bloqueando envio/recebimento de emails =(

Filipe Marques Barreto
filipeks

(usa Debian)

Enviado em 04/10/2011 - 09:58h

Pessoal!
Estou com um problemão na rede de uma empresa onde instalei um Router/firewall/proxy.

Ninguém consegue enviar/receber emails da empresa pelo Outlook, somente por webmail. O email é hospedado na Locaweb.
PS: quando coloco uma máquina no Iptables sem passar pelo Firewall, consegue sincronizar normalmente os email, mas apenas liberando todas as portas necessárias não vai de jeito nenhum!!!
Não sei mais o que tentar!
vou postar uma parte do meu script de firewall aqui para vocês analisarem e quem sabe me ajudarem! desde já agradeço muito!

Código:
#!/bin/sh

echo "Carregando de script de firewall .........................."

# Variveis para tornar o script mais genrico.
INET_IFACE="eth1" # Internet
LAN_IFACE="eth0" # Rede Local
PORTAS="23,25,110,143,389,443,465,587,993,995,587,1434,2086,2095,3389"
#


echo "Carregando modulos do netfilter."
/sbin/depmod -a
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_owner
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_nat

echo "Flush inicial nas chains padroes."
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -t filter -F
#

echo "Aplicando polticas default das chains."
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT

/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
#

echo "Marcando pacotes de alta prioridade."
/sbin/iptables -A PREROUTING -t mangle -p tcp --sport 2200 -j TOS --set-tos Minimize-Delay
/sbin/iptables -A PREROUTING -t mangle -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
/sbin/iptables -A PREROUTING -t mangle -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
#

echo "Permitindo entrada/saida de pacotes ICMP."
/sbin/iptables -A INPUT -p icmp -j ACCEPT
/sbin/iptables -A FORWARD -p icmp -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp -j ACCEPT

echo "Permitindo acessos a partir da interface local."
/sbin/iptables -A INPUT -i lo -j ACCEPT


echo "Liberando acessos a partir da rede interna."
/sbin/iptables -A INPUT -i $LAN_IFACE -j ACCEPT

echo "Aplicando Protecao contra port scanners ocultos."
/sbin/iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

echo "Aplicando protecoes contra ataques externos."
/sbin/iptables -A INPUT -m state --state INVALID -j DROP

echo "Permite a entrada de pacotes relacionados a conexes j estabelecidas."
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

echo "Aplicando Protecao contra ping da morte"
/sbin/iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

echo "liberando a porta 22 (para SSH) e 10000 (para webmin)."
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 10000 -j ACCEPT

echo "Liberando porta DNS"
/sbin/iptables -A FORWARD -p udp --dport 53 -j ACCEPT # DNS

echo "Liberando portas TCP"
/sbin/iptables -A FORWARD -p tcp -m multiport --dport $PORTAS -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m multiport --dport $PORTAS -j ACCEPT

echo "Liberando portas UDP"
/sbin/iptables -A FORWARD -p udp -m multiport --dport $PORTAS -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --dport $PORTAS -j ACCEPT

#Emails Locaweb
#Portas Locaweb = 25,110,143,587,995 (via outlook) Todas ja liberadas
/sbin/iptables -A FORWARD -s 10.1.1.0/24 -d locaweb.com.br -j ACCEPT
/sbin/iptables -A FORWARD -s 10.1.1.0/24 -d pop.locaweb.com.br -j ACCEPT
/sbin/iptables -A FORWARD -s 10.1.1.0/24 -d smtp.locaweb.com.br -j ACCEPT
/sbin/iptables -A FORWARD -s 10.1.1.0/24 -d vninformatica.com.br -j ACCEPT
/sbin/iptables -A FORWARD -s 10.1.1.0/24 -d pop.vninformatica.com.br -j ACCEPT
/sbin/iptables -A FORWARD -s 10.1.1.0/24 -d smtp.vninformatica.com.br -j ACCEPT



  


2. Re: Iptables bloqueando envio/recebimento de emails =(

Daniel Fernandes
volcom

(usa Debian)

Enviado em 04/10/2011 - 10:30h

Cara, você precisa liberar as portas utilizadas pelo protocolo que esta utilizando (IMAP, POP e SMTP).

Dê uma pesquisada, deve ser bem parecido com a regra que libera DNS, SSH por exemplo.

Se tiver dificuldade nos avise.

Abraço e bom estudo...


3. Re: Iptables bloqueando envio/recebimento de emails =(

Daniel Fernandes
volcom

(usa Debian)

Enviado em 04/10/2011 - 10:34h

volcom escreveu:

Cara, você precisa liberar as portas utilizadas pelo protocolo que esta utilizando (IMAP, POP e SMTP).

Dê uma pesquisada, deve ser bem parecido com a regra que libera DNS, SSH por exemplo.

Se tiver dificuldade nos avise.

Abraço e bom estudo...


Agora que vi que vc usa uma variável para as portas, mas será que esta funcionando corretamente?

Tente fazer uma regra com a porta em questão e vamos ver o resultado...


4. Re: Iptables bloqueando envio/recebimento de emails =(

Filipe Marques Barreto
filipeks

(usa Debian)

Enviado em 04/10/2011 - 10:35h

Cara... Já fiz essa liberação!
Perceba que tem uma variável "PORTAS" e logo depois tem a regra para liberar essas portas tanto por UDP quanto TCP:

PORTAS="23,25,110,143,389,443,465,587,993,995,587,1434,2086,2095,3389"

echo "Liberando portas TCP"
/sbin/iptables -A FORWARD -p tcp -m multiport --dport $PORTAS -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m multiport --dport $PORTAS -j ACCEPT

echo "Liberando portas UDP"
/sbin/iptables -A FORWARD -p udp -m multiport --dport $PORTAS -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --dport $PORTAS -j ACCEPT


outro detalhe:
quando executo o comando: "iptables -v --list" na linha de pacotes trafegados o valor fica sempre em "0" (zero) para as portas TCP,UDP.

Será que tem algo de errado com essa regra?


5. Re: Iptables bloqueando envio/recebimento de emails =(

Daniel Fernandes
volcom

(usa Debian)

Enviado em 04/10/2011 - 10:38h

filipeks escreveu:

Cara... Já fiz essa liberação!
Perceba que tem uma variável "PORTAS" e logo depois tem a regra para liberar essas portas tanto por UDP quanto TCP:

PORTAS="23,25,110,143,389,443,465,587,993,995,587,1434,2086,2095,3389"

echo "Liberando portas TCP"
/sbin/iptables -A FORWARD -p tcp -m multiport --dport $PORTAS -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m multiport --dport $PORTAS -j ACCEPT

echo "Liberando portas UDP"
/sbin/iptables -A FORWARD -p udp -m multiport --dport $PORTAS -j ACCEPT
/sbin/iptables -A INPUT -p udp -m multiport --dport $PORTAS -j ACCEPT


outro detalhe:
quando executo o comando: "iptables -v --list" na linha de pacotes trafegados o valor fica sempre em "0" (zero) para as portas TCP,UDP.

Será que tem algo de errado com essa regra?


Manda um

# iptables -L

Pra listar todas as regras e cola aqui...


6. Re: Iptables bloqueando envio/recebimento de emails =(

Filipe Marques Barreto
filipeks

(usa Debian)

Enviado em 04/10/2011 - 10:47h

Ja adicionei as regras como vc me orientou!
cada uma indivídual! mas, o bloqueio continua! =/
Não to entendo o que possa estar acontecendo!


VN-Firewall:~# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:webmin
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
ACCEPT tcp -- anywhere anywhere tcp dpt:submission
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s
ACCEPT udp -- anywhere anywhere udp dpt:25
ACCEPT udp -- anywhere anywhere udp dpt:pop3
ACCEPT udp -- anywhere anywhere udp dpt:imap2
ACCEPT udp -- anywhere anywhere udp dpt:submission
ACCEPT udp -- anywhere anywhere udp dpt:pop3s
ACCEPT tcp -- anywhere anywhere multiport dports telnet,smtp,pop3,imap2,ldap,https,ssmtp,submission,imaps,pop3s,submission,ms-sql-m,gnunet,2095,3389
ACCEPT udp -- anywhere anywhere multiport dports 23,25,pop3,imap2,ldap,https,465,submission,imaps,pop3s,submission,ms-sql-m,gnunet,2095,3389

Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 10.1.1.111 anywhere
ACCEPT all -- 10.1.1.11 anywhere
ACCEPT all -- 10.1.1.110 anywhere
ACCEPT all -- 10.1.1.0/24 anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3
ACCEPT tcp -- anywhere anywhere tcp dpt:imap2
ACCEPT tcp -- anywhere anywhere tcp dpt:submission
ACCEPT tcp -- anywhere anywhere tcp dpt:pop3s
ACCEPT udp -- anywhere anywhere udp dpt:25
ACCEPT udp -- anywhere anywhere udp dpt:pop3
ACCEPT udp -- anywhere anywhere udp dpt:imap2
ACCEPT udp -- anywhere anywhere udp dpt:submission
ACCEPT udp -- anywhere anywhere udp dpt:pop3s
ACCEPT tcp -- anywhere anywhere multiport dports telnet,smtp,pop3,imap2,ldap,https,ssmtp,submission,imaps,pop3s,submission,ms-sql-m,gnunet,2095,3389
ACCEPT udp -- anywhere anywhere multiport dports 23,25,pop3,imap2,ldap,https,465,submission,imaps,pop3s,submission,ms-sql-m,gnunet,2095,3389
ACCEPT all -- 10.1.1.0/24 9.202.186.in-addr.arpa
ACCEPT all -- 10.1.1.0/24 hm401b.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 hm401b.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 hm476.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0001.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0002.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0005.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0004.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0004.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0001.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0002.email.locaweb.com.br
ACCEPT all -- 10.1.1.0/24 maggie0005.email.locaweb.com.br
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere


7. Re: Iptables bloqueando envio/recebimento de emails =(

Filipe Marques Barreto
filipeks

(usa Debian)

Enviado em 04/10/2011 - 10:49h

repare que na 4ª linha do FORWARD tive que colocar acesso livre para a rede inteira!
ACCEPT all -- 10.1.1.0/24 anywhere

só assim o outlook + locaweb funciona!
mas, por outro lado é como se eu não tivesse firewall!
=(


8. Erro ao receber emails

Erick de Oliveira
lunaface

(usa Debian)

Enviado em 02/05/2014 - 11:30h

Caro Filipeks,

estava com o mesmo problema na rede da empresa que trabalho. Meu firewall está idêntico ao seu na parte dos emails. mas mesmo assim não funcionava. Então resolvi fazer uma regra de ACL no meu squid e resolveu meu problema.

segue a regra:

acl liberados dstdom_regex "/etc/squid/liberados"
http_access allow liberados

e neste arquivo adicionei as seguintes linhas:

locaweb.com.br
mail.meudominio.com.br
smtp.meudominio.com.br
pop.meudominio.com.br

OBS: se tiver outras regras de bloqueio, lembre-se de colocar esta regra antes do bloqueio

Agora estou recebendo os emails normalmente.

Espero ter ajudado!


Erick de Oliveira.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts