Configuración · 3 min read · Dec 31, 2025
Cómo configurar Virtual Hosting con Virtualmin en CentOS 5.1 - Página 3
Configuración
Configuración de Postfix
Introducción
Vamos a configurar postfix con las siguientes características:
- Alojamiento virtual
- Prevención de UCE
- Antivirus
- Autenticación SMTP
- TLS
- RBLs
- SPF
- Mitigación de ataques
La adición de cuentas y dominios se configurará a través de virtualmin, aunque también se puede hacer manualmente. La configuración está diseñada para ser amigable con los recursos, por lo que debería poder ejecutarse en máquinas que no están sobreespecificadas, permitiendo así que los recursos se utilicen de mejor manera. Para hacerlo amigable con los recursos, no estamos utilizando bases de datos externas para almacenar información de usuarios virtuales como lo hacen la mayoría de los otros tutoriales, así como utilizando milters para la verificación de spam y virus en lugar de ejecutar amavisd-new.
Lo Básico
Para comenzar, configuraremos lo básico, como el nombre del host, el origen del correo, las redes y el directorio de spool de mapas hash. Todas estas opciones de configuración deben añadirse a /etc/postfix/main.cf a menos que se indique lo contrario. Los archivos de configuración de muestra están disponibles para descargar al final de esta página.
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mailMaildir
Usaremos el formato maildir mucho mejorado en lugar del formato mbox por defecto:
home_mailbox = Maildir/SASL
Para realizar la autenticación SMTP, utilizaremos SASL; sin embargo, no utilizaremos Cyrus SASL ya que eso requiere que ejecutemos el demonio saslauthd. En su lugar, utilizaremos dovecot sasl, ya que estaremos ejecutando dovecot para IMAP y POP3, matando así dos pájaros de un tiro.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yesTLS
Necesitamos TLS para asegurar que las contraseñas en texto plano no se transmitan por la red durante la autenticación SMTP. Los servidores que soportan TLS también pueden comunicarse con este servidor a través de una conexión segura.
Las instrucciones para crear su certificado de servidor firmado por cacert.org se pueden encontrar aquí.
- Establecer la fuente aleatoria de TLS:
tls_random_source = dev:/dev/urandom- Habilitar TLS del servidor:
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache- Habilitar TLS del cliente:
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yesPrevención de Spam
- Requerir un EHLO / HELO válido:
smtpd_helo_required = yes- Prevenir ataques de recolección de direcciones de correo electrónico:
disable_vrfy_command = yes- Cambiar los códigos de rechazo a permanente (por defecto, postfix emite códigos de error 4xx que implican un fallo temporal; necesitamos 5xx para errores permanentes):
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550- Configurar la verificación de direcciones de remitente:
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access- Crear /etc/postfix/sender_access y añadir:
#ejemplo /etc/postfix/sender_access contiene dominios frecuentemente suplantados
aol.com reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender- Mitigar ataques de zombis y clientes rotos:
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20- Solo permitir el pipelining de clientes autenticados:
smtpd_data_restrictions = reject_unauth_pipelining- Instalar postfix-policyd-spf-perl y habilitar el soporte SPF:
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /etc/postfix/Añadir esto a /etc/postfix/master.cf:
spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl- Añadir soporte DKIM:
Las instrucciones para añadir soporte DKIM se pueden encontrar aquí.
- Añadir soporte domainkeys:
Las instrucciones para añadir soporte domainkeys se pueden encontrar aquí.
- Hacer que todo funcione depende de la opción smtpd_recipient_restrictions, así que la configuramos a continuación:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_recipient_access hash:/etc/postfix/access
reject_unknown_recipient_domain
reject_unknown_sender_domain
reject_unverified_recipient
reject_non_fqdn_recipient
reject_non_fqdn_sender
reject_invalid_hostname
reject_rbl_client list.dsbl.org
reject_rbl_client zen.spamhaus.org
reject_rbl_client l1.spews.dnsbl.sorbs.net
reject_rbl_client combined.njabl.org
reject_rbl_client bl.spamcop.net
reject_rhsbl_sender dsn.rfc-ignorant.org
reject_rhsbl_sender bogusmx.rfc-ignorant.org
reject_rhsbl_sender rhsbl.sorbs.net
reject_rhsbl_client dsn.rfc-ignorant.org
reject_rhsbl_client bogusmx.rfc-ignorant.org
reject_rhsbl_client rhsbl.sorbs.net
check_policy_service unix:private/spfpolicyMilters [SpamAssassin & ClamAV]
Para su clasificación de spam utilizando spamassassin y escaneo de virus utilizando clamav, utilizaremos la interfaz milter de postfix en lugar de utilizar el recurso intensivo demonio amavisd-new. Esta es una forma muy eficiente de hacerlo, ya que ni siquiera tenemos que ejecutar clamd; el milter de clamav realiza el escaneo por sí mismo.
smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock
non_smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sockCrear Archivos DB
postmap /etc/postfix/canonical
postmap /etc/postfix/access
postmap /etc/postfix/virtual
postmap /etc/postfix/sender_accessArchivos de Configuración de Muestra
- main.cf
- master.cf
- canonical
- virtual
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.