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.