Deshabilite los scripts php para que no envíen correos electrónicos

Deshabilite los scripts php para que no envíen correos electrónicos

Mi pregunta es sobre cómo evitar que los scripts php envíen correo. Se ha marcado como un duplicado de otra pregunta más general sobre la seguridad del servidor, pero esta pregunta no trata de eso.

Después de una larga y amarga lucha contra los hackers spammers que de alguna manera están inyectando archivos php maliciosos codificados en base64 en varios directorios web en mi servidor Debian/Apache/PHP (la amarga lucha que implica primero parchear los scripts existentes y cambiar las contraseñas de ftp, contraseñas de servicios web y mysql contraseñas, luego reconstruir sitios desde cero, instalar maldet, que frenó el problema pero no lo eliminó por completo, y finalmente desactivó postfix por completo deteniendo el servicio (pero sin desinstalarlo) y luego bloqueando el tráfico del puerto 25 del servidor en el firewall). Todavía tengo problemas.

Mis problemas desaparecieron durante muchos meses y el servidor fue eliminado automáticamente de las listas negras según mxtoolbox. Pero hoy recibí un correo electrónico de mxtoolbox diciendo que mi servidor está nuevamente en la lista negra de muchos servicios. No entiendo completamente cómo es posible esto, dado que deshabilité el tráfico saliente del puerto 25.

Cuando hay un problema, mi postfix mailq se llena con cientos de miles de correos electrónicos de un determinado usuario web en mi servidor.

Mis preguntas son estas:

  1. Dado que he desactivado el tráfico del puerto 25 usando iptables -A OUTPUT -p tcp --dport 25 -j REJECT,¿Cómo es posible que mxtoolbox informe que mi servidor sigue enviando spam?? Cuando reviso el mailq, se realiza una copia de seguridad de los correos. Cuando inicio postfix, los elementos del mailq no se envían como esperaba y veo (delivery temporarily suspended: connect to 127.0.0.1[127.0.0.1]:10024: Connection refused)al lado de cada entrada.

  2. Habiendo identificado la ubicación del RAT mirando la X-PHP-Originating-Scriptlínea en un correo no deseado en mailq, puedo encontrar y destruir el archivo en cuestión, lo que resuelve el problema entre 5 días y muchos meses.¿Cómo evito por completo que cualquier script php envíe un correo?Si entro disable_functions = mailen mi archivo php.ini, entiendo que esto impide el uso de funciones internas pero no de funciones personalizadas, que un spammer podría aprovechar.

  3. ¿Qué más estoy haciendo mal?

Advertencia: sé que el número 2 no resuelve mi problema desde la raíz, pero después de haber seguido consejos y haber reforzado la seguridad de mi servidor en tantas formas como entiendo durante un par de años, estoy trabajando en "lidiar con el problema". problema de reputación del correo" en lugar de "resolver todos los problemas de seguridad".

Este es un seguimiento de miúltima pregunta relacionadaaquí en ServerFault.

Respuesta1

tienes opciones

  1. Quitar sufijo
  2. Eliminar php-mail (nombre del paquete Ubuntu/Debian)

Sin embargo, los spammers aún pueden escribir su propio código SMTP.

Compruebe que SMTP esté realmente bloqueado así

telnet alt4.gmail-smtp-in.l.google.com 25

Respuesta2

El control de firewall para el puerto 25 sigue siendo su mejor opción, luego puede decirle a cualquier usuario válido que envíe correo electrónico a través de servidores autenticados como mandrill u otros en smtps (tcp/587), o use API de correo electrónico de ESP de terceros.

Aún puedes escribir código php que se conectará directamente a los servidores MX a través de sockets, a menos que utilices el enfoque de firewall.

También puede redirigir TCP/25 a un sistema universal para poder monitorear quién está comprometido o es abusivo.

información relacionada