habilitar puertos para outlook, con iptables

Forums: 

:)
Hola amigos:
Aqui con otro problema... tengo un servidor con debian 4.0, manejo mis sentencias con iptables, para la red interna externa sin nigun problema..pero ahora necesitamos ingresar a un servidor de email... utilizando outlokk express para mis clientes windows...entonces habri mis puertos 25 y 110 , pero no pueden ingresar al servidor de correo con outlook...
...
investigue en la red y solo dicen que hay que habrir los puertos 25 y 110 ..pero en micasono me funciona...alguien me podra ayudar....por fa..
agradeciendo de ante mano su ayuda...
saludos

aqui va mi script

#!/bin/bash
#
# Por Guimi 2007/01 - http://www.guimi.net
#
# Para guardar las reglas
#+ iptables-save > reglas
#+ iptables-restore < reglas
#

# Miramos si tenemos un parametro en linea de comando
if [ -n "$1" ] && [ "$1" = "q" ]
then
QUIET="1"
else
QUIET="0"
fi

# Registramos el inicio del firewall
#FECHA=$(date +"%C%y-%m-%d %H:%M")
#echo $FECHA
#/usr/bin/logger -p kern.notice -t NETFILTER \
# "====== Iniciado Cortafuegos: $FECHA ========="

if [ $QUIET = "0" ]; then
echo " Realizado por Guimi (http://www.guimi.net)"
echo " ------------------------------------------"
fi

# PARAMETRIZACION DEL SCRIPT
##########################################
### Definimos constantes para usar en el
###+ script
if [ $QUIET = "0" ]; then
echo " Cargando parametros..."
fi

# Binario de iptables
IPTABLES=/sbin/iptables

# INTERFACES
# eth0 - conectado a internet con IP FIJA
EXT_IF=eth0
EXT_IP=280.280.280.280
# eth1 - conectado a LAN
LAN_IF=eth1
LAN_IP=192.168.0.1
LAN_RED=192.168.0.0/24
# lo - interfaz de loopback
LOO_RED=127.0.0.0/8
# cualquier red
ANY_RED=0.0.0.0/0

# MAQUINAS INTERNAS
IP_SERVIDOR_FTP=192.168.0.2

if [ $QUIET = "0" ]; then
echo " Cargando modulos..."
fi
##########################################
### Nos aseguramos que tenemos cargados
###+ los modulos necesarios
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
modprobe ip_nat_irc
modprobe ip_nat_ftp

if [ $QUIET = "0" ]; then
echo " Limpiando FW..."
fi
##########################################
### Limpiamos la configuracion existente

# Limpiamos (flush) las reglas
$IPTABLES -F
# Borramos 'cadenas' de usuario
$IPTABLES -X
# Ponemos a cero paquetes y contadores
$IPTABLES -Z
# Limpiamos las reglas de NAT
$IPTABLES -t nat -F
# Borramos 'cadenas' de usuario de NAT
$IPTABLES -t nat -X

if [ $QUIET = "0" ]; then
echo " Estableciendo politicas..."
fi
##########################################
### Establecemos las politicas por omision
###+ de las 'cadenas'

# Por omision descartamos los paquetes
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# PREROUTING - NAT sobre la IP destino: normalmente desde inet hacia LAN
# POSTROUTING - NAT sobre la IP origen: normalmente desde LAN hacia inet
$IPTABLES -t nat -P PREROUTING DROP
$IPTABLES -t nat -P POSTROUTING DROP

# Relajamos la politica de salida
#+ Dejamos salir paquetes de LAN_IP por LAN_IF
$IPTABLES -A OUTPUT -o $LAN_IF -s $LAN_IP -j ACCEPT
#+ Dejamos salir paquetes de EXT_IP por EXT_IF
$IPTABLES -A OUTPUT -o $EXT_IF -s $EXT_IP -j ACCEPT

if [ $QUIET = "0" ]; then
echo " -> Denegacion de redes invalidas..."
fi
##########################################
# No admitimos desde el exterior redes locales (RFC 1918)
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 192.168.0.0/16 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 10.0.0.0/8 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 172.16.0.0/12 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 224.0.0.0/4 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 240.0.0.0/5 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s $LOO_RED -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 0.0.0.0/8 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 169.254.0.0/16 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 255.255.255.255 -j DROP
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s $EXT_IP -j DROP
# Desde el interior solo admitimos nuestra red LAN
$IPTABLES -t nat -A PREROUTING -i $LAN_IF -s ! $LAN_RED -j DROP

if [ $QUIET = "0" ]; then
echo " -> Denegacion de broadcast de NetBIOS..."
fi
##########################################
# Bloquear paquetes broadcast de NetBios salientes
iptables -A FORWARD -p tcp --sport 137:139 -o $EXT_IF -j DROP
iptables -A FORWARD -p udp --sport 137:139 -o $EXT_IF -j DROP
iptables -A OUTPUT -p tcp --sport 137:139 -o $EXT_IF -j DROP
iptables -A OUTPUT -p udp --sport 137:139 -o $EXT_IF -j DROP

if [ $QUIET = "0" ]; then
echo " Activando NAT..."
fi
##########################################
# Activamos el bit de forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# Enmascaramos la salida de la LAN
$IPTABLES -t nat -A POSTROUTING -s $LAN_RED -o $EXT_IF -j MASQUERADE

if [ $QUIET = "0" ]; then
echo " Accesos a la maquina local permitidos..."
fi
##########################################
### Permitimos ciertos accesos a la maquina

if [ $QUIET = "0" ]; then
echo " -> loopback..."
fi
# Permitimos todas las conexiones del interfaz loopback
#$IPTABLES -A INPUT -i lo -j ACCEPT
#$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A INPUT -i lo -s $LOO_RED -d $LOO_RED -j ACCEPT
$IPTABLES -A OUTPUT -o lo -s $LOO_RED -d $LOO_RED -j ACCEPT
# Permitimos el PostEnrutado de paquetes enviados localmente
$IPTABLES -t nat -A POSTROUTING -o lo -s $LOO_RED -j ACCEPT

if [ $QUIET = "0" ]; then
echo " -> LAN..."
fi
# Damos acceso desde la red local
$IPTABLES -A INPUT -s $LAN_RED -i $LAN_IF -j ACCEPT
$IPTABLES -A OUTPUT -d $LAN_RED -o $LAN_IF -j ACCEPT

if [ $QUIET = "0" ]; then
echo " -> DNS..."
fi
# Aceptamos conexiones DNS
$IPTABLES -A INPUT -s $ANY_RED -i $EXT_IF -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT
$IPTABLES -A OUTPUT -d $ANY_RED -o $EXT_IF -p udp -m udp --dport 53 --sport 1024:65535 -j ACCEPT

if [ $QUIET = "0" ]; then
echo " -> ntpd..."
fi
# Aceptamos conexiones ntpd
$IPTABLES -A INPUT -p udp -m udp --dport 123 -i $EXT_IF -s $ANY_RED -j ACCEPT
$IPTABLES -A OUTPUT -p udp -m udp --sport 123 -j ACCEPT

if [ $QUIET = "0" ]; then
echo " -> icmp..."
fi
# Permitimos paquetes ICMP (ping, traceroute...)
#+ con limites para evitar ataques de DoS
# Aceptamos ping y pong
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 2/s -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -m limit --limit 2/s -j ACCEPT
# Aceptamos redirecciones
$IPTABLES -A INPUT -p icmp --icmp-type redirect -m limit --limit 2/s -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type redirect -m limit --limit 2/s -j ACCEPT
# Aceptamos tiempo excedido
$IPTABLES -A INPUT -p icmp --icmp-type time-exceeded -m limit --limit 2/s -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type time-exceeded -m limit --limit 2/s -j ACCEPT
# Aceptamos destino inalcanzable
$IPTABLES -A INPUT -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT
$IPTABLES -A OUTPUT -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT

if [ $QUIET = "0" ]; then
echo " -> ssh..."
fi
# Abrimos el puerto xxxx para ssh
#$IPTABLES -A INPUT -p tcp -i $EXT_IF -s $ANY_RED -m tcp --dport xxxx --sport 1024:65535 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s $ANY_RED -m tcp --dport xxxx --sport 1024:65535 -m state --state NEW -j LOG --log-prefix "[FW - SSH] "
$IPTABLES -A INPUT -p tcp -s $ANY_RED -m tcp --dport xxxx --sport 1024:65535 -j ACCEPT
# ...y conexiones salientes relacionadas
$IPTABLES -A OUTPUT -p tcp -m tcp --sport xxxx -m state --state RELATED,ESTABLISHED -j ACCEPT

if [ $QUIET = "0" ]; then
echo " Redirecciones..."
fi
##########################################
### Generamos redireccionamientos
###+ transparentes para el resto de maquinas

if [ $QUIET = "0" ]; then
echo " -> Proxy web transparente (Squid)..."
fi
#+ Con la redireccion activa (primera linea)
#+ no se llega a la segunda linea
#+ Para bloquear todo acceso a la web comentar
#+ solo la primera linea
#+ Para anular el proxy comentar las dos reglas
$IPTABLES -t nat -A PREROUTING -i $LAN_IF -s $LAN_RED -p tcp --dport 80 -j REDIRECT --to-port 3128
$IPTABLES -A FORWARD -i $LAN_IF -p tcp --dport 80 -j DROP

if [ $QUIET = "0" ]; then
echo " -> Filtro de correo (P3Scan)..."
fi
#+ Con la redireccion activa (primera linea)
#+ no se llega a la segunda linea
#+ Para bloquear todo acceso a POP comentar
#+ solo la primera linea
#+ Para anular el filtrado comentar las dos reglas
$IPTABLES -t nat -A PREROUTING -i $LAN_IF -s $LAN_RED -p tcp --dport 110 -j REDIRECT --to-port 8110
$IPTABLES -A FORWARD -i $LAN_IF -p tcp --dport 110 -j DROP
###$IPTABLES -t nat -A OUTPUT -p tcp --dport 110 -m owner --owner-id p3scan -j ACCEPT
###$IPTABLES -t nat -A OUTPUT -p tcp --dport 110 -j REDIRECT --to-port 8110

if [ $QUIET = "0" ]; then
echo " -> DNAT (21 y 20)..."
fi
# Redirigimos "$EXT_IP":2220-1 a "$IP_SERVIDOR_FTP":20-1
###$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 21 -j LOG --log-prefix "[FW - FTP] "
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 220 -j DNAT --to "$IP_SERVIDOR_FTP":20
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 221 -j DNAT --to "$IP_SERVIDOR_FTP":21
# ...y conexiones salientes relacionadas (ftp pasivo)
$IPTABLES -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
# Permitimos postruteos a "$IP_SERVIDOR_FTP":20-1
$IPTABLES -t nat -A POSTROUTING -o $LAN_IF -d $IP_SERVIDOR_FTP -p tcp --dport 20 -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $LAN_IF -d $IP_SERVIDOR_FTP -p tcp --dport 21 -j ACCEPT
# Permitimos reenvios desde el exterior a "$IP_SERVIDOR_FTP":20-1
$IPTABLES -A FORWARD -i $EXT_IF -d $IP_SERVIDOR_FTP -p tcp --dport 20 -j ACCEPT
$IPTABLES -A FORWARD -i $EXT_IF -d $IP_SERVIDOR_FTP -p tcp --dport 21 -j ACCEPT

if [ $QUIET = "0" ]; then
echo " Reenvios..."
fi
##########################################
### Aceptamos algunos reenvios

if [ $QUIET = "0" ]; then
echo " -> icmp..."
fi
# Permitimos paquetes ICMP (ping, traceroute...)
#+ con limites para evitar ataques de DoS
# Aceptamos ping y pong
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT
$IPTABLES -A FORWARD -p icmp --icmp-type echo-reply -m limit --limit 2/s -j ACCEPT
# Aceptamos redirecciones
$IPTABLES -A FORWARD -p icmp --icmp-type redirect -m limit --limit 2/s -j ACCEPT
# Aceptamos tiempo excedido
$IPTABLES -A FORWARD -p icmp --icmp-type time-exceeded -m limit --limit 2/s -j ACCEPT
# Aceptamos destino inalcanzable
$IPTABLES -A FORWARD -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT
# Aceptamos todas en LAN_IF
$IPTABLES -t nat -A PREROUTING -i $LAN_IF -p icmp --icmp-type any -m limit --limit 2/s -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -o $LAN_IF -p icmp --icmp-type any -m limit --limit 2/s -j ACCEPT

if [ $QUIET = "0" ]; then
echo " Salida general..."
fi
##########################################
### Aceptamos conexiones salientes

# Permitimos cualquier salida tcp desde la propia maquina
$IPTABLES -A OUTPUT -o $EXT_IF -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# ...y conexiones entrantes relacionadas
$IPTABLES -A INPUT -i $EXT_IF -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

# Permitimos el reenvio de paquetes enviados desde la LAN
$IPTABLES -A FORWARD -i $LAN_IF -j ACCEPT
# ...y conexiones salientes relacionadas
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permitimos el NAT de paquetes enviados desde la LAN
$IPTABLES -t nat -A PREROUTING -i $LAN_IF -j ACCEPT
# ...y conexiones salientes relacionadas
$IPTABLES -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permitimos el NAT de paquetes enviados desde inet hacia la IP publica
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -j ACCEPT
# ...y conexiones salientes relacionadas
$IPTABLES -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permitimos el NAT de paquetes enviados desde la IP publica hacia inet
$IPTABLES -t nat -A POSTROUTING -o $EXT_IF -s $EXT_IP -j ACCEPT
# ...y conexiones salientes relacionadas
$IPTABLES -t nat -A POSTROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permitimos el PostEnrutado de paquetes enviados localmente
$IPTABLES -t nat -A POSTROUTING -o $LAN_IF -s $LAN_RED -j ACCEPT

if [ $QUIET = "0" ]; then
echo " Cerrando puertos restringidos..."
fi
##########################################
### Puertos restringidos (telnet, ftp, imap, pop3, etc.)
###+ Reiterativo: para pruebas
$IPTABLES -A INPUT -p tcp --dport 1:1024 -j DROP
$IPTABLES -A INPUT -p udp --dport 1:1024 -j DROP

###echo " ACTIVADO DEBUG..."
##########################################
### Reglas utilizadas en debug para detectar
#+ paquetes no tratados todavia
#+ -j LOG --log-prefix "--PR> "
###$IPTABLES -t nat -A PREROUTING -j LOG --log-prefix "[FW - PR] "
###$IPTABLES -t nat -A POSTROUTING -j LOG --log-prefix "[FW - PO] "
###$IPTABLES -A FORWARD -j LOG --log-prefix "[FW - FW] "
###$IPTABLES -A INPUT -j LOG --log-prefix "[FW - IN] "
###$IPTABLES -A OUTPUT -j LOG --log-prefix "[FW - OU] "

if [ $QUIET = "0" ]; then
echo " Configuracion FW terminada."
echo ""
echo " A continuacion podria desear:"
echo " - verificar reglas: iptables -nvL && iptables -nvL -t nat"
echo " - guardar reglas: iptables-save > reglas"
echo " - restaurar reglas: iptables-restore < reglas"
fi
##########################################
exit 0

el servidor de correo esta

Imagen de magozolutions

el servidor de correo esta dentro de tu empresa? y si no es así como te conectas a el, por el nombre o por la IP, en el caso de que sea por el nombre, el dns si esta resolviendo ? o tienes configurado u proxy, en el cual no resuelve el outlook el nombre del servidor.
Danos más información para poder ayudarte

Porque haces la redireccion:

Porque haces la redireccion:

$IPTABLES -t nat -A PREROUTING -i $LAN_IF -s $LAN_RED -p tcp --dport 110 -j REDIRECT --to-port 8110
$IPTABLES -A FORWARD -i $LAN_IF -p tcp --dport 110 -j DROP
(Esto no lo entiendo, no se porque haces una redireccion al puerto 8110, a caso lo estas sacando por squid??)

Si tienes un servidor de correo en tu empresa o donde sea.. y este esta escuchando el puerto 110 (POP), para la descarga de correos creo que solo deberias hacer:

iptables -A INPUT -i $LAN_RED -s $LAN_IF -d (IPADDRES Servidor Correo) -p tcp --dport 110 -j ACCEPT
Con esta regla estas aceptando todo el trafico POP que genere tu red lan hacia una maquina especifica que este actuando como servidor de correo, en todo caso si descargas correo desde cualquier servidor que sea POP en vez de la ip addres pon any/0

Saludos,

Eso pasa por copia y pegar y

Imagen de damage

Eso pasa por copia y pegar y no tener idea de que hacen las cosas.
Si tu server de correos esta en tu red, lo unico que debes hacer es aceptar conexiones a los puertos 110 y 25, me imagino que configurastes el sendmail o el que sea y en dovecot o similares debiste declara los puertos de POP, IMAP, etc.

Keep The Fire Burning.....
Stryper 1988
http://counter.li.org/