Receber E-mail Externo.

1. Receber E-mail Externo.

Alan Juliano Metzger
meguelito

(usa Nenhuma)

Enviado em 23/04/2008 - 18:24h

Boa Tarde Galera,

To com o seguinte problema, não estou conseguindo receber e-mail de outros dominios, porém quando coloco a política padrão INPUT como ACCEPT ele recebe normalmente, abaixo meu script de Firewall se alguem puder me dar uma ajuda e umas dicas de como deixar meu Firewall um pouco mais seguro.

Obs.: O meu linux está ligado a um roteador ADSL que tem um ip 192.168.254.1 e um ip fixo 200.175.61.63 que tem como DNS 200.175.89.139, e no meu linux eu tenho a eth0 com 192.168.254.2 e a eth1 com 192.168.0.1 que está ligada a rede interna.

################## Script de Firewall ###########
#!/bin/sh

echo "Definindo Variaveis."
MODPROBE="/sbin/modprobe"
IPTABLES="/sbin/iptables"
EXTERNAL_INT="eth0"
INTERNAL_INT="eth1"
TRACTEBEL="eth2"

echo "Levantando Modulos"
$MODPROBE iptable_nat
$MODPROBE ipt_conntrack
$MODPROBE ip_conntrack_ftp
$MODPROBE ip_nat_ftp
$MODPROBE ipt_TOS
$MODPROBE ipt_REJECT
$MODPROBE ipt_MASQUERADE
$MODPROBE ipt_LOG
$MODPROBE ip_tables
$MODPROBE iptable_filter
$MODPROBE ipt_state

echo "Protecao contra IP Spoofing."
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" >$i
done

echo "Protecao contra echo broadcast"
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo "Protecao contra TCP SYN cookie"
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

echo "Ativamos o redirecionamento de pacotes"
echo "1" >/proc/sys/net/ipv4/ip_forward

echo "Limpando, deletando e zerando regras e contadores de Pacotes."
# Limpando regras.
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
# Deletando regras
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
# Zerando contadores.
$IPTABLES -Z
$IPTABLES -t nat -Z
$IPTABLES -t mangle -Z

echo "Definindo Politicas Padroes"
# Tabela filter
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# Tabela nat
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
# Tabela mangle
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT

echo "Logando conexoes"
$IPTABLES -A INPUT -s 192.168.0.110 -p tcp --dport ! 22 -j LOG --log-prefix "INPUT: "
$IPTABLES -A INPUT -d 192.168.0.110 -p tcp --dport ! 22 -j LOG --log-prefix "INPUT: "
# $IPTABLES -A INPUT -p udp --dport 53 -j LOG --log-prefix "INPUT: "
# $IPTABLES -A FORWARD -p tcp --dport 53 -j LOG --log-prefix "FORWARD: "
# $IPTABLES -A FORWARD -p udp --dport 53 -j LOG --log-prefix "FORWARD: "
# $IPTABLES -A OUTPUT -s 192.168.0.81 -j LOG --log-prefix "OUTPUT: "

echo "Liberando INPUT para a Loopback."
$IPTABLES -A INPUT -p ALL -s 127.0.0.1 -i lo -j ACCEPT
$IPTABLES -A INPUT -p ALL -s 192.168.254.2 -i lo -j ACCEPT
$IPTABLES -A INPUT -p ALL -s 192.168.0.1 -i lo -j ACCEPT

echo "Bloqueando Emule"
$IPTABLES -A INPUT -m ipp2p --ipp2p -j DROP
$IPTABLES -A FORWARD -m ipp2p --ipp2p -j DROP
$IPTABLES -A OUTPUT -m ipp2p --ipp2p -j DROP

echo "Mascarando a entrada da nossa rede interna apontando para o webserver."
$IPTABLES -t nat -A PREROUTING -s 192.168.0.0/24 -d 200.175.61.63 -j DNAT --to-destination 192.168.254.2

echo "Nateando maquinas da Rede."
$IPTABLES -t nat -A PREROUTING -d www.insidesystem.com.br -p tcp --dport 7777 -j DNAT --to-destination 192.168.0.233:7777
$IPTABLES -t nat -A PREROUTING -d www.insidesystem.com.br -p tcp --dport 8081 -j DNAT --to-destination 192.168.0.4:8081

echo "Liberando conexoes estabelecidas ou relacionadas no INPUT."
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

echo "Liberando resposta de DNS."
$IPTABLES -A INPUT -p udp --sport 53 -j ACCEPT

echo "Liberando entrada da rede interna."
$IPTABLES -A INPUT -m iprange --src-range 192.168.0.1-192.168.0.209 -i $INTERNAL_INT -j ACCEPT

echo "Liberando IPS da VPN para INPUT."
$IPTABLES -A INPUT -m iprange --src-range 192.168.0.210-192.168.0.250 -i ppp+ -j ACCEPT

echo "Permite icmp 0 (Pedido e Resposta de Echo)."
$IPTABLES -A INPUT -p icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type 8 -j ACCEPT

echo "Permite o acesso ao servidor usando SSH."
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s ! 192.168.0.0/24 --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s ! 192.168.0.0/24 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s ! 192.168.0.0/24 --dport 1723 -j ACCEPT

echo "Liberando a entrada de pacotes das Vpns dos clientes"
$IPTABLES -A INPUT -i tun+ -j ACCEPT

echo "Liberando para poder conectar na VPN interna."
$IPTABLES -A INPUT -i ppp+ -j ACCEPT

#echo "Dropando INPUT para ips que nao venham da VPN."
# $IPTABLES -A INPUT -m iprange --src-range 192.168.0.210-192.168.0.250 -i $INTERNAL_INT -j DROP

echo "Liberando IP do Modem."
$IPTABLES -A INPUT -i EXTERNAL_INT -j ACCEPT

echo "Liberando pacotes vindo de Macs dos ips liberados."
$IPTABLES -A INPUT -s 192.168.0.110 -m mac --mac-source 00-01-6C-EC-04-86 -j ACCEPT
$IPTABLES -A INPUT -s 192.168.0.116 -m mac --mac-source 00-16-36-E6-DA-F1 -j ACCEPT
$IPTABLES -A INPUT -s 192.168.0.117 -m mac --mac-source 00-11-03-54-0A-75 -j ACCEPT
$IPTABLES -A INPUT -s 192.168.0.118 -m mac --mac-source 00-0E-A6-6B-00-0E -j ACCEPT

echo "Dropando pacotes vindo de Macs diferentes dos ips liberados."
$IPTABLES -A INPUT -s 192.168.0.110 -m mac --mac-source ! 00-01-6C-EC-04-86 -j DROP
$IPTABLES -A INPUT -s 192.168.0.116 -m mac --mac-source ! 00-16-36-E6-DA-F1 -j DROP
$IPTABLES -A INPUT -s 192.168.0.117 -m mac --mac-source ! 00-11-03-54-0A-75 -j DROP
$IPTABLES -A INPUT -s 192.168.0.118 -m mac --mac-source ! 00-0E-A6-6B-00-0E -j DROP

echo "Liberando conexoes estabelecidas e relacionadas no FORWARD."
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p icmp -j ACCEPT

echo "Liberando Ip,s conforme seu MAC."
$IPTABLES -A FORWARD -s 192.168.0.110 -m mac --mac-source 00-01-6C-EC-04-86 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.0.116 -m mac --mac-source 00-16-36-E6-DA-F1 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.0.117 -m mac --mac-source 00-11-03-54-0A-75 -j ACCEPT
$IPTABLES -A FORWARD -s 192.168.0.118 -m mac --mac-source 00-0E-A6-6B-00-0E -j ACCEPT

echo "Dropando pacotes de Macs diferentes do ips liberados."
$IPTABLES -A FORWARD -s 192.168.0.110 -m mac --mac-source ! 00-01-6C-EC-04-86 -j DROP
$IPTABLES -A FORWARD -s 192.168.0.116 -m mac --mac-source ! 00-16-36-E6-DA-F1 -j DROP
$IPTABLES -A FORWARD -s 192.168.0.117 -m mac --mac-source ! 00-11-03-54-0A-75 -j DROP
$IPTABLES -A FORWARD -s 192.168.0.118 -m mac --mac-source ! 00-0E-A6-6B-00-0E -j DROP

echo "Liberando DNS para a rede interna."
$IPTABLES -A FORWARD -p udp -s 192.168.0.0/24 -d 200.175.89.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.89.139 -d 192.168.0.0/24 --dport 53 -j ACCEPT

echo "Libera o trafego de pacotes da rede interna para a rede externa na porta 25 (smtp) e 110 (pop)"
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 110 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 25 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 110 -j ACCEPT

echo "Liberando trafego da VPN da Eletrosul para a rede interna."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -d 200.180.20.2 -j ACCEPT

echo "Liberando trafego da VPN da Eletronorte para a rede interna."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -d 200.252.155.2 -j ACCEPT

echo "Libera o trafego de pacotes da rede interna para a rede externa na porta 21 (ftp)."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 21 -j ACCEPT

echo "Bloquendo o trafego de pacotes da rede interna para a rede externa Gtalk."
$IPTABLES -A FORWARD -d talk.l.google.com -p tcp --dport 443 -j DROP
$IPTABLES -A FORWARD -d chatenabled.mail.google.com -p tcp --dport 443 -j DROP
$IPTABLES -A FORWARD -d talk.google.com -p tcp --dport 443 -j DROP
$IPTABLES -A FORWARD -d talkx.l.google.com -p tcp --dport 443 -j DROP

echo "Libera o trafego de pacotes da rede interna para a rede externa na porta 443 (ssl)."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 443 -j ACCEPT

echo "Liberando Skype."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --sport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p udp --dport 443 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p udp --sport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

echo "Libera o trafego de pacotes da rede interna para a rede externa na porta 3389 (Terminal Server da Microsoft)."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 3389 -j ACCEPT

echo "Libera o trafego de pacotes da rede interna para a rede externa na porta 80 (http)."
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 80 -j ACCEPT

echo "Liberando o trafego de pacotes da rede externa para a rede interna na porta 80."
$IPTABLES -A FORWARD -i $EXTERNAL_INT -o $INTERNAL_INT -p tcp --dport 80 -j ACCEPT

echo "Libera o trafego de pacotes da rede externa para a rede interna na porta 3389 (Terminal Server da Microsoft)."
$IPTABLES -A FORWARD -i $EXTERNAL_INT -o $INTERNAL_INT -p tcp --dport 3389 -j ACCEPT

#echo "Dropando FORWARD para ips que nao venham da VPN."
# $IPTABLES -A FORWARD -m iprange --src-range 192.168.0.210-192.168.0.250 -i INTERNAL_INT -j DROP

echo "Liberando a passagem de pacotes para as vpns dos clientes."
$IPTABLES -A FORWARD -i tun+ -j ACCEPT
$IPTABLES -A FORWARD -o tun+ -j ACCEPT

echo "Liberando VPN da rede externa para a rede interna."
$IPTABLES -A FORWARD -i ppp+ -j ACCEPT
$IPTABLES -A FORWARD -o ppp+ -j ACCEPT

echo "Liberando a saida de pacotes para as vpns dos clientes."
$IPTABLES -A OUTPUT -o tun+ -j ACCEPT
$IPTABLES -A OUTPUT -o ppp+ -j ACCEPT

echo "Redirecionando porta http e https para a porta do Squid."
$IPTABLES -t nat -A PREROUTING -p tcp -m multiport -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-ports 3128

echo "Mascarando a conexao para a rede interna."
$IPTABLES -t nat -A POSTROUTING -o $EXTERNAL_INT -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o tun+ -j MASQUERADE

Att.:
Alan Juliano Metzger


  


2. Liberar.

Rodrigo de Oliveira
jackadamantina

(usa Fedora)

Enviado em 02/05/2008 - 10:27h

Basta liberar a porta 25 e 110 (pop) ou 143 (imap) para os usuários que estiverem na rede externa.

Crie uma regra como esta sua, mas para a rede externa.

echo "Libera o trafego de pacotes da rede interna para a rede externa na porta 25 (smtp) e 110 (pop)"
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A FORWARD -i $INTERNAL_INT -o $EXTERNAL_INT -p tcp --dport 110 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 25 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 110 -j ACCEPT





3. Re: Receber E-mail Externo.

Luciano Gomes
lucianopqd

(usa Ubuntu)

Enviado em 02/05/2008 - 15:45h

Exatamente como nosso amigo falou, vc esqueceu de liberar a porta 25, 110, 465, 995



4. Re: Receber E-mail Externo.

Alan Juliano Metzger
meguelito

(usa Nenhuma)

Enviado em 02/05/2008 - 16:18h

Blz galera era isso ae mesmo obrigado pela ajuda.

Qualquer coisa que alguém precisar pode me add no msn alanjuliano@yahoo.com.br






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts