En este tutorial, me gustaría compartir con ustedes mis 7 consejos para bloquear el correo no deseado con el servidor Postfix SMTP en CentOS/RHEL. Durante los últimos cuatro años de ejecutar mi propio servidor de correo electrónico, recibí mucho spam, también conocido como correo electrónico comercial no solicitado. El spam existe porque es muy barato enviar un gran volumen de correos electrónicos en Internet. Postfix le permite bloquear el spam antes de que llegue a su buzón de correo, para que pueda ahorrar ancho de banda y espacio en disco.
Nota :Si planea ejecutar su propio servidor de correo, le recomiendo usar iRedmail, que realmente simplifica el proceso de configuración de un servidor de correo. También se envía con reglas antispam. Si prefiere configurar un servidor de correo desde cero, consulte mi serie de tutoriales sobre servidores de correo.
Características del correo basura
A continuación se muestra lo que encontré sobre el correo electrónico no deseado. Estos spam son fáciles de bloquear.
- Sus direcciones IP no tienen registros PTR.
- El spammer no proporciona un nombre de host válido en la cláusula HELO/EHLO.
- Falsifican la dirección MAIL FROM.
- Por lo general, no vuelven a enviar el correo electrónico después de una entrega de correo electrónico fallida.
Los servidores de correo legítimos nunca deberían tener estas características. Así que aquí vienen mis 7 consejos, que bloquearán el 90 % del spam.
Realidad:Alrededor del 93 % al 95 % de los correos electrónicos en el mundo se rechazan en la puerta de enlace SMTP, nunca llegan a la bandeja de entrada o a la carpeta de correo no deseado.
Sugerencia n.º 1:rechace el correo electrónico si el cliente SMTP no tiene registro PTR
El registro PTR asigna una dirección IP a un nombre de dominio. Es la contraparte de un registro. En CentOS/RHEL, puede consultar el nombre de dominio asociado con una dirección IP ejecutando el siguiente comando:
host <IP address>
Si host
no se puede encontrar el comando, entonces necesita instalar bind-utils
paquete.
sudo dnf install bind-utils
Por ejemplo, el siguiente comando devuelve el nombre de host de mi servidor de correo.
host 23.254.225.226
Salida:
226.225.254.23.in-addr.arpa domain name pointer mail.linuxbabe.com.
Debido a la prevalencia del spam, muchos servidores de correo (como Gmail, gmx.com, gmx.net, facebook.com) requieren que los clientes SMTP tengan registros PTR válidos asociados con sus direcciones IP. Cada administrador del servidor de correo debe establecer un registro PTR para sus servidores SMTP. Si el cliente SMTP tiene un registro PTR, puede encontrar una línea en el registro de Postfix (/var/log/maillog)
como a continuación.
connect from mail.linuxbabe.com[23.254.225.226]
Si el cliente SMTP no tiene un registro PTR, el nombre de host se identificará como unknown
en el registro de Postfix.
connect from unknown[120.41.196.220]
Para filtrar correos electrónicos sin registros PTR, abra el archivo de configuración principal de Postfix.
sudo nano /etc/postfix/main.cf
Agregue la siguiente línea en smtpd_sender_restrictions
. Esta directiva rechaza un correo electrónico si la dirección IP del cliente no tiene registro PTR.
reject_unknown_reverse_client_hostname
Ejemplo:
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_reverse_client_hostname
Guarde y cierre el archivo. Luego reinicie Postfix para que el cambio surta efecto.
sudo systemctl restart postfix
Sugerencia n.º 2:habilite las restricciones de nombre de host HELO/EHLO en Postfix
Algunos spammers no proporcionan un nombre de host HELO/EHLO válido en el cuadro de diálogo SMTP. Pueden ser nombres de dominio no calificados por completo, no existe un nombre de dominio o solo para la red interna. Por ejemplo, un spammer que usa una instancia de Amazon EC2 para enviar spam se registra en mi servidor de la siguiente manera:
Aug 16 04:21:13 email postfix/smtpd[7070]: connect from ec2-54-237-201-103.compute-1.amazonaws.com[54.237.201.103] Aug 16 04:21:13 email policyd-spf[7074]: prepend Received-SPF: None (mailfrom) identity=mailfrom; client-ip=54.237.201.103; helo=ip-172-30-0-149.ec2.internal; [email protected]; receiver=<UNKNOWN>
Como puede ver, el nombre de host HELO es ip-172-30-0-149.ec2.internal
, que solo es válido en la red interna de AWS. No tiene registro A ni registro MX válido.
Para habilitar la restricción de nombre de host HELO/EHLO, edite el archivo de configuración principal de Postfix.
sudo nano /etc/postfix/main.cf
Primero, agregue la siguiente línea para solicitar al cliente que proporcione un nombre de host HELO/EHLO.
smtpd_helo_required = yes
Luego agregue las siguientes 3 líneas para habilitar smtpd_helo_restrictions
.
smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated
Utilice la siguiente línea para rechazar clientes que proporcionen un nombre de host HELO/EHLO mal formado.
reject_invalid_helo_hostname
Use la siguiente línea para rechazar el nombre de host HELO/EHLO no calificado completamente.
reject_non_fqdn_helo_hostname
Para rechazar el correo electrónico cuando el nombre de host HELO/EHLO no tiene un registro DNS A ni un registro MX, utilice
reject_unknown_helo_hostname
Así:
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname
Guarde y cierre el archivo. Luego recarga Postfix.
sudo systemctl reload postfix
Tenga en cuenta que aunque la mayoría de los servidores de correo legítimos tienen un registro A válido para el nombre de host HELO/EHLO, ocasionalmente un servidor de correo legítimo no cumple con este requisito. Debe incluirlos en la lista blanca con check_helo_access
.
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated check_helo_access hash:/etc/postfix/helo_access reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname
Luego necesitas crear el /etc/postfix/helo_access
archivo.
sudo nano /etc/postfix/helo_access
Incluya en la lista blanca el nombre de host HELO/EHLO del servidor de correo legítimo como se muestra a continuación.
optimus-webapi-prod-2.localdomain OK va-massmail-02.rakutenmarketing.com OK
Es probable que no sepa qué nombres de host incluir en la lista blanca, simplemente copie las dos líneas anteriores, que son las únicas líneas en mi helo_access
expediente. Siempre puede agregar más nombres de host más tarde. Guarde y cierre el archivo. Luego ejecute el siguiente comando para crear el archivo /etc/postfix/helo_access.db.
sudo postmap /etc/postfix/helo_access
Y recarga Postfix.
sudo systemctl reload postfix
Sugerencia n.º 3:rechace el correo electrónico si el nombre de host del cliente SMTP no tiene un registro A válido
Un servidor de correo electrónico legítimo también debe tener un registro A válido para su nombre de host. La dirección IP devuelta desde un registro debe coincidir con la dirección IP del servidor de correo electrónico. Para filtrar correos electrónicos de hosts que no tienen un registro A válido, edite el archivo de configuración principal de Postfix.
sudo nano /etc/postfix/main.cf
Agregue las siguientes dos líneas en smtpd_sender_restrictions
.
reject_unknown_reverse_client_hostname reject_unknown_client_hostname
Ejemplo:
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_reverse_client_hostname reject_unknown_client_hostname
Guarde y cierre el archivo. Luego reinicie Postfix para que el cambio surta efecto.
sudo systemctl restart postfixTenga en cuenta que
reject_unknown_client_hostname
no requiere HELO del cliente SMTP. Obtendrá el nombre de host del registro PTR, luego verificará el registro A. Sugerencia n.º 4:rechace el correo electrónico si el dominio MAIL FROM no tiene un registro MX ni un registro
El MAIL FROM
la dirección también se conoce como envelope from
dirección. Algunos spammers usan un dominio inexistente en el MAIL FROM
dirección. Si un nombre de dominio no tiene un registro MX, Postfix encontrará el registro A del dominio principal y enviará un correo electrónico a ese host. Si el dominio del remitente no tiene registro MX ni registro A, Postfix no puede enviar correo electrónico a ese dominio. Entonces, ¿por qué no rechazar los correos electrónicos a los que no puede responder?
Para filtrar este tipo de spam, edite el archivo de configuración principal de Postfix.
sudo nano /etc/postfix/main.cf
Agregue la siguiente línea en smtpd_sender_restrictions
. Rechazará el correo electrónico si el nombre de dominio de la dirección proporcionada con el comando MAIL FROM no tiene registro MX ni registro A.
reject_unknown_sender_domain
Ejemplo:
smtpd_sender_restrictions = permit_mynetworks permit_sasl_authenticated reject_unknown_sender_domain reject_unknown_reverse_client_hostname reject_unknown_client_hostname
Guarde y cierre el archivo. Luego reinicie Postfix para que el cambio surta efecto.
sudo systemctl restart postfix
Tenga en cuenta que coloqué esta restricción por encima de otros reject
restricciones Según mi experiencia, si está debajo de otros reject
restricciones, no funcionará. (Tal vez esto solo suceda en mi servidor de correo electrónico).
Consejo n.° 5:habilite la inclusión en listas grises en Postfix
Según lo exige el protocolo SMTP, cualquier cliente SMTP legítimo debe poder volver a enviar correos electrónicos si falla la entrega. (De forma predeterminada, Postfix está configurado para reenviar correos electrónicos fallidos durante 4 o 5 días antes de informar al remitente que el mensaje no se pudo entregar).
Postgrey
es un servidor de políticas de listas grises para Postfix. Los usuarios de CentOS/RHEL pueden instalarlo desde el repositorio de EPEL.
sudo dnf install epel-release sudo dnf install postgrey
Una vez que esté instalado, inícielo con systemctl.
sudo systemctl start postgrey
Habilite el inicio automático en el momento del arranque.
sudo systemctl enable postgrey
En CentOS/RHEL, Postgrey escucha en un socket de Unix (/var/spool/postfix/postgrey/socket
).
A continuación, necesitamos editar el archivo de configuración principal de Postfix para que use el servidor de políticas de listas grises.
sudo nano /etc/postfix/main.cf
Agregue la siguiente línea en smtpd_recipient_restrictions
.
check_policy_service unix:postgrey/socket
En caso de que no lo sepa, la directiva check_policy_service unix:private/policyd-spf
en la captura de pantalla anterior, Postfix verificará el registro SPF en el dominio del remitente. Esta directiva requiere que instale y configure el paquete pypolicyd-spf.
Guarde y cierre el archivo. Luego reinicie Postfix.
sudo systemctl restart postfix
A partir de ahora, Postgrey rechazará un correo electrónico si el triplete de remitentes (dirección IP del remitente, dirección de correo electrónico del remitente, dirección de correo electrónico del destinatario) es nueva. El siguiente mensaje de registro en /var/log/maillog
muestra un nuevo triplete emisor. La acción “greylist
” significa que este mensaje de correo electrónico fue rechazado.
postgrey[1016]: action=greylist, reason=new, client_name=unknown, client_address=117.90.24.148/32, [email protected], [email protected]
Según mi experiencia, a los spammers de correo electrónico chinos les gusta usar una dirección de remitente falsa, de aspecto extraño y generada aleatoriamente para cada correo electrónico, por lo que agregar estas direcciones de correo electrónico falsas a la lista negra no los detendrá. Por otro lado, nunca intentan reenviar un correo electrónico rechazado con la misma dirección de remitente, lo que significa que las listas grises pueden ser muy efectivas para detener este tipo de spam.
Cómo minimizar la mala experiencia del usuario
La creación de listas grises puede resultar en una mala experiencia para el usuario final, ya que el usuario tiene que esperar varios minutos más para que llegue el correo electrónico. Para minimizar esta mala experiencia, puede crear una lista blanca y usar un segundo registro MX que apunte al mismo host.
Lista blanca
Postgrey se envía con dos archivos de lista blanca (/etc/postfix/postgrey_whitelist_clients
y /etc/postfix/postgrey_whitelist_recipients
). El primero contiene una lista de nombres de host y el segundo contiene una lista de direcciones de destinatarios.
De forma predeterminada, los servidores de correo de Google están en la lista blanca. No importa que el remitente esté usando una dirección @gmail.com u otra dirección, siempre que el remitente esté usando el servidor de correo de Google, Postgrey no rechazará el correo electrónico. La siguiente línea en mi /var/log/maillog
archivo muestra esto.
postgrey[1032]: action=pass, reason=client whitelist, client_name=mail-yb0-f190.google.com
Nota :También puede ver los registros de postgrey con este comando sudo journalctl -u postgrey
.
Puede agregar otros nombres de host en /etc/postfix/postgrey_whitelist_clients
archivo, como
facebook.com bounce.twitter.com blogger.com email.medium.com
Puede obtener estos nombres de host con una herramienta llamada pflogsumm
, que discutiré más adelante en este artículo. Guarde y cierre el archivo, luego reinicie Postgrey.
sudo systemctl restart postgrey
Cree otro nombre de host MX con la misma dirección IP
Puede especificar más de un registro MX para su nombre de dominio como se muestra a continuación.
Record Type Name Mail Server Priority MX @ mail.yourdomain.com 0 MX @ mail2.yourdomain.com 5
El remitente probará con el primer servidor de correo (con prioridad 0). Si mail.yourdomain.com rechaza el correo electrónico mediante una lista gris, el remitente intentará inmediatamente con el segundo servidor de correo (con prioridad 5).
Si los dos nombres de host del servidor de correo tienen la misma dirección IP, cuando el remitente intente con el segundo nombre de host del servidor de correo, el correo electrónico se aceptará de inmediato (si se aprueban todas las demás comprobaciones) y los usuarios finales no notarán el retraso del correo electrónico causado por la lista gris.
Tenga en cuenta que esto requiere que establezca un tiempo de retraso muy pequeño como 1 segundo en /etc/sysconfig/postgrey
archivo como a continuación. El tiempo de retraso le dice al cliente SMTP cuántos segundos debe esperar antes de enviarlo nuevamente. Si el tiempo de demora no es lo suficientemente pequeño, la segunda entrega de correo electrónico aún se rechazará.
POSTGREY_DELAY="--delay=1"
Guarde y cierre el archivo. Luego reinicie Postgrey.
sudo systemctl restart postgrey
Tenga en cuenta que no todos los servidores de correo probarán inmediatamente el segundo host MX.
Consejo n.º 6:uso de listas negras públicas en tiempo real
Hay correos electrónicos no deseados que se envían desde servidores que tienen un nombre de host válido, un registro PTR válido y pueden pasar por la lista gris. En este caso, puede utilizar la lista negra para rechazar el spam. Hay muchas listas negras públicas en tiempo real (RBL), también conocidas como DNSBL (listas basadas en DNS). Por tiempo real, significa que la lista siempre está cambiando. Una dirección IP o nombre de dominio podría estar en la lista hoy y fuera de la lista mañana, por lo que podría obtener diferentes resultados dependiendo de cuándo consulte la lista.
Puede usar múltiples listas negras para bloquear el spam. Vaya a https://www.debouncer.com y mxtoolbox.com, ingrese el dominio y la dirección IP del spammer para ver qué listas negras los están bloqueando, luego puede usar esas listas negras. Por ejemplo, descubrí que los spammers están en la lista negra de una de las siguientes listas negras:
- dbl.spamhaus.org
- zen.spamhaus.org
- multi.uribl.com
- ivmURI
- URI de valor
Entonces puedo agregar las siguientes configuraciones en /etc/postfix/main.cf
expediente. Algunos servicios públicos de listas negras requieren una tarifa mensual. Por ahora, estoy usando el servicio gratuito de spamhaus.org.
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policyd-spf check_policy_service unix:postgrey/socket reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org reject_rbl_client zen.spamhaus.org
donde:
rhs
significa lado derecho, es decir, el nombre de dominio.reject_rhsbl_helo
hace que Postfix rechace el correo electrónico cuando el nombre de host del cliente HELO o EHLO está en la lista negra.reject_rhsbl_reverse_client
:rechaza el correo electrónico cuando el nombre de host del cliente inverso no verificado está en la lista negra. Postfix obtendrá el nombre de host del cliente del registro PTR. Si el nombre de host está en la lista negra, rechace el correo electrónico.reject_rhsbl_sender
hace que Postfix rechace el correo electrónico cuando el dominio MAIL FROM está en la lista negra.reject_rbl_client
:Esta es una lista negra basada en IP. Cuando la dirección IP del cliente esté en la lista negra, rechace el correo electrónico.
Algunos spammers utilizan el servidor de correo de Google, por lo que reject_rhsbl_helo
es ineficaz, pero la mayoría de ellos usan sus propios nombres de dominio en el encabezado MAIL FROM, por lo que reject_rhsbl_sender
será efectivo.
Crear una lista blanca
A veces hay servidores de correo electrónico legítimos en la lista negra. Puede crear una lista blanca para que no se bloqueen. Cree el siguiente archivo.
sudo nano /etc/postfix/rbl_override
En este archivo, incluya nombres de dominio en la lista blanca como los siguientes.
dripemail2.com OK //This domain belongs to drip.com mlsend.com OK //This domain belongs to mailerlite email marketing service
Guarde y cierre el archivo. Luego ejecute el siguiente comando para crear el rbl_override.db
archivo.
sudo postmap /etc/postfix/rbl_override
Edite el archivo de configuración principal de Postfix.
sudo nano /etc/postfix/main.cf
En smtpd_recipient_restrictions
, agregue la siguiente línea.
check_client_access hash:/etc/postfix/rbl_override
Como abajo. Debe colocarse por encima de otros controles RBL.
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policyd-spf check_policy_service unix:postgrey/socket check_client_access hash:/etc/postfix/rbl_override reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org reject_rbl_client zen.spamhaus.org
Vuelva a cargar Postfix para que los cambios surtan efecto.
sudo systemctl reload postfix
Uso de la lista blanca pública para reducir los falsos positivos
A veces es necesario mantener una lista blanca privada, pero también puede usar listas blancas públicas, la más famosa de las cuales es dnswl.org. Actualmente, solo hay una lista blanca para la dirección IP. La lista blanca de nombres de dominio está en versión beta. Para usarlo, coloque la siguiente línea en smtpd_recipient_restrictions
.
permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3]
Como abajo. Debe colocarse encima de reject_rbl_client
verificar.
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated check_policy_service unix:private/policyd-spf check_policy_service unix:postgrey/socket check_client_access hash:/etc/postfix/rbl_override reject_rhsbl_helo dbl.spamhaus.org reject_rhsbl_reverse_client dbl.spamhaus.org reject_rhsbl_sender dbl.spamhaus.org permit_dnswl_client list.dnswl.org=127.0.[0..255].[1..3] reject_rbl_client zen.spamhaus.org
Otra lista blanca muy conocida es swl.spamhaus.org , para que también puedas agregarlo a tu configuración.
permit_dnswl_client swl.spamhaus.org
Es imposible que una dirección IP aparezca en la lista blanca y la lista negra de Spamhaus al mismo tiempo, por lo que si solo usa la lista negra de Spamhaus en Postfix, entonces no es necesario verificar la lista blanca de Spamhaus.
Mis filtros de spam de Postfix
Aquí hay una captura de pantalla de mis filtros de spam de Postfix.
Informe de registro de sufijos
Pflogsumm
es una gran herramienta para crear un resumen de los registros de Postfix. En CentOS/RHEL, pflogsumm es proporcionado por postfix-perl-scripts
paquete.
sudo dnf install postfix-perl-scripts
Use el siguiente comando para generar un informe para hoy.
sudo pflogsumm -d today /var/log/maillog
Genere un informe para ayer.
sudo pflogsumm -d yesterday /var/log/maillog
Si desea generar un informe para esta semana.
sudo pflogsumm /var/log/maillog
Para emitir informes de "problemas" (rebotes, aplazamientos, advertencias, rechazos) antes de las estadísticas "normales", use --problems-first
bandera.
sudo pflogsumm -d today /var/log/maillog --problems-first
Para agregar la dirección de correo electrónico del remitente a cada listado en el informe de rechazo, use --rej-add-from
bandera.
sudo pflogsumm -d today /var/log/maillog --rej-add-from
Para mostrar el motivo completo en los resúmenes de rechazo, use --verbose-msg-detail
bandera.
sudo pflogsumm -d today /var/log/maillog --rej-add-from --verbose-msg-detail
Puede agregar un trabajo cron para hacer que pflogsumm envíe un informe a su dirección de correo electrónico todos los días.
sudo crontab -e
Agregue la siguiente línea, que generará un informe todos los días a las 4:00 a. m.
0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog --problems-first --rej-add-from --verbose-msg-detail -q
Para recibir el informe por correo electrónico, agregue la siguiente línea sobre todos los trabajos cron.
MAILTO="your-email-address"
Debe prestar atención al message reject detail
sección, donde se puede ver por qué se rechazan esos correos y si hay algún falso positivo. Es seguro ignorar los rechazos de la lista gris.
Si ya se configuró la variable MAILTO pero desea que se envíe el resumen de registro de Postfix a una dirección de correo electrónico diferente, puede colocar la siguiente línea en su trabajo Cron.
0 4 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog --problems-first --rej-add-from --verbose-msg-detail -q | mutt -s "Postfix log summary" your-email-address
La salida de pflogsumm
el comando se redirige a mutt
, un agente de usuario de correo de línea de comandos, que usará la salida como el cuerpo del correo electrónico y lo enviará a la dirección de correo electrónico que especifique al final. Por supuesto, debe instalar mutt en su servidor CentOS/RHEL.
sudo dnf install mutt
Sugerencia n.º 7:configure OpenDMARC para rechazar correos electrónicos que no superen la verificación de DMARC
DMARC (Domain-based Message Authentication, Reporting and Conformance) es un estándar de Internet que permite a los propietarios de dominios evitar que sus nombres de dominio sean utilizados por falsificadores de correo electrónico. Lea una de las siguientes guías para configurar OpenDMARC.
- Configure OpenDMARC con Postfix en CentOS/RHEL para bloquear la falsificación de correo electrónico
Ejecución del solucionador de DNS local para acelerar las búsquedas de DNS
Como puede ver, Postfix necesitará buscar registros DNS para analizar cada diálogo SMTP. Para acelerar las búsquedas de DNS, puede ejecutar una resolución de DNS local. Y la mayoría de las listas negras de DNS tienen un límite de consultas. Ejecutar su propio solucionador de DNS local para almacenar en caché los registros de DNS puede ayudarlo a mantenerse por debajo del límite de consultas.
Podemos instalar el servidor DNS bind9.
sudo dnf install bind
Inicie BIND 9 con:
sudo systemctl start named
Y habilite el inicio automático en el momento del arranque:
sudo systemctl enable named
Puede comprobar su estado con:
systemctl status named
Salida de muestra:
● named.service - Berkeley Internet Name Domain (DNS) Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disable> Active: active (running) since Sun 2020-05-17 11:07:34 EDT; 9s ago Process: 7203 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TE> Process: 7218 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited,> Process: 7215 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; the> Main PID: 7220 (named) Tasks: 4 (limit: 5045) Memory: 55.5M CGroup: /system.slice/named.service └─7220 /usr/sbin/named -u named -c /etc/named.conf -4
Sugerencia:si el comando anterior no se cierra de inmediato, presione Q.
Configuración de la resolución de DNS predeterminada en el servidor de correo CentOS/RHEL
Necesitamos configurar 127.0.0.1 como el solucionador de DNS predeterminado. Puede verificar la resolución de DNS actual en CentOS/RHEL con el siguiente comando.
cat /etc/resolv.conf
Salida de muestra:
# Generated by NetworkManager nameserver 192.168.0.1 nameserver 8.8.8.8
Para configurar BIND como el solucionador predeterminado, primero debe encontrar el nombre de su interfaz de red principal con el siguiente comando.
ip addr
El mio es ens3
. A continuación, ejecute el siguiente comando para editar el archivo de configuración de la interfaz de red. Reemplazar ens3
con su propio nombre de interfaz.
sudo nano /etc/sysconfig/network-scripts/ifcfg-ens3
Encuentra el DNS1
parámetro y cambie su valor a 127.0.0.1
. Tenga en cuenta que si los valores de otros parámetros en este archivo están envueltos entre comillas dobles, también debe envolver 127.0.0.1
con comillas dobles.
DNS1="127.0.0.1"
Si no puede encontrar el DNS1
parámetro, luego agregue la línea anterior en la parte inferior de este archivo. Se recomienda especificar una resolución de DNS secundaria agregando la siguiente línea en este archivo, para reducir la probabilidad de fallas de DNS.
DNS2="8.8.8.8"
Guarde y cierre el archivo. Luego reinicie NetworkManager para que el cambio surta efecto.
sudo systemctl restart NetworkManager
Ahora puede comprobar el contenido de /etc/resolv.conf
otra vez. Como puede ver, 127.0.0.1 (BIND) es ahora el solucionador de DNS predeterminado en CentOS/RHEL.
Cómo deshabilitar IPv6 en BIND
Si su servidor de correo no tiene una dirección IPv6 pública, es una buena idea desactivar IPv6 en BIND; de lo contrario, habrá muchos errores sobre IPv6 en el registro de BIND, como se muestra a continuación.
network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2001:4178:2:1269:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/A/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53 network unreachable resolving 'mirrors.fedoraproject.org/AAAA/IN': 2610:28:3090:3001:dead:beef:cafe:fed5#53
Para deshabilitar IPv6 en BIND en CentOS/RHEL, simplemente abra /etc/sysconfig/named archivo
sudo nano /etc/sysconfig/named
Y agregue la siguiente línea al final del archivo.
OPTIONS="-4"
Guarde y cierre el archivo. Luego reinicie named y listo.
sudo systemctl restart named
Ahora ejecuta el siguiente comando. Puede ver que BIND ya no está escuchando en la dirección IPv6.
sudo netstat -lnptu | grep named
Error de búsqueda inversa de DNS de Postfix
Si su servidor Postfix SMTP se ejecuta en un entorno chroot, es posible que no pueda realizar una búsqueda DNS inversa. En este caso, una dirección IP que tenga un registro PTR aún se identificará como unknown
.
postfix/smtpd[14734]: connect from unknown[23.254.225.226]
Para solucionar esto, necesitamos copiar las bibliotecas necesarias para la búsqueda inversa de DNS dentro del entorno chroot.
sudo mkdir /var/spool/postfix/lib64 sudo cp -vl /usr/lib64/libnss_* /var/spool/postfix/lib64
Luego reinicie Postfix.
sudo systemctl restart postfix
Siguiente paso
Espero que estas 7 medidas antispam de Postfix le hayan ayudado a bloquear el correo no deseado. También puede implementar un filtro de contenido como SpamAssassin para detectar mejor el spam.
- Configure SpamAssassin en CentOS/RHEL para bloquear el spam de correo electrónico
Como siempre, si encuentra útil esta publicación, suscríbase a nuestro boletín gratuito para obtener más consejos y trucos. Cuídate 🙂