2012-05-20 21 views
12

Estoy protegiendo mi servidor (con iptables) para que solo los puertos http y ssh estén abiertos y eso está bien, aunque utilizo el comando mail (servidor: CentOS 6.2) en algunas aplicaciones y no se puede acceder ahora gracias a iptables bloqueando todo.¿Cómo permitir el correo a través de iptables?

¿A qué puertos le permito acceder?

uso del correo: echo "{{message}}" | mail -s "{{subject}}" [email protected]

he probado el puerto de correo estándar de 25, pero no he tenido éxito con eso. Aquí está la configuración actual:

iptables --flush 

iptables -P INPUT DROP 
iptables -P OUTPUT DROP 

# incoming ssh 
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

# outgoing ssh 
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

#HTTP 
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 

# mail (does not work) 
iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT 

(EDIT) RESPUESTA: La regla de iptables de trabajo:

iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -i eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT 

Respuesta

11

Los OUTPUT comandos también deben referirse a --dport, no --sport. También querrá permitir NEW paquetes de salida para iniciar la conexión al servidor SMTP.

En general, sin embargo, ya OUTPUT controles sólo aquellos paquetes que genera su propio sistema, puede establecer la política OUTPUT-ACCEPT a menos que necesite para evitar la generación de de los paquetes salientes.


Otros dos comentarios:

1. Jay D's sugerencia de "permiten todo y luego empiezan a bloquear el tráfico específico" es inseguro. Nunca configure iptables de esta manera porque debe saber con anticipación qué puertos puede usar un atacante y bloquearlos individualmente. Siempre utilice una lista blanca en lugar de una lista negra si puede.

2. Una indirecta de las trincheras: cuando se está depurando iptables, a menudo es útil para mensajes -I nsert y -A registro ppend al principio y al final de cada cadena, y luego borrar los contadores, y realizar un experimento . (En su caso, emita el comando mail). Luego, verifique los contadores y los registros para comprender cómo se migraron los paquetes a través de las cadenas y dónde pueden haberse descartado.

+0

AH Sí, gracias. Creo que voy a permitir todo SALIDA también. – Andrew

+0

Hay dos formas de hacerlo: 1. Como está bloqueando todo y luego comienza a perforar agujeros para el tráfico de protocolo específico. 2. Permitir todo Y luego comenzar a bloquear el tráfico específico. Creo firmemente que 1. Es una mejor estrategia. –

+3

@JayD: Perdone la franqueza, pero el # 1 no es simplemente "una mejor estrategia" que el # 2; # 2 es inseguro hasta el punto de la negligencia. No recomiendo este método para otra cosa que no sea un ejercicio de aprendizaje. –

Cuestiones relacionadas