[Postfix-es] Spam por formulario web

Jorge Armando Medina jmedina en calcom.com.mx
Mar Mayo 15 02:24:07 CEST 2007


On Monday 14 May 2007 16:43:38 jmas wrote:
> Buenas lista, me he dado cuenta de que mi servidor está enviando spam,
> y estoy practicamente seguro que es a través de un formulario web.  De
> entrada, estoy quitando el formulario web, espero que con eso tenga
> suficiente.  Pero mi duda es?, donde debería corregir esto?.  Es un
> error de configuración de mi servidor o es un error de programación en
> PHP.

En tu caso con formas web el metodo de envio es definido dependiendo de la 
funcion que se use en PHP, yo siempre trato de usar Pear-Mail para usar 
smtp-auth en las formas, pero mucha gente simplemente usa mail() y esta 
funcion hace uso del comando /usr/bin/sendmail por lo el servicio «pickup» es 
quien envia el correo, en este caso obedece las restricciones para localhost,

algo como 

smtpd_recipient_restrictions = permit_mynetwors

en este caso no hay mucho que filtrar si permites todo lo del localhost, 
entonces o arreglas tus php formas para prevenir injeccion smtp o bloqueas el 
usuario que ejecuta tu servidor web,

https://help.webstrikesolutions.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=130&nav=0

en esa liga hay algo de informacion acerca de injeccion smtp en formas web, y 
algo basico para prevenirlo.

aqui algo mas

http://www.nyphp.org/phundamentals/email_header_injection.php

Si no quieres permitir que ciertos users como el usuario que ejeucte apache 
envie correo puedes hacer algo asi:

Para Postfix 2.2 o mas nuevo:

/etc/postfix/main.cf:
    authorized_submit_users = !www, static:all


>
> Estoy usando ubuntu 6.06.1 LTS, postfix 2.2.10, sasl y squirrel mail.
>
> Gracias por sus opiniones.
>
> Soy nuevo en la lista, y no sé si los siguientes datos debería postearlos:
>
> Uno de los muchos mails en el mail.log:
> from=<www-data en biblioteca>, size=11549, nrcpt=50 (queue active)
> May 14 06:33:45 nombre_host postfix/qmgr[23226]: 310BC68CC49:
> to=<trae en attbi.com>, relay=none, delay=212184, status=deferred
> (delivery temporarily suspended: connect to attbi.com[\
> 208.67.219.130]: Connection refused)
>
> #postconf -n
> alias_database = hash:/etc/aliases
> alias_maps = hash:/etc/aliases
> append_dot_mydomain = no
> biff = no
> command_directory = /usr/sbin
> config_directory = /etc/postfix
> content_filter = smtp-amavis:[127.0.0.1]:10024
> daemon_directory = /usr/lib/postfix
> delay_warning_time = 4h
> disable_vrfy_command = yes
> inet_interfaces = all
> inet_protocols = all
> mailbox_size_limit = 0
> mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
> mydestination = $myhostname, localhost, $mydomain
> mydomain = biblioteca.asuc.edu.gt
> myhostname = biblioteca.asuc.edu.gt
> mynetworks = 127.0.0.0/8
> myorigin = /etc/mailname
> recipient_delimiter = +
> relayhost =
> sender_canonical_maps = hash:/etc/postfix/sender_canonical
> setgid_group = postdrop
> smtp_sasl_auth_enable = no
> smtp_tls_loglevel = 0
> smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
> smtpd_client_restrictions = permit_sasl_authenticated,
> check_recipient_access hash:/etc/postfix/acces,	check_sender_access
> hash:/etc/postfix/acces,	reject_unauth_pipelining,	reject
> smtpd_data_restrictions = reject_unauth_pipelining,        permit
> smtpd_helo_required = yes
> smtpd_recipient_restrictions = reject_invalid_hostname,
> reject_non_fqdn_hostname,        reject_non_fqdn_sender,
> reject_non_fqdn_recipient,        reject_unknown_sender_domain,
> reject_unknown_recipient_domain,	permit_mynetworks,	permit_sasl_authenticat
>ed,	reject_unauth_destination,	check_recipient_access
> pcre:/etc/postfix/recipient_checks.pcre,	check_recipient_access
> hash:/etc/postfix/acces        check_helo_access
> hash:/etc/postfix/helo_checks,	check_sender_access
> hash:/etc/postfix/acces        reject_rbl_client relays.ordb.org,
>   reject_unknown_client,	permit
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain = biblioteca
> smtpd_sasl_security_options = noanonymous
> strict_rfc821_envelopes = yes
>
>
> *********Código de php (solo por referencia)
> mail.php
> <?php
>         $nombre= $HTTP_POST_VARS["Nombre"];
>         $email= $HTTP_POST_VARS["Email"];
>         $mensaje= $HTTP_POST_VARS["Mensaje"];
>         $estado = 0;
>         $todo = "Mensaje de: ".$nombre."\nEmail: ".$email."\n\n".$mensaje;
>         if (mail("webmaster en bibliteca.asuc.edu.gt","Mensaje de
> Comentario",$todo,"From:".$email."\nReply_TO:webmaster en biblioteca.asuc.edu.
>gt\nX-Mailer:PHP/" . phpversion()))
>                 //echo "mensaje enviado con exito 2";
>                 $estado = 1;
>         else
>                 //echo "mensaje no enviado 2";
>                 $estado = 0;
> ?>
> ...



-- 
Jorge Armando Medina 
Calcom de México S.A de C.V. 
Telefono: 01 (664) 6238311 
Email: jmedina en calcom.com.mx


Más información sobre la lista de distribución Postfix-es