[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