¿Eliminar / ocultar la IP del remitente del cliente de Postfix?

16

Estoy tratando de ocultar la IP del cliente de los correos electrónicos enviados desde postfix.

Aquí hay un ejemplo de lo que quiero decir:

Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])
    (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
    (No client certificate requested)
    by mail.[removed].com (Postfix) with ESMTP id D50C7BF185DD
    for <[removed]@gmail.com>; Thu,  2 Aug 2012 16:14:21 +0900 (JST)
Date: Thu, 02 Aug 2012 07:14:08 +0000

Note esta linea (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])

Quiero eliminar esa línea del correo electrónico.

He intentado hacer esto:

/etc/postfix/main.cf:

smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

smtp_header_checks:

/^((.*) [(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])])/    IGNORE

Pero mi dirección IP todavía está dentro de la parte recibida del correo electrónico. Si envío un correo electrónico desde el servidor SMTP localmente, la dirección IP se convierte enlocalhost.localdomain [127.0.0.1]

¿Cómo puedo eliminar las IP del cliente del encabezado?

Kyle
fuente

Respuestas:

12

En main.cf:

smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

En dynamicmaps.cf:

# Use your real path to dict_pcre.so, below
pcre    /usr/lib/postfix/dict_pcre.so           dict_pcre_open

Deberías poner esto en tu /etc/postfix/smtp_header_checks:

/^Received: .*/     IGNORE
/^X-Originating-IP:/    IGNORE

Entonces corre

# /etc/init.d/postfix reload
Mike Pennington
fuente
Mi dirección IP todavía se muestra. Agradezco los esfuerzos.
Kyle
No es necesario tener postfix-pcre. Regexp funciona de la misma manera.
Kyle
Bien. Me aseguré de instalar pcre en el sistema. He cambiado regexp:/etc/postfix/smtp_header_checksa pcre:/.... Luego reinicié postfix y supervisé el registro de correo para detectar cualquier error. No se mostraron errores. El correo electrónico todavía muestra mi ip. XD Gracias por los esfuerzos, Mike.
Kyle
Hmm ... recibo un error pero encontré esto irbs.net/internet/postfix/0404/1097.html Probé la expresión regular con este postfix.org/pcre_table.5.html usando el argumento: postmap -q "Received: from mail.[removed].com (adsl-75-37-61-254.dsl.frs2ca.sbcglobal.net [75.37.61.254])" pcre:/etc/postfix/smtp_header_checksy la salida fue IGNOREasí. trabajando. Sin embargo, no está haciendo cambios en el correo electrónico ... ¿El campo dentro está main.cfmal?
Kyle
1
Mierda hombre. Acabo de perder tu tiempo. Es mi culpa desde el principio. smtp_header_checksse suponía que era header_checks... Funciona ahora. Lamento haberte hecho perder el tiempo. Aprecio tu esfuerzo. Gracias. pcre también funciona también. Estoy en centos. Gracias de nuevo, hermano.
Kyle
3

Abra /etc/postfix/master.cf y busque:

cleanup unix n - n - 0 cleanup

Agregue debajo de esa línea y conviértase en:

cleanup unix n - n - 0 cleanup -o header_checks=pcre:/etc/postfix/header_checks

Edite / etc / postfix / header_checks y agregue los siguientes códigos:

/^Received:/ IGNORE

Ahora reinicie postfix. Digamos en CentOS:

service postfix restart

igtztorrero
fuente
1
Desafortunadamente, esto también eliminará el Receivedencabezado del correo entrante.
0

Para eliminar la IP del remitente del encabezado Recibido para nuevos envíos de correo, use la header_checksclave en lugar de la smtp_header_checksopción:

header_checks = regexp:/etc/postfix/header_checks_submission

La smtp_header_checksopción solo se aplica al correo que se envía desde Postfix a servidores externos, mientras que la header_checksopción se aplica al correo entrante enviado desde su cliente a Postfix.

Consulte también Cómo Postfix recibe correo en http://www.postfix.org/OVERVIEW.html para obtener una descripción general de los componentes, el correo va de smtpd -> limpieza -> cola entrante. El smtpdproceso recibe correo e inyecta el Receivedencabezado con la dirección IP del remitente. La header_checks(5)opción es procesada por el cleanup(8)componente que desinfecta los encabezados de correo electrónico.

Se no se recomienda establecer una tal header_checksopción globalmente en su main.cf ya que esto podría modificar el encabezado Recibido en todos los correos electrónicos, incluso las recibidas de los servidores externos. En su lugar, debe configurar su cliente para enviar correos electrónicos a través de un servicio de envío dedicado en el puerto 587, y configurar Postfix para reescribir los encabezados solo para estos envíos autenticados.

En /etc/postfix/master.cf, agregue las siguientes -olíneas después de la submissionlínea:

submission inet n       -       y       -       -       smtpd
  # Require SASL authentication
  -o smtpd_sasl_auth_enable=yes
  # Require TLS transport security, do not leak your credentials in plaintext.
  -o smtpd_tls_security_level=encrypt`
  # Disallow unauthenticated users from sending mail through this port.
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  # Use a different cleanup service (see below)
  -o cleanup_service_name=ascleanup

Es hora de configurar el servicio de limpieza para una ubicación s autenticada . Elijo el nombre ascleanuppara mantenerlo corto y alineado, pero cualquier nombre funciona. Para hacerlo, duplique la línea del servicio de limpieza en el mismo master.cfarchivo, pero cambie el nombre del primer campo y agregue una nueva opción para seleccionar el archivo de filtro:

cleanup   unix  n       -       y       -       0       cleanup
ascleanup unix  n       -       y       -       0       cleanup
  -o header_checks=pcre:/etc/postfix/header_checks_submission

(El uso de la pcretabla requiere la instalación postfix-pcreen Debian, que se encargará automáticamente de actualizar el archivo dynamicmaps.cf. No se necesitan más cambios para esto).

La pieza final es la configuración real del filtro en /etc/postfix/header_checks_submission. Potencialmente podría usar algo como:

/^Received: .*/ IGNORE

lo que eliminará la línea completa de encabezado Recibido, pero en su lugar también puede soltar la from helo.host (reverse.host.name [192.0.2.1])parte mientras conserva otra información:

/^Received: from [^ ]+ \([^ ]+ \[[IPv0-9a-f:.]+\]\)\s+(.* \(Postfix\) with .+)$/ REPLACE Received: $1

Si cambió la mail_nameopción, cambie la Postfixpalabra para que coincida con su configuración. (Este patrón es exacto según el código fuente de Postfix, smtpd / smtpd.c .)

Probé esto con postfix 3.4.7-0 + deb10u1 en Debian buster. Para otra gran descripción con el mismo enfoque, consulte Al enviar un correo electrónico con Postfix, ¿cómo puedo ocultar la IP y el nombre de usuario del remitente en el encabezado Recibido?

Con la modificación anterior, se convierte en lo siguiente Received: by ...:

Received: from debian (unknown [IPv6:fe80::b036:2ff:fe6e:73f4])
        by mail.example.nl (Postfix) with ESMTPSA id 1571B910B
        for <[email protected]>; Sun, 12 Jan 2020 02:23:15 +0000 (UTC)
Lekensteyn
fuente
-1

utilizar esta:

/^Received: from .*127.0.0.1**/ IGNORE

solo use single *en ambos extremos

HiperKulet
fuente
¿O más como eso? / ^ Recibido: de. * 127 \ .0 \ .0 \ .1. * / IGNORE
Jack B.