Abrir puerto 25 en iptables

Imagen de falcom

Forums: 

Salu2, estoy tratando de abrir el puerto 25 en iptables en una maquina q corre una pequeña aplicacion en la cual a traves de un formulario envio solicitudes a traves de un formulario web, desde el cual apunto a un mailserver (ip 192.168.0.4), la regla q pongo en mi iptables es:


iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT

y el codigo php es el siguiente

<? require("class.phpmailer.php");

class my_phpmailer extends phpmailer {
// Set default variables for all new objects
var $From = "info@domain.algo";
var $FromName = "Mailer";
var $Host = "192.168.0.4";
var $Mailer = "smtp"; // Alternative to IsSMTP()
var $WordWrap = 75;
var $Port = 25 ;

// Replace the default error_handler
function error_handler($msg) {
print("Sitio - Error");
print("Description:");
printf("%s", $msg);
exit;
}

// Create an additional function
function do_something($something) {
// Place your new code here
}
}
?>

el lio es q no se envian los mails respectivos, pero si bajo el firewall pues se envian correctamente, a ver si alguien me da una mano por favor

Como tienes política de

Imagen de acl

Como tienes política de DROP, también tienes que añadir la regla de INPUT que corresponde a esas conexiones (INPUT, --sport 25, -s ip.del.mail.server).

La regla de output deja

Imagen de acl

La regla de output deja pasar el paquete de syn que se origina en tu webserver. El mailserver responde con un syn/ack para establecer la conexión tcp (recuerda que son dos vías) y finalmente el webserver contesta con un ack, lo que concluye el establecimiento de la conexión. Solo después puedes hablar la primera frase de smtp.

Sin la regla de input que permita pasar al segundo paquete que viene del mailserver a tu webserver la conexión no se puede establecer y por ende, tampoco la sesión smtp.

No hay de qué. Una

Imagen de acl

No hay de qué. Una alternativa a la regla de INPUT -s webserver --sport 25 es que tu primera regla en INPUT tenga -m state --state RELATED,ESTABLISHED para que los paquetes relacionados (como el syn/ack que necesitabas permitir) puedan pasar. Es un poco mejor porque restringe por ejemplo intentos de conexión (syn) a tus puertos en el webserver, lo cual no tiene esa regla de INPUT que indiqué arriba.

Sip tienes razon asi

Imagen de falcom

Sip tienes razon asi quedaria

iptables -A INPUT -s 192.168.0.4 --sport 25 -m state --state RELATED,ESTABLISHED -j ACCEPT

muchcas gracias x tu ayuda!

Me olvide de indicar q por

Imagen de falcom

Me olvide de indicar q por default tengo las politicas de drop en mi script shell de firewall

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

En qué máquina está el firewall?

Imagen de acl

[quote]
la regla q pongo en mi iptables es:

iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT

[/quote]

¿Esta regla está en el webserver o en el mailserver? Si está en el webserver, no debería ser --sport 25 sino --dport 25. Si está en el mailserver, no debería ser OUTPUT sino INPUT y --dport 25.

Prueba abrir las conexiones manualmente primero. Cuando ya lo tengas, prueba con el script.

Páginas